There are so many developer buzzwords being thrown around these days: Web, Software, Systems, Front-end, Back-end, Full Stack, DevOps…
For some developers such as myself, this can cause somewhat of an identity crisis!
Who am I? What am I?
I’ve been calling myself an Azure Developer purely because I spend most of my waking hours writing code that does ‘stuff’ in Azure (plus it’s also in my job title).
When I introduce myself in meetings or on calls, I often get asked “What is an Azure Developer? What do you do exactly?”, and I’ll be honest, I don’t find it all that easy to answer!
This article is my attempt to solve my own identity crisis…
The Job Description
Let’s keep this brief:
The job of a developer is to solve problems through code.
The job of an Azure Developer is to solve problems through code and through Microsoft Azure technologies.
I don’t (currently) write any C#.
I know, right! Can you believe it! This guy calls himself an Azure Developer and doesn’t use a proprietary Microsoft programming language!
Well guess what, you don’t need to know any C#!
What makes me an Azure Developer is that I use Azure technologies to extend the capability of my applications beyond just being scripts running on a server.
I deploy my Python applications via Azure Function Apps. I host my React web applications in Azure Web Apps and host my MongoDB data in Azure CosmosDB.
“By doing this, I get all the advantages of Azure in addition to my code in order to solve problems.”
With my applications being hosted on the Azure Serverless platform, I no longer have to worry about managing an operating system. I can split up my environments (such as production, staging and development) into staging slots and could even deploy using containers via AKS. I can even create CI/CD pipelines using Azure DevOps.
The technologies made available by Azure enables me to span multiple disciplines and extend my capability beyond what would be a traditional development environment and role. I mean, I can deploy a globally scaled application with built in redundancy without even touching an OS, let alone any infrastructure.
So who am I?
I’m a developer with super powers!
Cut Through The Buzzwords
Ok - so I think that’s answered the Who am I? question. But what about What am I?
I create public facing applications with logic, data processing and storage. So I’m a Full Stack Developer, right? Well, I also use the DevOps practices and tools to plan, build, release and deploy these applications. So I’m a DevOps Engineer, right? Different people and places have varying definitions of what constitutes these roles - so what on earth am I?”
It’s time to address all these buzzwords!
The buzzwords are exactly that. They are superficial and it’s best not fall into the trap of trying to identify yourself as one thing or another.
Take a look at the Developer Roadmaps by Kamran Ahmed. It’s a fantastic resource but if you’re anything like me, you can pick a handful of skills from each section and not fall comfortably into either path.
Each of us will have our own interests and professional orientation. You can be a Software developer in Azure, you can be a Front-end developer, a Back-end developer, a DevOps Engineer or a combination of each!
The point is that you make use of the tools Azure provides as means to solve your problems.
So what am I?
It depends on the project I’m working on… I am defined by the problem I’m trying to solve.
Like many people in the IT industry, you can and most likely will wear many hats - and that’s ok!
Taking a look at the description and specification of the Azure Developer certification is another great way to apply some definition but also some perspective.
The exam criteria tells us what Microsoft considers to be the required skills any Azure Developer should possess.
“Microsoft Azure Developers design, build, test, and maintain cloud solutions, such as applications and services”― Microsoft Certified: Azure Developer Associate ―
The exam spec covers IaaS, Storage, Security, Monitoring and Connectivity.
These are fairly typical considerations when developing any application, so it shouldn’t come as a big surprise that you need to apply the same considerations when developing for Azure. These requirements help to provide extra context when having to explain further what you are and what you do.
It’s worth noting here that the Azure DevOps certification is not just separate to the Azure Developer certification, but is also considered to be at an Expert level (with the Developer certification only considered to be at an Associate level). You need to have passed the Azure Developer certification (or the Administrator certification) exam before being able to take the DevOps one.
I don’t personally agree with this approach as it suggests to me that Microsoft considers Azure DevOps Engineers to be more senior that that of developers.
It’s not compulsory to take the DevOps exam but from an interests point of view I found it fun to study for and the skills are worthwhile knowing, even if you don’t use them regularly.
I actually found the Azure Developer Associate exam to be much harder than the DevOps Expert exam!
Here’s a good overview of the changed:
Microsoft Azure Developers design, build, test, and maintain cloud solutions, such as applications and services.
They CAN partner with cloud solution architects, cloud DBAs, cloud administrators, and clients to implement these solutions. However, like many people in the IT industry, an Azure Developer can and most likely will wear many hats, combining several of the above roles.
An Azure Developer is just a regular developer but with Super Powers!
Thanks for reading!