I’ve been a professional software developer for 2 years now. I’m at the stage where I no longer consider myself a junior developer, and don’t need my hand held to do work anymore. While someone of my skill level may be considered called a ‘senior’ developer in their job title - I’m still a few years away from being a senior developer in the more absolute sense.
For junior developers there is a pretty clear career path: learn enough about one language (or a few if you’re in web development) to be hirable and take whichever job allows you to learn the most the fastest. For senior developers, they’ve gained tremendous experience both from a technical perspective, and from being in the industry for such a long time that they inherently have a good grasp on their careers.
However for mid-level developers such as myself, there are quite a few open questions in my mind. Last week I grabbed lunch with a few of my developer friends who are at about the same level as I am, and they too were wondering the same things I was. Hopefully I’ll get clarity around them soon, but for now here are the career questions I’m wondering about:
Fair Market Value
As much as I enjoy going to work, it is still a job that I expected to be compensated for fairly. There is a lot of noise out there out in terms of what average salaries are for developers - but I’m not sure what is accurate. Furthermore, these averages tell little of what salary is fair given my exact skill level, expertise, and personality. I have no clue if my compensation is in line with the market. Having this information would be incredibly valuable to me. How do I find out what salary I should be expected to be paid in the current labor market?
New Skill Acquisition
I am very eager to become a better developer. I spend ample time coding, pairing, watching video tutorials, and building side projects. I’m at a stage where I’m an advanced Ruby on Rails developer, and am getting proficient at JavaScript. I’m extremely satisfied with my learning trajectory, but am unclear as to what I should be focusing on going forward. Should I continue to master Ruby and JavaScript? Should I give into temptation and learn Swift and iOS? What about delving into the world of DevOps? What are the factors I should consider when trying to figure out which skills to learn?
Career Paths
There are a litany of different career paths that I could take, and that’s just counting the ones where I stay in the tech industry! Specifically for developers, I’ve heard of a few different paths that people take through their careers. First, there are people who choose to spend their 40 year careers just writing line after line of code. Second there are the people who manage teams of developers, but who themselves code less and less. Finally there are people who move into adjacent disciplines such as product management that frequently interact with the engineering teams. Given these three broad paths, what are the pro’s and con’s of each? How should I go about discovering which one is right for me? What other paths should I be considering that aren’t even on this list?
Climbing The Ladder vs Jumping Ship
I know what it’s like to be at a job that is so miserable all you can think about is escaping. In that scenario, obviously it’s time for a change. Luckily my current job is nothing like that - and I'm working with a great team made up of friendly and creative people. However, even for a job like mine where I am happy, it’s still an open question of what I should be doing to advance my career. How would I go about getting a promotion or undertaking more responsibilities at my current job? Is it really true that the only way to get a raise is to switch jobs? What is an ideal amount of time to stay at a job? What kind of work experiences should I be looking for that will help me become a senior developer the fastest?