The reality of a DevOps Engineer is one of change.
Whether in deployment pipelines, systems architecture, or incident management, a DevOps engineer will be constantly challenged by new technology, complex problems, or dynamic roles.
As businesses look to build a culture of collaboration and unity between their IT function and operations, many are turning to DevOps as a better process for building, testing and releasing software.
But what makes an effective DevOps Engineer? What skills and experiences are needed to be effective in this role?
We caught up with DevOps Engineering leaders from across the Nordics to discuss what makes a great DevOps Engineer.
Girts Zemitis, Senior DevOps Engineer @ Monthio
Girts Zemitis is the Senior DevOps Engineer at fintech start-up Monthio. Moving from his native Latvia to Denmark after falling in love with Danish culture and people, Girts initiailly started developing for a small mobile app development company. After that, Girts moved to a company where he worked in a team of 15 developers who were essentially doing DevOps.
“We were the owners of the full lifecycle. So that’s where I started getting this DevOps feel and the ownership feeling and I really started to enjoy it.”
This encouraged Girts to move to Monthio six months ago. Operating in a team of five people, Girts started with nothing but greenfield work with the most recent technologies and has recently started production with Monthio’s first Kubernetes cluster.
Right now, Girts is working hard on growing a DevOps culture that encourages everyone to take responsibility for the application that they build completely in house without much outsourcing at all.
“We are looking for people that are not just great at one thing, like writing react applications. We want the same person to learn how to build backends or operate the k8s clusters or build automated pipelines. Learning is an important part of our culture. You should not be afraid to not know something. But we expect you to learn it if there is a need.”
Girts and the team at Monthio take the same collective approach to DevOps where they are seeing a number of advantages.
“It cuts the feedback loop radically. If I am the one who knows the product, because I have built it and I also operate and monitor it, there is almost no friction for me to identify a bug and get fix in production in matter of minutes. It’s a much shorter feedback loop for us to both fix the bugs or implement features and just go to the market.”
A Clear Focus
For Girts, a great DevOps Engineer is someone who has a very clear interest and focus, but is always willing to learn a range of different things to better help the team.
“Jack of all trades, master of some. If you want to see the bigger picture, take responsibility and be the owner from start to finish and beyond, then DevOps might be the correct choice. To be a good DevOps engineer, you just have to own it up. There are so many languages, frameworks, processes, ways of operating software these days, it’s impossible to know them all. But don’t be afraid to experiment and find the right tools for yourself. “There is no shame in not knowing something. The shame is in not being willing to learn”
David Mirabet Manjon, Data Engineering and Analytics Manager @ Precure
David Mirabet Manjon is the Data Engineering and Analytics Manager at healthtech company Precure.
Having previously studied industrial engineering in his native Spain, David moved to Copenhagen during a European Programme where he studied one year of his Masters in Barcelona and 2 years in Copenhagen. During that time, David was picked up by Precure where he learnt on the job while studying before being hired full-time.
Precure, which provides solutions that measure muscle activity to preemptively highlight and prevent work-related injuries through real-time feedback, looks to David to transform the data they collect and turn it into meaningful insights .
Focusing on cloud engineering, signal processing and machine learning, David works within a small team and shares some of the DevOps responsibilities.
Importance of DevOps in Start-ups
DevOps is a vital part of any technology company, but for Start-ups, who are usually building the working practices and cultures of the company, setting DevOps standards early is incredibly important.
“It’s very important, because it makes all your processes integrated and agile from start to end. Agile in the coordination of all people who understand distinct parts of the process. And in my experience people from that development and operations don’t speak the same language. Effective DevOps enables to link these two.”
A Strong Listener and Clear Communicator
For David, a great DevOps Engineer is someone who is curious, intuitive and can easily listen to the two sides of DevOps while effectively communicating with both.
“I think it’s to be someone able to understand the requirements, limitations and goals from the different parts of the product innovation process and listen to professionals with different backgrounds, developers and managers. At the end, you are the connection that ensures the proper communication among them.”
To balance the need for strong communication and listening skills, DevOps professionals also need to have strong analytical skills to spot bottlenecks in processes.
“You need to quickly identify weak points and work on making processes efficient. For example, one of the weak points in our product is power consumption of our devices. A DevOps professional should identify what can be removed in the data stream from hardware to cloud in order to improve battery efficiency.”
What Does the Future of DevOps Look Like?
COVID-19 has changed a lot about how we work. For David, the pandemic has also shown the importance of effective DevOps as many companies are now forced to digitalise their processes to accommodate the new restrictions.
“They need some kind of coordination at a higher level in order to manage this digitalization. The same way supply chain management or portfolio management are key coordination and communication areas across organizations, software management with DevOps will only grow in importance.”
Marcho Markov, Technical Lead at Novo Nordisk
Marcho Markov is aTechnical Lead at Danish multinational pharmaceutical company, Novo Nordisk.
Marcho moved from his native Bulgaria to the United States on a foreign exchange programme to focus on a Computer Engineering Technology Degree. This route into software, starting from the electronics and building rudimentary operating systems from the ground up, is one that Marcho believes stood him in good stead for his future.
“We have a lot of new software engineers that start with very high-up abstractions who stay at that level never looking downwards toward more classical principles like the wires and the electronics. I think that’s great, but I started with the very basics and appreciate the benefit from that low level understanding.”
After completing his degree, Marcho got the opportunity to work with Texas Instruments, building Linux kernel drivers for mobile phones and working on the Android 2.0 and 3.0 distributions.
After that, Marcho moved to Denmark and got his MSc in Computer Science from University of Copenhagen. This focused on the semantics and implementation of computer languages, but it was during this study that Marcho’s interest in Machine Learning was sparked. It was mainly this interest and the work towards ML that got Marcho a position in a research company building Software as a Medical Device Machine Learning application for cancer prediction.
After development of the product was stopped, Marcho moved on to Danske Bank in their eBusiness Security department.
“There, I was first exposed to PL/I and Mainframe. Things that you don’t learn in school at all. Yeah, archaic stuff, which is interesting, but I also got to work a lot more with C#, .Net core and other more modern technologies. We built integrations with various identity providers, like Swedish bank ID and that opened the door for me to the full stack developer range.”
Taking an internal opportunity, Marcho then shifted to Danske Bank’s Big Data & Analytics department working on development and deployment of various ML models.
After that, Marcho got the opportunity to move into Technical Lead at Novo Nordisk on one of their projects. Here Marcho finds himself acting as the glue between departments and software development teams.
Know Your Organisation Inside and Out
Echoing similar sentiments to Girts, Marcho sees DevOps as being a team responsibility and not as a siloed entity.
“A DevOps engineer would need to know all the different distinct pieces of the application. Maybe the team made changes to the front end, or a microservice, that now needs to have things set during deployment. There does not need to be someone that they go to for this. I would rather we share the DevOps knowledge and everyone in the team is to a degree a DevOps engineer. After all that is the idea behind ‘shift-left’. ”
Helping Marcho stay agile and make quick iterations, DevOps support remains close to hand and means developers can focus on doing what they do best: developing.
Marcho’s advice for those looking to go into the world of DevOps is simple:
“If you want to be able to push an organisation in that direction, then you better know how your organisation deploys software today and start thinking where you can provide the most value. Sometimes you have to be bold and lead by example.”
Dan True, Freelance Software Engineer, Architect and Tech Lead
Dan True is a Freelance SOftware Engineer, Architect and Tech Lead. A self-taught programmer, Dan took a Masters degree in SOftware Engineering before joining a company as a consultant where he helped train up junior architects and launch several big systems for the Danish Public Sector.
After four years, Dan became an independent consultant.
DevOps and Limiting Errors
For Dan, who has seen some systems deployed on a manual system that can take up to eight hours, DevOps most important function is in limiting errors and ensuring uptime.
“Of course DevOps has to work on improving these things, but the two things I really think it does is that one is that it moves cognitive load from humans to machines and minimising the potential for human error.”
This focus on automation in the DevOps focus extends to future proofing the company as relying on Humans for deployment might leave you in a precarious situation should they come to move on.
“People change positions all the time so you can’t have a deployment that is completely dependent on one or two people. An automated script can be much more easily handed over to the next person.”
Automation and Flexible Mindsets
The requirements for a DevOps engineer will vary depending on the company and organisation. Moreover, the difference in the DevOps duties of a DevOps Engineer in a company with 1000’s of heads and a company with only 10 is huge. Universally, however, there are several traits that Dan believes are hallmarks of a good DevOps Engineer.
“Automation first. If they don’t think automation they are just old-school SysOps. Every time you approach a problem, you need to think, can we automate this?”
Besides the tireless search for automation and efficiency, a DevOps engineer should have a flexible mindset that will help them pivot with the varying challenges that come along with development and operations respectively.
“SysOps, traditionally, are usually very inflexible and they usually see themselves as the guardians of the production system. That means every change is a threat to that yet. So if you have a culture of that old school system, it doesn’t matter if you’re doing DevOps you’ll be a big blocker.”
What Next for DevOps?
The future of DevOps is something that can be seen as a cultural shift. It can also be seen as something that brings conventionally disconnected components in the development, deployment, and delivery of software into a single loop. Organizations are finding that DevOps is replacing their traditional IT departments. Not only are the titles changing, but the roles are changing, as well. Some of the roles have been eliminated, while others have been multiplied by the scale of microservice architectures.
The execution of successful DevOps relies on teams communicating clearly with each other. The future of DevOps means reduction of manual approvals, since automation is a huge part of the DevOps cycle.