There’s no precisely defined career track for DevOps engineers because they’re typically developers or sysadmins who develop an interest in other aspects of operations — such as network operations, deployment, or coding and scripting. Yet with more companies turning to DevOps to deliver products and updates more rapidly, there’s a growing demand for these multi-faceted professionals, and they’re playing an ever-more prominent role in modern companies.
Without a clear-cut career track to lead to a role as a DevOps engineer, companies hire and promote these professionals based on past experience and skillsets. But what characteristics are most important to ensure success as a DevOps engineer? To gain some insight into the skills, talents, and traits that today’s top DevOps engineers need in order to succeed, we reached out to a panel of DevOps pros and engineers and asked them to answer this question:
“What is the most important characteristic of a successful DevOps engineer?”
Meet Our Panel of DevOps Pros and DevOps Engineers:
- Pete Cheslock
- Cody Swann
- Alan Zucker
- Justin Raynor
- Don Tomlinson
- Will Button
- Sachin Agarwal
- Christo Stalev
- Ash Norton
- Yves Junqueira
- Emma Tracey
- Refael Zikavashvili
- Cristian Rennella
- Steve Eschweiler
- Henry Kim
- Jon Brodsky
- Rob Jones
- Marcus Bastian
- Steve Pritchard
- Grant van der Harst
- Gady Pitaru
- Michael Roberts
- Ogun Tigli
- Amy Cho
“What I look for most when hiring a DevOps engineer is…”
Both intellectual curiosity and an aptitude to learn.
The tools and technologies we are using today in many ways didn’t exist even 5 years ago. And the ways we solve problems will continue to evolve as new ways to deploy software and manage systems are created and evolve. Those engineers who can adapt to the changing market, as well as become experts on troubleshooting when things don’t work as expected will continue to be the engineers who will remain the highest in demand.
“What I look for most when hiring a DevOps engineer is…”
Someone who abhors doing the same thing more than once.
I want someone who automates tasks from the get-go if there’s even a remote chance that they’ll have to do the task again in the future.
“When hiring DevOps resources, there are three primary skills to consider…”
Strategic thinking, communications, and technical capabilities.
If the organization is in the early stages of an Agile and/or DevOps transformation, strategic thinking and communications skills are critical. The new resources will play a critical role in charting the overall course of the transformation and in influencing the development and operations teams to adopt the new ways of working. Organizations that are well on their way may be more focused on hiring resources with the required technical skills.
DevOps is primarily a cultural and organizational transformation. The strategic view is to focus on people and process before tools. I look for people who talk about understanding the value stream, identifying systemic bottlenecks or waste, building a collaborative environment, or gathering and understanding metrics. These resources are the people who will help lead the transformation. They will guide the organization to optimize the end-to-end value stream rather than optimizing local processes. They see DevOps as not just a tool for technology, but as a way to increase value to the entire business.
In Agile environments, we want resources that are “generalizing specialists.” So, when it comes to technical skills, I look for “T” or “E” shaped resources. “T” shaped resources have a depth of experience in one technical specialty and have a good working knowledge in other areas. “E” shaped resources have deep expertise in several domains. In other words, l look for people who can play multiple roles and support multiple technologies. The DevOps toolsets are still rapidly emerging and changing, so I also want resources that are inquisitive and comfortable with change.
Justin is FreightCenter’s Director of Systems. A self-proclaimed video game and sci-fi geek, Justin likes to balance his work life by fishing, boating, and hitting the beach whenever possible.
“The most important skill a DevOps engineer can have is…”
The ability to work well with others. Because the DevOps position encompasses such a wide variety of technical areas and responsibilities, the ability for the engineer to convey that knowledge and work seamlessly with other departments is paramount. Having exceptional personal skills will allow the DevOps engineer to ensure that the right people are at the right places at all times, and will help maintain positive attitudes and momentum as projects move forward.
Don is responsible for the innovation and implementation of Talent Plus technology systems and strategic initiatives, overseeing internal systems, external client-facing web applications, data storage, maintenance, software development, and software integrations.
“For DevOps, ‘response to negativity’ is so important…”
The potential for something to go wrong can be very high, especially in a larger release. How DevOps responds to those instances is critical. They must be able to stay calm, keep the team going, and create solutions.
“As DevOps engineers, it’s our job to provide the tools that allow our team to work faster and safer…”
It’s always a custom solution because no two teams are alike. As a result, the same problem you solved yesterday may require a different solution today to best fit the team you’re building it for. Winston Churchill’s quote, “Never give up,” is the perfect mantra for a successful DevOps Engineer. Be creative, be a good listener, be committed to success, be positive, and never give up.
“The most important characteristics of a successful DevOps engineer can be divided into four categories…”
- Making the best choice which will solve your business idea, automate your idea, and never rely on a single service or service provider.
- Always keep in mind while developing any cloud solution, it will eventually fail at some point. Always be ready to recover from failure.
- Make sure that your top priority is the security of the cloud infrastructure and users’ data.
- Whatever your solution, the most important part is how economically feasible it is. Always make sure that your solution is cost effective.
While building any cloud solution and automating cloud infrastructure, make sure that your services are loosely coupled with each other so that if something goes wrong, which will eventually happen, it can be recovered as quickly as possible. Your solution should be highly available, resilient, scalable, reliable, and secure. Always stay up to date with new technologies that are coming into the market and pick the one that will solve your problem in the best possible way. Make sure that while developing any system design, your dependencies are minimal and can easily be integrated with any other idea in the future.
“A great DevOps engineer needs to be skilled in an awful lot of things like…”
System administration, virtualization, scripting, and so on. If you want to be great, you need to be curious and persistent in widening your skillset all the time.
Leveraging 12 years in engineering and engineering management roles, Ash Norton coaches engineers and engineering firms on professional and leadership development. Ash’s professional advice has been featured in Forbes, Inc., Harvard Business Review, and Fast Company.
“The most important characteristic of a successful DevOps engineer is…”
The ability and eagerness to learn.
With tools and applications ever changing, quick and willing learners are able to adapt, grow, and apply their other skills according to the needs of the customer. Additionally, DevOps engineers must be able to write secure code to protect applications and defend against cybersecurity vulnerabilities — which are becoming increasingly more aggressive and sophisticated.
Other important characteristics — such as technical expertise, knowledge of tools, and strong relationship-building — become obsolete when they aren’t continuously developed. So, by having a curious mind, being eager, and able to learn — DevOps engineers can be successful and impactful throughout their careers.
Yves Junqueira worked at Google as a Site Reliability Engineer for almost 10 years. He designed large-scale systems and helped developers launch Google products on top of the company’s massive infrastructure without going insane.
“The most important characteristic of a successful DevOps engineer (or an SRE) is empathy…”
Yes, it is useful to learn how operating systems work. Yes, it’s very important to have deep knowledge of computer networks. Indeed, it’s useful to learn how to troubleshoot complex problems by using tools that most people are afraid of.
But without empathy, you can’t really deliver successful DevOps/SRE projects. Those initiatives require collaboration, communication, and buy in from the team. If someone has a fantastic idea for how to speed up their team’s DevOps processes but can’t communicate to others and can’t convince them to rally around it, that idea is not worth much.
Empathy is useful for many things at work. When you develop empathy, you become a better communicator. You get more things done. Your efforts are more often picked up by others, and your voice can be multiplied. That does not mean you need to be an extrovert or be friendly 100% of the time. That is not the point.
Empathy makes you better at helping people. When you’re documenting a deployment process, think carefully: What do people reading that documentation really need to accomplish at that moment?
Most importantly, empathy can help you get things done. If you’re having trouble getting people to understand your point of view so you can change something in the infrastructure, think: Why would a rational, well-intentioned person be against my idea?
Perhaps they have valid reasons. Acknowledging and answering those concerns may be the best way to get things moving in the right direction. That’s what DevOps really is about.
Emma Tracey is Co-Founder at Honeypot, a developer-focused job platform that connects employers and tech professionals across Europe. Emma looks after Product and Marketing and loves working closely with users to deliver new features.
“While all DevOps engineers should be able to demonstrate outstanding technical proficiency and possess an array of soft skills, the most important characteristic of a successful DevOps engineer has to be…”
The ability to code with an operations mindset.
In other words, a great DevOps engineer is as comfortable writing scripts as they are at deploying and monitoring the applications they build. Understanding code isn’t everything when it comes to DevOps; the capacity to consider common Ops pitfalls and identify strategies to overcome them is just as fundamental.
The underlying goal of DevOps is to improve collaboration between Development and IT Operations in order to increase the frequency and quality of deployments, and ultimately the ideal DevOps engineer should be able to bring different teams together to work towards a common goal.
“In my opinion, the most important characteristic a successful DevOps engineer needs to have is…”
Process-oriented thinking. To be more specific, the ability to not only produce results, but in a way that’s reliable, reproducible, and adaptable to change. Whether the task at hand is deployment, testing automation, security, fail-safe architecture, or anything else in the DevOps domain — anyone can follow a tutorial to get things done now, but a successful DevOps engineer will create a process for others to build on.
“The most important characteristic of a DevOps engineer is…”
Learning to say NO! When thousands of orders arrive at your desk to be implemented, it is your duty to be the filter that decides what should be programmed and what should not — even saying no when a requirement will affect the performance of the system as a whole.
The BEST DevOps that have worked in our company are those who act as a defensive barrier against new requirements.
It’s thanks to this that the efficiency of our engineering team has improved by 29.8%.
“The most successful DevOps engineers will…”
Know their audience and understand how to effectively communicate with the particular group in front of them. Engineering peers, department heads, and executives are all eager for different information that applies to their role, and each group’s technical comprehension may differ widely. The engineers who can recognize which group needs what information and can convey that information in a way each group can clearly understand become your leaders.
“A successful DevOps Engineer must be process-oriented…”
Management and use of IAM.
They are responsible for creating and configuring a CI (Continuous Integration) workflow and setting up the appropriate triggers to kick off the automated process. With the proper process in place, DevOps Engineers can increase collaboration between Developers and Operations.
Jon Brodsky is finder.com’s Country Manager (US), leading the company’s growth across its niche categories of personal loans, credit cards, and shopping. At finder.com, Jon draws on a background in private equity plus extensive digital experience. Most recently he was Senior Vice President Digital at Chicken Soup for the Soul, and previous experience includes time at Allmenus.com and 1-800-flowers.com.
“The most important characteristics of a successful DevOps engineer are…”
People skills: The ability to work productively with different personalities is often overlooked in DevOps engineers. However, they are responsible for bringing a number of different parts of a project together, so it’s critical they have good people and communication skills.
No ego: A great DevOps engineer puts the success of a project ahead of any personal agenda. They not only understand but embrace that any wins are the sum of a team effort, and not any one individual.
Loves the hunt: More than other programming professions, DevOps problems often don’t have obvious solutions that can be implemented quickly and solve the issue long term. A great DevOps engineer will patch the problem and then hunt relentlessly for the source of it while the rest of the crew can go about their day because the site is working again.
“Obviously, technical and security skills are vital, but you can’t overstate the importance of soft skills…”
Communication and collaboration are especially important. The DevOps engineer has to act as a buffer between developers, the operations team, and potentially, the client. They need to be able to listen, take onboard important information while ignoring anything irrelevant, and they need to quickly develop knowledge of organizational structure and culture. Ultimately, it is the DevOps engineer who needs to implement and standardize DevOps, which is impossible to do effectively without excellent communication skills.
“Hands down, the most important characteristic of a successful DevOps engineer is…”
Attention to detail. Part of the role of DevOps involves integrating all sorts of different workflows and systems together. You’re analyzing application and server logs to establish correlations. It’s a big puzzle. If you miss one thing, you might not figure out what’s going on, which could involve an extended outage. You have to be able to figure out problems quickly.
“DevOps should be pragmatic thinkers…”
Who see the big picture and who are able to implement things in small steps. They will understand that small but frequent deployments will be easier for a company to adapt to, as well as being easier to test and rectify any problems. They will never rush into making major changes without having taken the necessary precautions should anything go wrong.
Grant van der Harst
Grant van der Harst is the Managing Director of Anglo Liners.
“A DevOps engineer has to be a team player…”
Their work changes a great deal of fundamentals in how a company operates, so they need to be able to successfully collaborate with the various departments of the business, to ensure a smooth transition which satisfies everyone. Working harmoniously with departments that will be affected by your deployments will mean as little disruption as possible to the business’ processes.
Gady Pitaru is the CTO for Badger Maps. He architected and developed Badger’s software product from its MVP days (using lean principles) to market and beyond. Currently, he manages Badger’s agile engineering team while staying involved in day-to-day coding.
“In my experience, successful DevOps Engineers have two very specific traits…”
Skill and Discipline. Being a successful engineer requires skill, from a lot of practice and the application of fundamentals and best practices. It doesn’t end after you got your CS degree or after boot camp. Highly successful engineers are constantly learning about new trends in the industry and applying them directly to their work. There’s a constant stream of new languages, frameworks, and methodologies that successful engineers know how to filter and sift through for what will help them continue to do their best and grow. Arguably the most important skill is knowing how to acquire new skills.
For example, a good engineer can write a Django database query, but a highly skilled one will know how to most efficiently write that query so that one line of code scales. Skill and talent blossom into passion, which gives developers the motivation to continue learning, making them more skillful. This self-reinforcing loop is important to prevent plateau or burnout after 10 years of writing code.
Discipline is the other part of the equation. A highly skilled engineer without discipline is like a veteran sailor without a map: Really good at steering the boat but can’t find the shore. Discipline is an attitude or perspective they approach their skills with. A disciplined engineer doesn’t compromise quality for speed, and if they have to, they are aware of the technical debt they are creating and fight to pay it back in the future. They know that processes are there to help them succeed, so they are fully present during code reviews and encourage constructive sprint retros. They also know that their focused time is very important, so they figure out ways to ensure they get it, by using pomodoros, blocking off calendar time, or wearing headphones, to name a few examples.
“Being inquisitive is essential to being great at DevOps…”
It’s super helpful when engineers go the extra mile to understand why a resource or port is needed. Not just asking whether you need an SSL cert, but being sure to understand why. Inquisitive DevOps engineers ask the extra questions and try to proactively resolve issues like, how does the app gracefully fail, what will the deployment process look like, and the who needs access dilemma. Great DevOps engineers ask a ton of questions so they can engineer a solution and then take full accountability for successfully keeping the app alive and end users happy with its performance.
“The most important characteristic of a successful DevOps engineer is…”
Someone who understands the environment and the tools at his/her disposal, including source control (TFS, Git, SVN, etc.), automation (Ansible, Chef, Puppet, Vagrant, etc.), and continuous integration (Jenkins, VSTS, Travis, CircleCI, etc.). Other key characteristics would be those of a white-hat hacker, or someone who knows the network extremely well. Finally, someone who can also collaborate with their team members and other teams is critically important.
“A DevOps engineer has many important characteristics…”
Including scripting skills, automation skills, monitoring and analyzing skills, communicating very technical situations and technology, collaborating with many other team members, patience and endurance under stressful and time-sensitive technical emergencies, diagnosing issues, solving problems, and release/deployment skills for continuous delivery of software.
The most important characteristic, however, is the skill to automate and streamline as many recurring tasks and processes as possible. This is what saves the engineer and company a lot of time and effort. Developing smart scripts that can detect, monitor, analyze, and resolve issues is crucial.