Last week, I somewhat flippantly wrote…
Honestly, the only difference between a junior and senior developer is that you get better at identifying all the places where your code goes to shit.
My friend Sarah Dayan (the brilliant dev behind dinero.js) politely took me to task for such a simplified definition.
After climbing this ladder myself, having worked with many devs from intern to principal level, and contributed to the promotion process of multiple coworkers, I see many other areas that distinguish juniors from seniors.
Spoiler alert: it’s a lot less technical than it seems.
Her whole thread is worth a read. It’s really, really good.
The one part that stood out the most, though, was this…
Seniors move teams forward by mentoring juniors. Instead of jumping onto the tasks they’ll be the best at, they’ll sponsor junior teammates through it.
A senior’s top priority is to grow more seniors. I will die on that hill.
I wholeheartedly agree with Sarah on this.
The best seniors I’ve ever worked with were the ones who took time to help junior employees grow their skills, who documented their code, taught what they knew, and gave meaningful tasks to people further down the ladder.
One quick moment of cause for me about this statement is that it favors neurotypical folks who are good at communication.
I do think it’s possible to be a high-level senior developer who’s very good technically, but not great at communicating or teaching or growing others. In fact, I think you need both in an organization!
I’m never the most skilled technically, but I am often one of the best at teaching things to junior developers.
I think our industry tends to favor technical skill over mentorship, and that’s wrong, too. Organizations thrive when they have a steady growth pipeline from junior to senior.
Thanks to Sarah for this thought-provoking response!