top of page

What do companies really want? (DevOps / SRE edition)

What do companies really want in terms of skills when they are looking for DevOps / SRE professionals?


I’ve analysed 50 job postings to tell you what companies want when they are hiring for DevOps and SRE (Site Reliability Engineer) positions.


DevOps and Site Reliability Engineering are in my opinion very related “sciences”. In this post, I am going to treat them as the SAME thing for my researching purposes.


You can argue that being an SRE and being a DevOps are different but in my opinion, these two positions are very related and most of the time companies don’t really know what they want and they just go with the flow. Meaning: “if Google invents a new term (SRE) and says that an SRE must do this, this and that, this probably should be a good thing and my company need this kind of person. So let’s open a position, call it SRE and put the same requirements everybody is asking for.”


Most of the time this is what happens so here I’m ending my explanation on how I decided to treat DevOps and SRE as the same thing in my research (In fact they are VERY similar positions).

Ok, lets explain how I did the research:


I’ve searched for the job positions on these sites:

  • LinkedIn

  • Company website

  • Random Google search (just typing the position name)

The way it works is:


I’ve read the entire job description and its requirements. I took notes on which requirement (or skill) the position was asking for.


For example:


If a job post says it requires Python programming OR Java OR Go I will give one point for each mention.


If another job post only says Python as a requirement I’ll give one point for the Python mention leaving Python with 2 points (2 mentions), Go with 1 point (1 mention) and Java with 1 point (1 mention). Very simple huh?


You got the point? 1 mention, 1 point. Very very simple. =P


I separated the requirements in some subjects related to the DevOps / SRE position:


- PROGRAMMING LANGUAGES - AUTOMATION - CLOUD - CONTAINERIZATION - MONITORING - LOGGING - CI / CD (Continuous Integration / Continuous Deployment) - OPERATING SYSTEM(S)


Let’s go to the results:


PROGRAMMING LANGUAGES:


Programming languages


We can see that on this requirements there is a BIG winner: Python


Since Python is a multi purpose language and it’s very easy to read I’m not surprised it is the number one choice for companies that want their DevOps / SRE future employees to know. Linux comes with Python out-of-the-box and it’s much more fun to write scripts in Python than it is in Shell Script. Although, notice that Shell Script is still kinda relevant for these positions. So it’s better to know a little bit. There are a lot of legacy scripts written in Shell Script and you for sure will give maintenance in one of those during your career.


If I were an Infrastructure Engineer or Technical Support guy/gal wanting to go the DevOps / SRE way I would start to learn Python ASAP.


Another interesting thing is the rise of Go as a language for DevOps / SRE purposes. Docker was written in Go and the language has a focus for systems programming. We should expect Go rising more and more on the DevOps / SRE space. Better keep an eye on it…


CLOUD:

Cloud technologies



Another BIG winner here: Amazon AWS ecosystem.


A lot of companies run their services on AWS and they want people capable of dealing with that. So better learn the AWS ecosystem as well. It’s the top pick for companies that run their systems on the cloud.


AUTOMATION:


Regarding automation, any tool you learn will be good. There are different tools for automation but most of them do the same type of job. The winner in this case is Ansible followed closely by Puppet.



CONTAINERIZATION:


Container technologies


Another major winner(s) here. The duo Docker + Kubernetes is always mentioned on the skills requirements that companies want for a DevOps / SRE role.


It’s almost like container is a synonym of Docker. And of course, you need something to manage your myriad of containers. Here it comes Kubernetes to help you with that.



CI / CD — CONTINUOUS INTEGRATION / CONTINUOUS DEPLOYMENT:

CI / CD


Continuing with the big winners here is another one: Jenkins


When it comes to CI / CD this is THE guy. It’s the leading Open Source automation server and provides hundreds of plugins to support building, deploying and automating any project.



MONITORING:


Monitoring



On the monitoring field, I was a little bit surprised on Nagios becoming the most requested tool.


But I didn’t work with Nagios for a long time so maybe I was expecting a new player to stand out.


Maybe this new player is New Relic or Datadog. My conclusion is: if you become proficient in one of those monitoring tools you will be good to go and apply for any DevOps / SRE job. If the company uses another tool you should be able to learn faster because they are very similar.



LOGGING:


Not many job descriptions mention logging tools. Those who mention point out Splunk or ELK (ElasticSearch, Logstash, Kibana). I think if you choose either one you will be well served.


DATABASES:


It was very interesting to discover that most of the companies don’t really specify which database you have to know. Some of them (very few) point out to PostgreSQL or MySQL when talking about relational databases and some of them point out to MongoDB when they are talking about NoSQL databases.



OPERATING SYSTEM(S):


No graph here because the choice is ALMOST unanimous. Linux is THE operating system you must know. And not in a superficial way. Most of the jobs demand that you know deep system (Linux) internals. So push yourself beyond the simple commands. Learn how to use Linux tools like tcpdump, netstat, iptables, uptime, dmesg, perf, ss, strace and so on…



OTHER (GENERIC) SKILLS:


I decided to call it “generic” because they don’t fit in any of the categories above. It doesn’t mean they are dispensable. No way. They are a MUST have.

  • Distributed Systems

  • Microservices

  • Concurrency

  • Multi-threading

  • Large scale storage systems

  • Cache and its tools like Memcache, Varnish, Redis.



You need to have all of those concepts above inside your brain. You will use them daily.



CONCLUSION:


This may be a very simple research but it shows (at least for me) a pattern when companies want to hire some DevOps / SRE. I decided to do this to help me focus on which technologies I must learn in order to improve my DevOps / SRE skills. It’s very easy to lose focus when you are trying to learn something. There is a LOT of information on the internet and people telling you to do this or do that. You can get so saturated with so much information and be paralysed. Occasionally I struggle with that. Please be careful. Analysis Paralysis is a very bad “disease”. If you want to follow these same patterns and learn what companies are demanding to feel free to do that. I hope this simple research help you to move on and choose what is best for you to learn or start learning. All that being said, my choices are (but of course not limited to):



Programming Language



Cloud



Containerization


CI / CD



Monitoring


Logging


Databases


Operating System



So….Let’s learn together? =)



Andre Almar

DevOps Bootcamp

andrealmar.com

12 visualizações0 comentário

Posts recentes

Ver tudo
bottom of page