Dara Oladapo

Developer Seniority

Seniority in Software Development

Someone asked me a question on Whatsapp few days back and I thought to write about it comprehensively.

Many times, you hear: I’m a Senior Developer at this company; We’re hiring Junior Developers in this company, etc.

And you ask, what makes a developer senior, junior or lead?

Company Reference

In a company like Microsoft, there are Software Engineers and below are some of the engineering titles:

  • Software Engineer
  • Senior Software Engineer
  • Software Engineering Manager
  • Principal Software Engineering Lead
  • Principal Group Sofware Engineering Manager
  • Partner Software Engineering Director
  • Distinguised Engineer
  • Technical Fellow

This is so that there will be structure and orders. In most cases also, the more senior an engineer is, the more coding experience they have. Although some write less or no code as they go higher.

Some of these folks no longer write code but at one point or the other in their career, they have written tons and lots of code. Some have written code that are in our operating systems today and some are actively making improvements to thise code bases.

Here goes

As at the time of writing this post, I have been writing code seriously for 9 years. I remember the first program I wrote – it was not a Hello World rather it was a VB6 Program that displayed a picture in an image box. From there I moved on to learn C# and haven’t looked back on .NET since then. Do you now callme a Senior Developer/Engineer because I have been writing code for more than 5 years?

My Thoughts

  • If I have been stuck on writing Hello World in 25 programming languages for the 9 years, I am more junior than a junior developer.
  • The growth of a developer is measured by how many unique problems he/she has solved using code.
  • A senior developer most times solves a junior developer’s problem in a shorter time (Note, some problems can be notorious and could take really long)
    • An example: I was visiting one of the companies I used to consult for and I was with one of their developers who was writing a Web API in ASP.NET Core. He was testing the controller action with Postman and passing in a request body but the controller failed to give him a desired result. He has been battling this for over 30 minutes. He asked me to take a look and all I did was to check his code and noted that the was missing [FromBody] in this action parameters. Problem solved in about 10 seconds.
  • A senior developer most times has more productivity hacks for faster problem solving.
    • An example: at some point in time, we had to Hit Refresh on a Project. Move the entire codebase from on Azure DevOps (VSTS at that time) to a new Azure DevOps org. As the consulting dev on the project, I was tasked to work with the in-house dev. What the in-house dev suggested was to download all the source codes as compressed folders (about 14 projects) first, then decompress, setup a new Azure DevOps Org and then find a way to move the codes to the new org. From my experience, this was not a productive move. My hack was to create the new org, use the import services in Azure DevOps to move the code. In few minutes, all the source codes have been migrated compared to hours on unproductve content download, unzipping and reupload (slow internet also a problem).
  • A senior developer most times has others he/she is teaching/leading/mentoring. In many cases, a developer who takes it upon him/herself to teach others or help them with their roadblocks will always be ahead in the learning curve. The knowung that someone will ask you for help will make you learn continously to broaden your horizon.

In Summary (or not)

The number of years you’ve been writing code does not necessarily define your seniority in programming.
Going around in circles still brings you to the same point in the future.

To grow as a developer, you will need to spiral out of the circle and take up challenges.

I remember when I was a Technical Evangelist Intern, my first task was to improve the visitor management system of the subsidiary, the only apps I had wrriten at that time were Windows Phone apps (I may never put those apps on my portfolio ever). Although it was not my primary responsibilty to do so, I saw it as a way to add value while I do my job. I asked a few questions, started on the code and in about 2 weeks, the application was out for us. Trust me, it was not perfect, it was maybe even far from good but it was working – save some crashes. I continued updating the app when I became a full-time employee as a Modern Apps Consultant. After I left Microsoft in 2017, a company reached out to me to develop a visitor management system for them becuase they saw my app at the Microsoft Office. I had taken my small software business seriously then, so I could engage them as company. After a few meetings and proposal defense, we got the contract. Writing the projects, I only wrote code for a small bit of the solution becuase I now had a team of developers who worked on the solution.

My point: if I had not taken that challenge to improve the visitor management system, I may never have gotten that contract. So, continuously seek challenges to improve yourself and help others.

It doesn’t exactly matter if you’re a junior dev right now or not, you shoulld seek to grow daily (or weekly). These little additions to you make you a better developer.