What is DevOps?
That is the question I have had for a very long time. Currently I am 25 and working as a DevOps engineer at Axial, a cool startup company. Before I go into detail about the amazing company I work for, let’s talk about DevOps and how I found out what it actually is. I graduated college in 2013 with a degree in Network Computer Security. During that time, I had acquired a great deal of experience in the field of Linux system administration, networking, security, virtualization and a few other cool skills. During my last semester in college, I started to submit my resume to a few popular sites, like Monster, and almost immediately started to get emails and calls about becoming a DevOps engineer. I had no idea, at the time, what that was but it sounded interesting.
The ideal position I was looking for was some kind of Linux system admin position, but DevOps had a great ring to it, so I started to look into it more. The beginning of my search for open DevOps positions led me to a lot of possibilities, but I noticed something interesting right out the gate: they were all different. I saw postings where companies wanted more of a programmer with some idea of how infrastructure worked. When I say infrastructure, I mean everything from setting up their servers to maintaining all of them. I also saw a plethora of other DevOps positions that were more related to being a system administrator. The more I looked into it, the more I liked what I saw; it seemed like DevOps was a new fancy title for a system administrator, a position that is here to stay.
So the question is, what makes DevOps and system admin so different? I think it’s better to explain this by using an example. During my time working and meeting a lot of system admins, I noticed there were always two types of system admins. The first type is someone who is very good at managing their infrastructure, but they mostly used closed source applications and, if something broke in the software, they would either use an old version that works or look into a different solution. The second type is very similar to the first, except they prefer to use open source applications. These administrators prefer open source because they are able to contribute code to the community if something is broken or they have an idea for an improvement. This type of system administrator is someone who is able to program, but prefers to work mostly with infrastructure versus writing code all day. Through my research, I have found that I am more of an open source systems administrator. Therefore, I have developed an understanding of a DevOps engineer as someone who contributes information and helps the community to build upon itself to make it better.
I applied to several junior DevOps positions and received a few callbacks and interviews, but overall did not really feel compatible with the companies I interviewed with. I knew I wanted to be in DevOps one day, however I ultimately took a job as a systems engineer at a broadcast company because I really loved what they did and figured, when the time was right, I would transition over to DevOps. I learned a lot while working as a systems engineer and continued to learn more about DevOps and broadened my knowledge in all things technology. The time came, about a year ago, when a good friend of mine secured an interview for me at Axial. The way he described the company, culture, people, and what he does sold me on the company. So how did I get a job at Axial? Did I ever really find out what it means to be a DevOps engineer?
I got a call from someone at Axial to go over my resume and, after we talked for a bit, I was given a time and date to come in for a technical interview. This opportunity got me really excited because technical interviews are what really tell you if you are ready for that position or not. I asked my friend about the technical interview process and he assured me I would be fine as long as I made sure to brush up on my config management (ansible) and brush up on my python skills to prepare me for an interview to challenge of my skills, and the rest should be cake. On the day of the interview, I showed up a little early, stood outside the building for about an hour getting ready to take on a dream of mine: being a devops engineer. I finally made it upstairs about 10 minutes before the actual interview. I got off at the 19th floor and I already knew that this was going to be fun.
As soon as I got off the elevator, I saw a huge sign that said Axial and was surrounded in a sea of blue covering the walls which instantly set me at ease. I was greeted by my friend and he showed me around their spacious office, which took up the entire floor, and led me to the area where all of the engineers hung out. I never worked for a start up company and was shocked by what I saw: a fully stocked kitchen, an amazing town-hall with a beautiful view of Union Square, and happy looking engineers. One thing that particularly stood out to me, and that I will never forget, was how everyone I saw greeted me and smiled, instantly making me feel welcomed. After my friend showed me around, I finally met his boss and learned that the two of them basically ran the entire devops department. He talked to me for a bit and then sent me a link for a zip file that had my challenge in it. He took me to this really interesting looking pod, it was small and soundproof, and told me that I had about two hours to complete the challenge and afterward I would have to share my work with the DevOps department and one or two coders. I sat in the pod, took my laptop out, downloaded the zip, opened up the readme and smiled.
My challenge was to set up a mini version of their infrastructure and get a web app running. Right out of the gate I was very familiar with what they wanted, so I decided to go a little above and beyond for the challenge. I wanted to set up a few servers to accomplish the task in order to show off a few different tools that I use, such as Ansible, Jenkins, and Docker. I was able to finish the challenge relatively quickly, taking about only 30 minutes but that left me feeling a little nervous and made me feel like it was too easy and that maybe I had missed something. I looked over everything before packing up my stuff, leaving the pod and informing them that I was done. I could go into more details, but I got the job pretty quickly after that interview.
Let’s jump to my present time as a DevOps engineer. At this point in my career, I think I have finally figured out what DevOps really means. Being a DevOps engineer is about being a jack of all trades. I find myself programming, doing network setup, doing security testing, designing components for our new architecture and being whatever the engineering team needs me to be. During my time at Axial so far, I have met a few other DevOps engineers at other companies and, when I talked to them and told them my theory about being a devops engineer, they agreed with me. DevOps engineers are the first line of defense when something breaks, they manage and scale the infrastructure, and they will do anything to make life easier for their fellow engineers. Basically, DevOps Engineers are synonymous with miracle workers. It took some time for me to get to this point, but it was completely worth it having to know a little piece of everything and being able to figure out anything that is thrown at you. It makes my work-life exciting and makes me very glad that I am a DevOps engineer at Axial.