So you want to hire a DevOps engineer. How do you find a top engineer who can help your business or organization bridge the cultural divide between developers (Dev) and operations (Ops)?
DevOps is a software development philosophy and practice that aims to unite developers and IT operations professionals (system admins, systems engineers, release engineers, and other operations staff) in the effort to carry a software product from conception through production and delivery. It builds off lean and agile practices with an emphasis on testing, monitoring, automation, continuous integration (CI), and continuous delivery (CD). Here’s everything you need to know to craft a project description that will attract the right DevOps engineer for the job.
What does a DevOps engineer do?
DevOps engineers are often responsible for overseeing the setup, implementation, and maintenance of the DevOps toolchain—tools that help the organization as a whole put DevOps into practice. They should possess a strong working knowledge of Linux/Unix environments, server-side technologies such as AWS (Amazon Web Services), and scripting languages such as Perl, Python, and Shell. The standard toolkit of a DevOps engineer will tend to look something like this:
- Project management, collaboration, and issue tracking tools like Asana, Wrike, and Jira.
- Source control/versioning tools like Git, Bitbucket, SVN (Apache Subversion), and TFS (Team Foundation Server).
- Build tools like Gradle, Maven, and Grunt.
- Development environment tools like Vagrant and Cloud9 IDE.
- Continuous integration tools like Jenkins, TeamCity, and CircleCI.
- Configuration management tools like Ansible, Salt, Puppet, and Chef.
- Monitoring tools like Nagios, Prometheus, and New Relic.
- Container management tools like Docker and Kubernetes.
DevOps engineers transcend the boundaries of their traditional roles. They are seasoned developers who are also familiar with deployment and network operations or experienced sysadmins who are also familiar with coding and scripting. These individuals have a firm grasp of the big picture, understanding both how software is developed and how the supporting IT infrastructure works. Soft skills, such as helping software developers and IT professionals understand each other’s business values and initiatives, are important.
Defining your DevOps project needs
The right DevOps engineer for your project will depend on the technologies, tools, and requirements you need to realize a culture of DevOps at your organization.
The first thing you’ll want to define is project scope. You’ll want to quantify what the DevOps engineer will be doing for your organization. What DevOps tools do you need help implementing within your existing SDLC (software development life cycle)? Are you starting DevOps from scratch? Or do you just need someone to tweak and maintain an existing process? A well-defined project scope is critical before entering negotiations with a freelancer.
Next, you’ll want to determine a budget. DevOps engineers are in high demand because of the long-term value they bring to an organization. Rates charged by freelance DevOps engineers can range from $50 to more than $100 per hour. You can use your project scope to optimize for experience and cost when you eventually post your project description.
Finally, you’ll want to determine your project timeline. DevOps is never truly finished, but the bright side is that most of the time, effort, and cost happen up front, when you’re setting up and implementing the DevOps toolchain. It all depends on your project scope and how fast you can bring your existing team up to speed on DevOps.
Writing a DevOps project description
With a scope, a budget, and a timeline in hand, it’s time to write that project description. The idea is to be concise yet detailed enough to attract the right type of DevOps engineer to your project.
The title of your project description should target the DevOps keyword and briefly describe the nature of the work that needs to be done. Are you looking for a Jenkins Pipeline expert to help you with CI? Or do you require routine AWS server and volume maintenance? Tailor the title to target the skills or deliverables you desire.
Your project overview should dive into the details of the work that needs to be done. Use bulleted lists to highlight the skills and credentials you’re looking for in a DevOps engineer. Explain in a few sentences what the DevOps engineer will be doing, his or her responsibilities, and expected deliverables. If you require a nondisclosure agreement (NDA), mention that here.
Sample project description
Below is a sample project description for hiring a freelance DevOps engineer. While many people like to use the term “job description,” a full job description is a requirement only for employees. The advantage of working with freelancers on Upwork is that a simple project description of the work that needs to be done is all that’s really required to start a working relationship.
Title: Seeking a DevOps Engineer to Set Up a Kubernetes Cluster
Description:
Looking for an experienced DevOps engineer to set up a Kubernetes cluster to help us deploy and manage our SaaS.
The right engineer will have expertise in the following:
- DevOps fundamentals
- Kubernetes, Amazon Web Services (AWS), and Amazon ECS for Kubernetes
- Docker
- Jenkins
In addition, the engineer will be comfortable with Jira, Slack, and GitHub.
Project scope:
We need someone to take our Docker images and build a Kubernetes cluster for various environments.