DevOps is the latest big trend in hiring. Everybody is talking about DevOps, and everybody wants them.
So, what the hell are DevOps, why do you need them, where can you find and hire DevOps and what should you be looking for? This guide will hopefully demystify some of that for you.
Wikipedia, always with the helpful Venn diagrams.
The Dirty Secret
Here’s the confusing part: There’s no such thing as a DevOp. You’ll have a damn hard time finding somebody who’s business card just says “DevOp.” What you’re actually looking for is a developer with some experience and knowledge as a system administrator, or possibly a system administrator with some experience and knowledge as a programmer.
The term DevOps has only really grown to prominence in the past few years because of its association with the ‘Agile’ methodology of software development. (Full disclosure here, I’m a critic of a lot of many of the trendy development methodologies. I’m a bigger fan of ‘shut up and do it.’) It basically means: Developers who know how to properly deploy and deploy their code, and/or SysAdmins who know how to dive into the code and fix things when shit goes pear-shaped.
Either way, they’re highly desirable for obvious reasons – it’s a real sweet-spot hire for any company, as it means faster shipping of production code, less downtime and more reliability – and it could even save you a whole paycheck every month.
So what should you be looking for when hiring DevOps? Let’s take a look.
This is Octocat, GitHub’s logo. What a cutie.
Don’t forget, first and foremost, you’re hiring a developer. These days, any developer, even if it’s for a junior programmer or DevOps position, needs to prove their open source chops. So first, you should make sure your candidate has a good open source portfolio, which will likely mean a list of projects on a GitHub profile, or something similar. Keep an eye out for projects which use cloud services like Amazon EC2, as being able to think in “cloud terms,” when to use outside cloud services, when to keep it in-house, and how to scale, is a must for a DevOp.
You should also make sure your candidate has good source management practices. Lots of conflicts between developers and operations people come when the Ops guys need to change something to deploy in production, but don’t make their changes inside the normal source code management system. Many DevOps tools now integrate tightly with source management systems, so make sure your candidate has experience with distributed version control systems like Git and Mercurial, as well as older VCS’s like Subversion.
I wasn’t sure if I should use a ‘master chef’ or a ‘puppet master’ joke here.
The real power of a DevOp is their skills with automation tools. In particular, they’ll want to have an intimate knowledge of Chef and Puppet, the two most popular configuration management systems. Chef and Puppet are incredibly powerful tools for automatically doing everything from deploying code to managing users/passwords and even keeping systems up to date. Ask your candidate about their favorite patterns/recipies, and ask them about any scripts they’re particularly proud of.
A good DevOp should be able branch code, write code, test code, commit code and deploy code across two dozen servers without blinking an eye. They’ve also gotta be just as sharp as reading the internals of a system, checking load balance, knowing when to add more iron and knowing how to receive and interpret automated messages about the state of the machines they manage.
Data, Data, Data
I’m gonna bet that for at least 9 out of every 10 people reading this, your data is the most important part of your business. It follows that your DevOp needs to know their stuff when it comes to data management. They’ve gotta know all the big relational databases and NoSQL databases, literally in and out.
How does your candidate feel about the prospect of migrating hundreds of thousands of database items in 10 tables across 5 machines? How about backups? And, more importantly, restoring those backups? Remotely? In the middle of the night? No sweat, right? I thought so.
Where to Find DevOps To Hire
Now do you have better idea of what to look for in a Developer/Operator? Cool!
So where should you look for DevOps?