I’ve been a developer for 6 years, now what? (Career ideas for developers)
Development is fun, and a curse, at the same time. Have a great idea? I can build that! You start writing code, and before you know it you’ve made a twitter account, bought the domain name, and have your slack channel ready for automation purposes. Only to abandon it all again a few months after. Sound familiar? Then you must be a developer too! Sadly this analogy is just there to see if this post somewhat applies to you. I think it’ll still be interesting for anyone that wants to read it, but you gotta start a blog post somehow, right? Anyways, moving on!
So you’ve been doing your job for a bunch of years now. You’ve gone from thinking you can build anything and everything as a junior developer, through being a medior thinking you have barely scratched the surface of development, all the way to the senior that suddenly everybody looks to when they are stuck. Being a mentor is cool and all, but where does it end? Can you be a senior developer forever, do you even want to be? And what does it mean to be a developer for your entire worklife? So many questions, so many different answers. In this blog I’ll attempt to answer some of those questions, based off of my own experience.
The Senior Senior Developer
No matter the field you are a developer in, whether it’s frontend, backend, low-level, high-level, or anything in between… you can always, always learn more. I think this option mostly applies to people that really just want to be dealing with code. They don’t care about people, don’t want to be a manager, and just want to do what they do best — write awesome code. Those people certainly excist, and we need them, too! The Senior Senior developer is basically the person who knows almost anything. Often having been at a company for a very long time, so they carry a lot of experience and especially know the history of said company. They are often referred to as the ‘last resort’, when nobody can figure it out. And you definitely need those people!
Becoming a Senior Senior developer basically means to never stop learning any development aspect. The Senior Senior developers for me are those who have a big speciality in a lot of fields. By continuously developing themselves and touching base with a lot of aspects of development, they know almost anything and everything. And they are never scared to dive into fields unknown, constantly trying new things is what makes them who they are.
The Manager (or Team Lead)
Sadly this is a step that companies often see as the ‘next step’ when a developer has ‘capped’. Companies often don’t pay developers more than managers, so if you want to make more money, becoming a manager is what you’ll often see people end up doing (or rather, having to do). Which I think is a big shame. Just because a person is a manager, doesn’t mean they should automatically be making more than their rockstar developer. If anything the manager can be replaced, but the rockstar developer with a wealth of experience, is to me a whole lot harder to replace.
I’m not saying that this career move is bad, not at all. Many people are great managers, and especially those with some technical knowledge. They can often much better understand the needs of their team members, know what trainings to look for and just have a better feeling for how to talk to their team. But it’s not for everyone, too. You need people skills, or at least try and develop those, as you make the move from developer to manager. Code is predictable, people are not.
If you have no development knowledge, I guess this role could confuse you. Nope, I’m not talking about a, for many, typical architect who makes buildings. But there are a lot of similarities between that type of architect, and an architect in the world of development. The Architect basically is the person to determine, on a technical level, how the application or website or such should be built. From reviewing API documentation to writing technical flows that should be implemented, as an architect you’ll more be busy with the ‘how are we going to make this’, rather than doing the actual coding yourself.
Having built countless of websites, tools, or otherwise, you know exactly what it is you need when you’re starting out on a feature or brand new project. And those skills are exactly what will make you a great architect. You have the deep technical knowledge, that you can use to put the technical details on paper. But these types of skills are also something you’ll need to learn, and will become better at over time. At first the developers might not have a full understanding of the flow yet, because you might miss details that are obvious to you. But not to the junior developer who is fresh out of uni. So as time goes on, you’ll learn what kinds of details it is that you need to write in your technical documentation.
The Tester (or Quality Assurance)
Your most valued colleagues (I hope)! In the end they make sure you haven’t missed anything important when developing, and that the feature works great for the users of your project or product. Testers or Quality Assurance Engineers are a vital part of the development chain, and we couldn’t do it without them. So why not consider becoming one yourself?
The options as a tester or QA are endless. On the one hand you have manual testing where you are actually busy using the project or product. From spotting visual bugs to broken features or otherwise, you’ll be busy with testing, writing test cases and bug reports, and talking with developers in order to resolve issues. Next to that you have the almighty test automation engineer. And what a great fit that is for a developer! You already know how to write code, so writing automated tests can become a whole lot easier for you. It’s a job you’ll be able to transition to quite easily, albeit you do need to switch your mindset a little. From writing features to writing automated tests to check those features. But it’s definitely a suitable job for any developer.
The Support Engineer
Shoot, those pesky testers have missed something. I guess you should have become that QA Engineer after all? Now I have to do the hard work and show them that the customer reported an issue with the feature we deployed last week…
In all fairness, support engineers are very much needed! You can’t catch every issue or edge case, and you probably never will. That’s why we have support engineers who make sure that issues in the wild are tracked, reported and sent to development teams to fix. And let that actually be the part where more technically skilled people can excel. They can do a lot of the prework for development teams. From being able to reproduce a bug, to providing more technical details about a reported issue; technical skills of support engineers make the life of developers a lot easier. On the other hand, you do have to deal with pesky customers, and sometimes yes, you just need to tell them to turn it off and on again. But it’s a valuable and very important job none the less!
The DevOps Engineer
As a developer I’m sure you’ve worked with DevOps engineers before. You need to host your website somehow, right? That’s exactly where the DevOps engineer comes into play. They write infrastructure specs, often in conjunction with developers, and help developers with the transition of their project or product from testing to production. Basically ensuring that developers don’t need to worry about any of the hosting aspects, but still aware and involved from the sidelines. DevOps is all about collaboration between developers and operations, after all.
Transitioning from a full-time developer to DevOps makes this a natural move as well. Developer is in the word DevOps, so you’re already going to need development-skills to begin with. What can help you become a good DevOps Engineer is simply knowing more about the apps you’re going to deploy, for example. In the front-end world that would mean you understand how to host Nginx websites, or how to keep a Node-service running in a Docker container. You do have to learn the DevOps parts though, like Docker. And Kubernetes maybe. And what about CDNs, or caching with Varnish, you name it. It’s an amazingly interesting world, that I think former full-time developers would fit like a glove.
The Technical Project Manager
Don’t you hate having a project manager that doesn’t actually know anything about the project they are running? In reality this often means that, for every single little technical thing they need to handle with their client or stakeholder, a developer needs to be contacted. Or the project manager ends up being the messenger. Passing through messages from client to developer and vice versa. Oh how much time better the world would be if they had some technical skills, so they could save time from both the developer as well as the client!
That’s exactly where technical project managers come into play. Often having had either some technical schooling, or having their origins as a developer, somewhere in their long dark past; they can be a life saver for developers and clients alike. Understanding the project they are working on, at least on some technical level, means they can better translate client requirements, and know exactly what to ask for, from developers. A not uncommon step for former developers that enjoy working with clients. Do you have stuff to learn? Definitely! For one you cannot hide anymore. In the end you are responsible for the outcome of the project, good or bad. So being able to clearly and concisely communicate with clients (that’s a tongue twister if I’ve ever seen any, try saying that 5 times quickly), is something you’ll definitely need to learn and become better at. So even if you have the tech skills, don’t think you’re going to be a good project manager immediately.
The (Technical) Product Owner
The company you work on is building one or more products, and there are always those pesky guys who think of new stuff to build. Guess what? That’s the product owner! Through talking with stakeholders, to looking at the market and business value that features provide, they are the person determining what it is the company actually needs. A very interesting position where you can also let your creativity shine a bit. Maybe you’ve thought of this awesome feature that will set you apart from your direct competitors?
So how can your technical knowledge make you a good product owner? Most importantly, at least for me, is that you actually understand what it is your company is building. On a detailed level. The skills transferred are in that sense quite similar to the ones of the technical project manager. Your job on the other hand is completely different from it. You will be focused more on the ‘what’ and ‘why’ of features that you’ll start adding to the product. Understanding the technical ramifications means you’ll be able to get earlier feedback if something is even remotely possible, have some insights into the costs of certain features, and in general are better at understanding what kind of features your product even needs. You simply just have a better understanding of your product, on multiple levels.
The Scrum Master
Do you really do Agile? I’m sure on some level there might be things in your company that look more like Waterfall, or some other workflow. But having a scrum master is incredibly valuable for any development team. From removing blocking dependencies, to kicking peoples asses when they don’t do something, to making sure the correct meetings are planned. There is a lot that the scrum master does. They are basically everywhere, to ensure that the development team can do their work as optimal as possible.
You might ask yourself, ‘how do development skills help a scrum master’? I think think the main benefit of being more technical, is that you can better understand blockers for the team. If a developer comes to a scrum master to say that they need specific API documentation that’s nowhere to be found, if you don’t even know what an API is, how are you going to help this developer? (Yes, that’s a really simple example, but I hope you get the point!)
The Head of Something, VP, CXX
Many names for similar positions. I’m sure that the company you work at has at least one of these, if not many more. I’m talking about the Head of Developments, the Vice President of Engineerings, the Chief Technology Officers, and similar titles. For me this is basically the next step of management, but one that many people often climb to after being a developer. Having extensive knowledge of their tech stack and company history, it’s a logical move to start making high level decisions about said tech stack. A typical thing for the for example Head of Development, is to steer to company towards using tech that better suits what the company is doing. Keeping up with trends in the market, finding the right people for the company and building the teams that do the actual work. A lot of tasks for a versatile job.
But, what is good to understand, is that roles like this are really different depending on the company. You can be a very specialised Head of Development, with a lot of hands on work; or a very hands-off VP of Engineering. These types of roles are often driven by how the company functions, and no two Heads of Something are the same. That’s both the interesting aspect of this, as well as the fun of it. It’s basically a title for a person who does a whole lot of stuff to drive the company further, often from a technical perspective. A role that comes in many shapes and forms.
The Tech Recruiter
You already know what you’re talking about, and that is, for many developers, much better than the horde of recruiters out there. Of course there are good and bad recruiters out there, let’s be honest. But you do have a step ahead in that field, as you’ve had a long and extensive career as a developer. So when you’re recruiting for a position, you know exactly what kind of person to look for. You understand the technical details that a candidate can ask from you. And you probably also already have a big network that you can reach out to, when you’re looking for a candidate. Transitioning from a developer to a recruiter, for this and many more reasons, makes it an awesome fit.
The Little Bit of Everything
My favourite, especially when you have a long history at a company. You know a little bit of legacy projects, you know a little bit of new projects, you do a little bit of research and development, you know some of the long standing customers personally, you… the list goes on and on. Through time you have become so familiar with so many little things, that your job now doesn’t entail a single thing anymore. You’re basically everywhere for a little bit, which makes your job never boring and always interesting. From doing development to project management to product ownership and more, you’re everywhere! But also very busy at times, so be wary of not burning out from doing too many things at the same time.
This job is not really something you see a vacancy for, it’s something you become. It all depends on the position you find yourself in, and the options that the company you work at, has available. Growing more as a person while working at a company can be awesome, and it’ll give you the chance to sample a lot of different things. But like the previous job we discussed, this also really depends on the company you’re at. Working at a startup with 10 people? You’re almost guaranteed to be a little bit of everything at the same time. On the other hand, a company with 1000+ people? I doubt you’ll be able to do everything at the same time, there are simply too many things going on, and there are too many people for this to be a feasible option. Somewhere in the middle of that 10 and 1000 people might be better, but again, it all depends on the company.
I’ve been a developer for 6 years, now what?
We started with this question, and we haven’t really answered it yet, have we? I’ll be honest, I don’t think I can actually answer it. On the other hand, I really do hope that you can! Because deciding your next career move is completely personal and really depends on the situation you find yourself in. There is no single answer, and even if you’ve made up your mind, you can always try something new! That’s the fun of a tech job, there are so many options, and you can always take the time to learn and try and see what fits you best.
I do hope that I’ve given you an idea of some of the possibilities out there, when it comes to making up your mind about moving further as a developer. Have I listed all the possible jobs out there? Definitely not! And even my descriptions will not completely match the vacancies you might see out there. All I hope is that you have gained some extra knowledge, that will eventually help yourself forward in your awesome tech career!
PS. I hope you’re not too offended by the funny images! They are just there for a bit of lighthearted fun, and in no way show how awesome all the people and their jobs actually are! You’re doing your job for a reason, because you are good at it!