Career roadmap: DevOps engineer
DevOps, a set of practices that combines software development and IT operations with the goal of shortening the development lifecycle and providing continuous delivery of high-quality software, is enjoying increased popularity among organizations.
As research firm International Data Corp. (IDC) noted in a report on top 10 predictions for 2020 related to development and DevOps, the pressure on organizations to innovate and fundamentally rethink how they operate internally and what technologies they embrace has ramped up.
More IT Career Roadmaps
Organizations not moving to use DevOps tools along with technologies such as artificial intelligence (AI) and machine learning will find themselves at a competitive disadvantage in the future, IDC said.
In a recent report market research firm IndustryARC forecast that the worldwide DevOps market will reach $12.5 billion by 2025, at a compound annual growth rate (CAGR) of 25% between 2020 and 2025.
The increased need for faster application delivery, higher productivity of businesses, and elimination of unnecessary capital expenditures in IT are expected to accelerate the market, according to the report. Demand for rapid software upgrades is becoming extremely important for global businesses.
Along with the growth in DevOps has come increased demand for DevOps engineers, IT professionals who work with software developers, systems operators, and others to bring about better coordination among the operations, development, and testing functions by automating and streamlining integration and deployment processes.
DevOps engineers need to be familiar with how to manage an IT infrastructure that supports the development of software code, whether it’s on premises or in the cloud. Part of their responsibilities might include provisioning resources, choosing the right deployment models, and directing the testing process for validating releases.
These professionals might also be involved in testing data preparation, analyzing results, resolving problems that arise with DevOps, and collaborating closely with software developers.
The position requires a range of skill sets. These generally include understanding the essentials of software development languages; a strong background in operating system administration; experience with infrastructure automation and configuration management tools; knowledge of coding and scripting with common languages including Perl, Ruby, PHP, and Python; knowledge of major coding languages; a broad understanding of development tools; familiarity with cybersecurity tools and processes; and strong testing skills.
In addition to technology skills, DevOps engineers need to have soft skills such as the ability to communicate well, as they will be working regularly with people on the operations and development sides of DevOps.
Related: Demand for DevOps engineers sees RMIT launch new short course
The necessary capabilities to do the job well include other skills and experience as well, and of course requirements will vary depending on the company a DevOps engineer works for and its goals.
To find out what it takes to become a DevOps engineer we spoke with Joshua Feierman, senior DevOps engineer at Turnberry Solutions, an IT consulting and professional services firm.
A career in technology was not in Feierman’s plans when he attended Franklin & Marshall College, graduating from the institution in 2003 with a Bachelor of Science degree in neuroscience.
“Originally I had planned on pursuing an advanced degree in psychology and getting licensed as a clinical psychologist,” Feierman said.
He had liked computers from a young age, however. “My dad was teaching me how to touch type at age five on an Apple II computer,” Feierman said. When he took a temporary job working at a finance technology company that involved manually running mainframe reports he saw a better way. “I quickly saw how easy that would be to automate, so I taught myself to program in ExtraBasic and was able to pretty much automate my way out of a job,” he said.
Given the need to interact and collaborate with different types of people in a DevOps environment, and learn what makes them happier and more productive, perhaps the background in neuroscience and psychology was a good preparation of what was to come later on.
Related: Develop a DevOps Practice
After college Feierman worked in retail, as a manager at a camera store.
In 2005, Feierman took a position as a low-level programmer on a small team at SEI Investments, a financial technology company. “From there, my ability to quickly solve business problems using computers let me advance rapidly,” he said. “The key there is the delivery of business value. If you want to go far in your career, always focus on delivering value.” This position was Feierman’s introduction to the world of IT.
Over the next several years Feierman moved into a number of technology roles at the company, each providing valuable experience.
One was technology solutions and support specialist, in which he served as a business analyst and developer for the in-house technical team, specializing in automation of business processes. He also designed, developed, and supported multiple applications, and worked with other technical teams to integrate various company systems.
Another was product specialist, in which he provided support for multiple products, with a focus on business process automation and workflow management. He coordinated cross-team projects for software and hardware upgrades and migrations, and helped resolve and document end-user issues for first-level support teams and users.
In 2010 Feierman advanced to the position of database administrator at SEI, managing an environment of up to 40 servers and 60 instances of SQL Server, including SQL 2000 through SQL 2012, as well as clustered and virtual installations. He leveraged technologies such as Powershell and SQL Agent Master Server to centralize and automate common daily operations, reporting and maintenance.
Other responsibilities included performing detailed analysis of SQL Server workloads for the purpose of performance tuning and consolidation, using tools such as RML Utilities and the Microsoft MAP toolkit. And he acted as an intermediary between development teams and the production database administration group in areas such as release planning and problem analysis.
Feierman’s final role at SEI was as a database architect and SQL Server developer, with a focus on performance tuning and analysis. He helped and advised other teams with specialized SQL Server development needs, and provided internal training for developers on working with SQL Server.
Other tasks included designing and developing SQL Server databases, including Transact SQL programming, test design and deployment; and reviewing and approving Transact SQL deployment packages from other groups within the company, to ensure adherence to internal standards and best practices.
“This experience [at SEI] was key, because it means that I’ve sat on both sides of the fence — development and operations,” Feierman said. That enabled him to see things from both perspectives.
In 2014, Feierman left SEI to join Gateway Ticketing Systems, a maker of ticketing and admission control systems, as senior database administrator.
Within a few years he was promoted to manager of technology operations, where he led a team of systems and Web application engineers supporting multiple customer-facing applications deployed within a Microsoft Azure hosted environment.
In this role, Feierman oversaw the transition from a traditional on-premise IT environment to one focused on cloud technologies. Specific accomplishments include leading a mass migration of more than 150 ecommerce web sites from a traditional data center to a Microsoft Azure environment spanning three continents; and introducing new technologies that improved monitoring and resiliency.
Feierman also led the drive to use automation technologies to enable faster and more efficient delivery of services, including Azure ARM templates, Powershell DSC and Azure Automation. He transitioned his team from a workflow largely consisting of adhoc, emailed requests to one using Kanban methodologies in Atlassian Jira and Teamwork Projects.
In hindsight, Feierman said taking the role of manager of technology operations was a mistake, “because I knew deep down that what I really loved about my jobs prior was digging deeply into technical issues and determining solutions. No matter how much anyone says you can be both a manager and a technical resource, they are wrong.”
Feierman began his most recent role, senior DevOps engineer at Turnberry Solutions, in December 2019. With this position, “I returned to the technical career path, focusing on DevOps,” he said. “There are so many opportunities out there in this field, and there’s never a lack of new technologies to learn about. It’s been a very rewarding journey and I can’t wait to keep learning in this phase of my career.”
Related: What is a devops engineer? And how do you become one?
“I go back to when I decided to take the management position again, because that was a pivotal moment in my career,” Feierman said. “Again, I’m not saying that no one should ever take those roles. But just know that you are going to have to give up on your ability to do deep technical work, and that it takes a very different set of skills to manage a team rather than work with computers. So think carefully about what you want before choosing the path of management.”
Feierman also recalls the first time he saw how a computer could be programmed to do the work he was paid to do manually. “That was an eye-opener, because I saw the limitless possibilities around using technology to improve business processes, and thereby deliver value to them,” he said.
Related: Do network pros need to up their DevOps chops?
Skills and certifications
“I’ve taken several certifications lately, because it’s an easy way to prove a baseline level of knowledge,” Feierman said. “Otherwise, I’m all self-taught, which is the way a lot of computer engineers are. You have to have a hunger to learn and the ability to retain and use knowledge if you’re going to be successful in this business.”
Among the certifications Feierman has obtained are AWS Certified DevOps Engineer Professional and AWS Certified Solutions Architect-Associate, issued by Amazon Web Services; and Microsoft Certified Azure Administrator Associate, issued by Microsoft.
“One early inspiration was a guy I worked with at SEI, who was a very senior database administrator,” Feierman said. “That’s a job where it’d be really easy to learn how to push buttons and pull levers and get by, but he never settled for that. Instead he was a real student of the platform, learning all about the internals of SQL Server. As a result, he was able to help solve a lot of tough issues and garnered tremendous respect in the organization. That motivated me to do the same, and it’s served me incredibly well in my career.”
Related: Career advice: Moving into DevOps
Best career or life advice received
“Always be learning,” Feierman said. “In this field, if you’re not constantly checking out new things and playing with them, you’ll get left behind in a heartbeat.”
Goals for current position and the future
“I don’t know to be honest,” Feierman said. “I love what I do and all the cool things I get to play with. For now, I’m content to be learning each day and helping those around me succeed.”
Advice for others seeking a similar career path
“Learn, play and show what you can do,” Feierman said. “Being able to demonstrate tangible evidence of your skills will set you apart from the masses of people trying to get into this field.”