Hello everybody! My name is Miklos Nadas and I am a Cloud Release Engineer at Esri. I work with a small, awesome team of Release Engineers whose main responsibility is to get our software into our customers' hands. And we have a lot of software that is released. In the past year, we released on average a little more than one product every day! In this blog post I will highlight what I do as a Cloud Release Engineer, a day in the life, and skills needed for others pursuing similar paths.
When I received my offer to work at Esri as a Cloud Release Engineer, I was ecstatic. I told my family and my friends. One of my friends, who works as a software developer, asked "The Release Engineer role is still around? What exactly are you going to do for Esri?" I read the position responsibility to him, "I will be responsible for the overall delivery of ArcGIS Enterprise in Amazon and Microsoft Azure." It took me a few years to better understand all the responsibilities of this role and how critical my work is for ArcGIS Enterprise.
But to understand how I got to Esri, I need to go back to the beginning of my career. As a freshman undergraduate, I decided to study electrical engineering. After a couple years, I concluded that electrical engineering was not the right fit for me. I switched to biology because I remembered liking the subject in high school. Luckily, I discovered ecology in the final section of Biology 101. I dove headfirst into ecology and took every course that I could. That summer, I did an internship at the Lake Erie Ecological Modeling Lab. The lab introduced me to open-source GIS software, such as GRASS and UDig.
When I graduated, our economy hit a recession due to the dot com bust. For months, I searched for jobs in either GIS or ecology, and I landed a GIS data entry position at a utility company. One day, two individuals showed up to test our Enterprise GIS software, Smallworld, and check the software's latency and functionality. I had to show them my typical workflows. That interaction motivated me to say, "I could administer Enterprise GIS Software!", but how? So, I went back to get my Masters in Geography and GIS.
After I graduated with my Masters, the economy hit another recession with the housing market crash. I stayed focused on getting a job utilizing GIS and was lucky to find a job as a GIS Consultant. For the next decade, I bounced among firms as a GIS Consultant in different industries, such as oil and gas, energy, environment, water and wastewater, and roofing all the time broadening my experience and sharpening skills. I learned that a GIS consultant needs to be knowledgeable on the latest GIS software and trends, constantly sell their services to new and existing clients, and work as needed to achieve aggressive deadlines.
My personal life had a major change, and I was starting a family! I needed something less intense than the life of a consultant and went to work for the City of Cleveland Ohio as a GIS Administrator. I administered Cityworks and finally achieved my goal of being an Enterprise GIS Administrator. But as soon as one goal is achieved, another appears.
The City of Cleveland started discussing using cloud infrastructure to host their Enterprise GIS System. I started doing research on cloud environments and decided this was the next big thing. I imagined no longer needing to go through a complicated hardware procurement analysis. Instead, if we needed a server with more CPUs or memory, we could change it with the click of a button. Unfortunately, the City of Cleveland did not move at my speed and an opportunity arose where a small software development firm in the agriculture industry needing a GIS Administrator and their enterprise software was in the cloud.
I got my first taste of the software development life cycle, writing unit tests, and administering Enterprise GIS in the cloud. Everything was going smoothly but then I experienced the fluctuations of a small startup. My roles and responsibilities were shifting in an undesired direction. After 15 years of using GIS software and being a customer of Esri, I joined Esri as a Cloud Release Engineer.
But returning to the pinnacle question, what is a Release Engineer and what is my main responsibility?
At Esri, the Release Engineer has two main responsibilities. The first responsibility is testing our software. If you have ever installed or configured Esri’s ArcGIS Enterprise software, there are a lot of options and configurations, and we test as many combinations as possible. An example is that you can install Enterprise GIS on Windows or Linux, and we test a lot of flavors of Linux.
ArcGIS Enterprise has multiple development teams contributing to different apps, components, and software. Each development team has their own set of unit tests but after all teams push new code in, the release team makes sure that all the different components are still working together. For example, one of our tests ensures that ArcGIS Server can still federate with Portal for ArcGIS. Only a daily basis, I deploy about 50 enterprise environments on the cloud to ensure everything is still working.
The second responsibility is to deploy ArcGIS Enterprise environments for other internal teams to test. Esri developers are excellent at writing code and resolving bugs, but to test a recent fix or a new feature on an enterprise system can be complicated. It would require the developer to deploy their own enterprise environment. Our responsibility is to deploy environments for the developers to test their fixes and new features.
After I have completed my two main responsibilities, I continue to enhance our confidence tests and improve my automation to deploy environments.
Finally, the few days of the year that are most critical for a Release Engineer are the days we release software! The Release Team are the final gatekeepers to getting the latest software into our customers' hands. Once development is completed and every other team’s test is completed, we run our final confidence tests to ensure the software is ready to be released.
One of my observations as a GIS consultant was that most GIS Analysts did not pursue anything too complicated or technical, such as programming, automation, database management, or enterprise management of GIS. They stuck to their comfort zone and used ArcMap and focused on map making or data entry. Since others were not interested, I had the opportunity to learn database management, improve my Python scripting, and configuring and installing ArcGIS Enterprise. I found this niche of being a GIS expert, but also technically proficient beyond GIS.
These technical proficiencies lead to be the foundation of skills that are important for a release engineer. Such as understanding the cloud infrastructure, scripting or coding, efficiently automating processes, understanding how ArcGIS Enterprise works, and writing effective tests utilizing the latest testing software. We also automate a lot of our workflows so we can deploy enterprise environments daily and run a full suite of confidence tests against them.
Another important skill of a release engineer is being a detective. If a test fails, I begin to investigate the issue. I read multiple log files, check recent git repository changes, and collaborate with other release engineers to compare environments. But if I cannot find the reason for the error within logs or from my colleagues, I communicate with developers about their software and if they can help me debug the issue. Once the dialogue with developers begins, debugging issues require teamwork with individuals all around the world.
Before joining Esri, I remember eagerly waiting for that email indicating that Enterprise 10.9.1 was released because we were waiting for that one feature that was promised by developers. Now, I get to use the latest Esri software and test the features months before anyone else.
Esri has a fantastic work life balance. I have been on calls with individuals working through issues but then I need to tell them that I must go and coach my kid's soccer practice or pick up my kid from school. Their response is always, "Of course, that's super important. We'll figure this out tomorrow".
Esri is a huge company with teams located all over the world. As a Release Engineer, we get to work with multiple teams on different products. It is exciting to meet new teams, test their software, and see how their product fits into our customers’ workflows.
And finally, the Release Engineer is a “jack of all trades, master of none”. We become proficient in the whole Esri Suite of products. There is no better team at Esri to learn about all our GIS products, sharpen your technical skills, and be challenged on a daily basis.
Everyone’s journey with their career is different. Some of my friends received jobs straight out of college, and 20 years later, they are still joyfully employed with that company. My career had many twists, roadblocks, and unforeseen situations, but I took the time to learn something from each role, supervisor, and colleague. Keep pursuing what you find interesting, embrace the challenges, and (as Dory from Finding Nemo says) “Just keep swimming”.
Feel free to ask questions in the comments below and connect with me on LinkedIn.
If you’re interested in a career at Esri, check out esri.com/careers.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.