The job of a DevOps engineer has very little in the way of a structured learning path or even solid job requirements. There are a lot of skills you might learn in school that are needed to be one, especially from GCSEs.
We’ve already covered that a DevOps engineer (or systems or infra engineer) is a person who collaborates with the developers to build and maintain systems. Now we will take a quick look at what skills you will need if this is something that interests you.
You need to be able to program. DevOps engineers write a lot of code, but they don’t write the code that the user will use directly. If the developer was working at a company that creates a website, they may have written code for the server the website host, or some code to describe the network connection between the website and the database.
You also may have learned about networking at school. Knowing about network topologies, DNS and TCP/IP 5 layer model will come in very useful. DevOps engineers are frequently responsible for building and maintaining networks.
A huge part of the job is using systems other people have built, to manage networks and specialised software that lets us track them. An example is some software that could show you how many people are using a website at one time.
Monitoring software involves making graphs to understand how the system is performing. A lot of the maths you learn at school is helpful here – we use knowledge from our GCSE maths every day.
You may learn about algorithms and data structures in school too. You might not need to implement sorting algorithms, but the creative thinking process behind them is useful. Creative thinking is useful when using the systems other people have built so that you can understand how they work.
They are also responsible for making sure the developers are making good choices about things such as data storage and CPU usage. Developers typically focus on writing the website code and aren’t keeping an eye on how many CPUs they need to run their website or storage. Developers must have a good understanding of these to ensure the company doesn’t spend too much on CPU that isn’t used or understand the options when the wrong kind of storage.
As we are talking about storage, knowing storage unit relationships (e.g. how many bits are in a byte) is something DevOps Engineers use every day.
Last of all, it’s great if they are good at working with people. DevOps is about working together to build systems and sharing the knowledge of how they work beyond the main codebase. DevOps engineers get asked a lot of questions and need to spend time working with developers. Being able to communicate and be patient teaching is great qualities to have.
This article was written by Emma-Ashley Lilles, Software Engineer and Csilla Bessenyei and Steve Hill, DevOps Engineers at Kaluza.