This quote popped into my news feed recently:
At a certain point as a developer, your ability to drive your career forward through technical brilliance tops out.
Sometimes you hear a statement that just clicks, and this one really resonated with me. Because the truth is that when you plot technical skill and career progression (in the role of software developer) against time, it looks something like this.
Technical skill is hard won, requiring a lot of practice, study, failure and perseverance. The first third of that graph is made up of developers who understand their language and a few libraries that allow them to solve common problems. Those in the middle have mastered their language of choice, and are quite often developing platforms using enterprise level libraries and design patterns that encourage development that stands the test of time. The final third are writing new languages or implementing paradigm shifting ideas. It takes quite a bit of skill to move from the first group to the second, and god given genius to move from the second group to the third.
Career progression on the other hand is often just a case of being around long enough to be rewarded with a few pay increases or secure those limited positions that exist above senior developer. And, sadly, all to often senior developer is the last rung on a ladder that an employee can stand on before you begin ascending into management. It’s not as if the notion of principal or even fellow level engineering positions are unheard of, but that they seem to be rare outside of actual software companies. The reality is that most business consumers of custom software development just need tweaks on existing solutions, which might involve custom web apps written against an existing library or backend processing using standard SQL and some business logic. They just don’t need principal level engineers to turn the knobs on popular libraries or commodity infrastructure.
So you either move into leadership roles, where technical brilliance is no longer a requirement (sad but true), or you keep working in a technical position and stall out at the senior developer level, regardless of the actual level of technical brilliance you bring to the role.
If you are more inclined to pursue a technical career, it is worth asking your next employer what job titles exist beyond senior developer. You may just find that there is nothing more senior than a senior developer, and that moving up will mean moving out.