diff --git a/README.md b/README.md
index e000f88..bce9774 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
:information_source: This repository contains interview questions on various DevOps related topics
-:bar_chart: There are currently **133** interview questions
+:bar_chart: There are currently **151** interview questions
:warning: Some answers might be only partial and shouldn't be used as they are in interviews
@@ -156,6 +156,18 @@ which follows the mutable infrastructure paradigm.
* Images - Either VM or container images where your package is included with everything it needs in order to run successfully.
+
+What is caching? How it works? Why is it important?
+
+
+
+Explain stateless vs. stateful
+
+
+
+What is HTTP and how it works?
+
+
#### :star: Advanced
@@ -338,11 +350,95 @@ Stop the instance, the type of the instance to match the desired RAM and start t
## Network
-Network questions can be found [here](https://github.com/bregman-arie/computer-networking/blob/master/interview_questions/README.md)
+
+#### :baby: Beginner
+
+Explain the OSI model. What layers there are? What each layer reponsible for?
+
+Application: user end (HTTP is here)
+Presentation: establishes context between application-layer entities (Encryption is here)
+Session: establishes, manages and terminates the connections
+Transport: transfers variable-length data sequences from a source to a destination host (TCP & UDP are here)
+Network: transfers datagrams from one network to another (IP is here)
+Data link: provides a link between two directly connected nodes (MAC is here)
+Physical: the electrical and physical spec the data connection (Bits are here)
+
+
+
+What delivery schemes are you familiar with?
+
+Unitcast: One to one communication where there is one sender and one reciever.
+
+Broadcast: Sending a message to everone in the network. The address ff:ff:ff:ff:ff:ff is used for broadcasting.
+ Two common protocols which use broadcast are ARP and DHCP.
+
+Multicast: Sending a message to a group of subscribers. It can be one-to-many or many-to-many.
+
+
+
+What is CSMA/CD? Is it used in modern ethernet networks?
+
+CSMA/CD stands for Carrier Sense Multiple Access / Collision Detection.
+Its primarily focus it to manage access to shared medium/bus where only one host can transmit at a given point of time.
+
+CSMA/CD algorithm:
+
+1. Before sending a frame, it checks whether another host already transmitting a frame.
+2. If no one transmitting, it starts transmitting the frame.
+3. If two hosts transmitted at the same time, we have a collision.
+4. Both hosts stop sending the frame and they send to everyone a 'jam signal' notifying everyone that a collision occured
+5. They are waiting for a random time before sending again
+6. Once each host waited for a raondom time, they try to send the frame again and so the
+
+
+
+Describe the following network devices and the difference between them: router, switch and hub
+
+
+
+What is NAT?
+
+
+
+What is the difference between TCP and UDP?
+
+
+
+What is ARP? How it works?
+
+
+
+What is DHCP? How it works?
+
+
+
+What is SSL tunneling? How it works?
+
+
+
+What is a socket?
+
+
+
+What is IPv6? Why should we consider using it if we have IPv4?
+
+
+
+What is MTU?
+
+
+
+What is SDN?
+
+
+
+What is ICMP?
+
## Linux
+
#### :baby: Beginner
@@ -419,11 +515,11 @@ I consider this as a good blog post to read more about it: https://shapeshed.com
Explain what would be the result of each command:
-echo $0
-echo $?
-echo $$
-echo $@
-echo $#
+ * echo $0
+ * echo $?
+ * echo $$
+ * echo $@
+ * echo $#
@@ -514,6 +610,10 @@ For each file (and directory) in Linux there is an inode, a data structure which
related to the file like its size, owner, permissions, etc.
+
+How to list ports which being currently used?
+
+
DNS: What is A record?
@@ -523,7 +623,7 @@ related to the file like its size, owner, permissions, etc.
-DNS:
+DNS: is it using TCP or UDP?
@@ -1121,3 +1221,4 @@ and considerations.
* [Elasticsearch & Kibana on AWS](scenarios/elk_kibana_aws.md)
* [Ansible, Minikube and Docker](scenarios/ansible_minikube_docker.md)
+* [Cloud Slack bot](scenarios/cloud_slack_bot.md)
diff --git a/scenarios/cloud_slack_bot.md b/scenarios/cloud_slack_bot.md
new file mode 100644
index 0000000..29dacc9
--- /dev/null
+++ b/scenarios/cloud_slack_bot.md
@@ -0,0 +1,19 @@
+## Cloud Slack Bot
+
+Create a slack bot to manage cloud instances. You can choose whatever cloud provider you want (e.g. Openstack, AWS, GCP, Azure)
+You should provide:
+
+ * Instructions on how to use it
+ * Source code of the slack bot
+ * A running slack bot account or a deployment script so we can test it
+
+The bot should be able to support:
+
+ * Creating new instances
+ * Removing existing instances
+ * Starting an instance
+ * Stopping an instance
+ * Displaying the status of an instance
+ * List all available instances
+
+The bot should also be able to show help message.