The DevOps career path is not only one of the most profitable, but also one of the most personally satisfying among the many career branches of IT today. According to a salary survey last year by Incapsula, median DevOps salaries for those with the right skills are hitting anywhere between $104,000 and $129,230, depending on the size of the team. Compare that to some median figures calculated by Payscale.com for traditional non-DevOps IT roles, and the earning differential is stark:
Median Salary by Job — PayScale.com provides a “cost of living” salary calculator, shown above, designed to help IT professionals in their moves between different regions in the US. For more information, see this link from PayScale.
Meanwhile, the most recent Puppet Labs State of DevOps report shows that job satisfaction is proving to be a big boon for the kinds of high-performing IT shops that budding DevOps engineers aspire to join—you know, the ones whose employees are more than twice as likely to recommend their organizations as a great place to work.
How to turn yourself into an indispensable DevOps engineer
But how do you truly build out the skill sets and experience you need, not to mention get your personal brand out there to help land a quality DevOps engineering position? Hiring managers are eager to have the right talent on their teams to helop avoid all-to-common DevOps failures. I recently talked to hiring managers and people in DevOps engineering roles to get the best advice on improving one’s marketability on the career front.
Here are five recommendations, based on their input.
1. Start cross-training now
Whether you’re a developer or an operations veteran, now is the time to start acquiring skills outside your current role’s comfort zone, especially if you’re still green to DevOps.
Developers by training tend to have a leg up on operations professionals when making the transition to DevOps engineering positions, not only due to demands for programming in-house tools and scripts, but also because they are more likely to understand the daily needs of developers.
It’s great if a DevOps engineer has been a developer, not just an IT person. A DevOps engineer who has had a developer background will have had deeper experience in the tools that developers are using—and can leverage their knowledge to make things more efficient. According to Jonathan Fenocchi, who works at Bazaarvoice as a DevOps engineer and came from a development background, the key is looking for ways to apply concepts from the previous role to the new one.
“Obtain practical experience by using your skills as a software engineer to build tools rather than software. Look at any of the open-source projects Netflix has written for examples,” he says, adding that current developers aspiring to DevOps positions should look to participate in anything their team does that involves operations. “If your team doesn’t do any of that, go over to the operations team and sit in on a few deployments.”
Meanwhile, though managers favor developers, you can make the transition as a sysadmin, too. You’ll just need to start doing serious work honing your scripting skills. “Many sysadmins have not been called upon to automate provisioning, configuration, and deployment to this extent in the past. It can be difficult for them to acquire the scripting chops to do this,” says Rich Davis, CTO at Webonise and a longtime hiring manager.
This means putting in the time to gain experience in Chef or Puppet scripting, developing a strong familiarity with Linux and shell environments, and doing whatever you can to gain programming experience in scripting languages such as Bash, Perl, Python, and Ruby.
Plus, you “should assume that you will need to document your work as code and spend time learning automation frameworks that will help you automate provisioning and deployments,” Davis says.
2. Build the skills in the job you have for the job you want
Many plum DevOps engineering positions ask for people who have already lived and breathed the DevOps way of life. IT veterans without a DevOps title will find it much easier to land one of these positions by carving out DevOps-minded responsibilities and tasks from their existing, traditional role, whether they officially change their business card or not.
This was the experience of John Behling, who was recently hired by Field Nation as a senior DevOps engineer. Prior to his new job, he had been in system administration roles since 2008.
“During that time I’d always used some form of automation to make my life easier. But things didn’t really accelerate until 2014, when I took on a role on a sysadmin team that was tasked with setting up development servers for several teams of developers,” he says. “I started calling myself a DevOps engineer around that time, mostly because I saw it being used as shorthand for the kind of new-school sysadmin-type work that I found most interesting.”
3. Automation: Prove you can get a lot done with a little
“I look for people who’re scrappy and can get a lot done with little,” says Rick Tai, head of engineering at Reflektive. “This means DevOps engineers who use automation tools to manage servers and deployments.”
Behling agrees that establishing a mastery of automation tools and practices is perhaps the single most important thing budding DevOps engineers can do to improve their earning power and marketability.
“Study automation! If you’re stuck with tedious manual work, you’ll never have time to learn new things, and you probably won’t be happy,” says Behling. “Automation also requires a deep understanding of what you’re automating, so all the time you spend working on automation, you’re really learning new insights into the technologies you’re supporting.”
4. Develop your personal brand with community involvement
Career marketability is both about building intrinsic skills and finding a way to put them on display. Getting involved in the highly active and growing DevOps community provides a way to kill both birds with one stone. There’s no single way to do this, and it all depends on an individual’s skills and interests. It could mean speaking at industry events or, for you introverts, perhaps writing blogs and staying in touch with colleagues through online forums and the like. Behling believes that jumping into an open-source project can also have a big impact.
“Involvement in open-source projects relat
ed to DevOps is big opportunity to show what you know and what you can do,” Behling says. “Talking and presenting at meetups are important, but nowadays, a lot of projects have public Slack channels where you can participate and answer questions—this is a big opportunity for visibility and personal branding.”
While the marketability factor is key, Eric Sigler, director of site reliability at PagerDuty, says that DevOps engineers who don’t see community involvement strictly as a career builder are likely to get the most out of their experiences.
“Participation in the DevOps community shouldn’t just be approached as a way to further a career, but rather as a way to connect with other practitioners, get help, and gain exposure to new ideas,” he suggests. “Everyone in the community brings their own enthusiasm to the table and can provide a unique support system.”
5. Demonstrate curiosity and empathy
According to Sigler, curiosity and empathy are perhaps two of the most valuable soft-skill traits a potential DevOps engineer can demonstrate.
“Demonstrating these two qualities is a very good sign that a potential employee will care deeply about DevOps, the company, and their role within both,” he says.
Demonstrating the former may be easier than the latter, of course. Curiosity can be demonstrated by building a wide technical skill set and, more importantly, learning the art of asking the right questions when solving problems and initiating change for the better.
Outwardly showing empathy can be a little more difficult. A lot of it has to do with building the muscle memory of the ear, because listening is a big part of developing empathetic tendencies. However, one way to get there would be to steer into situations where you’re forced to communicate with others.
“Learning to translate what you do to your peers—teaching, presenting, explaining—is crucial,” Behling says. “Sometimes when I present things in front of others, I find flaws in my own logic or discover things I…
Read More:5 ways to make yourself marketable as a DevOps engineer