Back in March I put together the Backend Developer Roadmap which has been my most popular YouTube video to date and has been watched over 66,000 times.
The point of this roadmap was to cover everything I know as a backend .net developer so that others have a path that they can follow. I have been a software developer for 13 years now, so I have had a while to accumulate all of this knowledge.
Unfortunately, some assumed this was everything you needed to know to even get started as a backend developer.
As I have mentioned in my replies, if you know everything on the roadmap you would likely be considered a senior engineer or higher.
So in this post I thought I would break down the roadmap into what I would expect engineers to know at different levels. This is of course my personal opinion, so you may not agree with my choices!
The range for what junior developers know is quite broad. Some would have gone to university or college to learn computer science and will therefore have a bit more knowledge than someone who is self-taught.
The majority of computer science courses however do not cover the skills that are actually needed to be a professional software developer.
I would expect most junior .net developers to know the following:
Knowing the above should be enough to get you a job as a junior developer and get you through your first year working on tickets as part of a team.
To progress from junior to mid-level you need to be able to do more than just complete small coding tasks. By mid-level you should be able to code a complete application from scratch to a production standard.
Therefore, adding on from the above I would expect a mid-level developer to be able to know and do the following:
The above should be enough that if you were given a task to produce a whole component as part of a larger system you would be able to do it without too much trouble. I wouldn’t expect a mid-level developer to design a whole system themselves or figure out all the infrastructure, but they should be able to take ownership of a single component.
A senior developer should be able to be given a problem and be able to design and develop a scalable solution for it.
We are no longer considering just a single component but a whole system and how all the pieces fit together and the infrastructure supporting them.
Senior developers and above should therefore be able to do the following:
This is what I think developers at various levels should know but of course each company will have their own competency matrices that you need to look at if you are looking to get promoted. There are often a lot of soft skills involved as well that you need to master in order to move up the ranks.
The levels are rarely as clear-cut at this. As a junior you may know things that a senior should know and equally a senior may have missed something from their earlier career paths.
This is essentially the order I have learnt these topics over the last 13 years. It may seem daunting at first, but each bit of knowledge just builds on previous knowledge, and it doesn’t seem that daunting once you get there.
I am interested to know what you think of the above levels and whether you agree, let me know in the comments.
This newsletter is free for everyone, but if you would like to support my work and my YouTube channel you can do so by becoming a patron on Patreon.