A close friend recently asked if I’d like to be a senior developer one day. For the life of me, I could not answer that question. It is a simple enough question, at least on the surface, and I could have gotten away with saying “God, yes!”, even without giving the question serious thought. For there are probably few developers who would not want the prestige, the title and the honor that comes with being senior. People get respectfully quiet when you walk into a room, because your opinion truly matters, and do not walk past you like you’re made of glass. And those fat paychecks, especially in these painful days when we are taxed simply for breathing, who wouldn’t want that?
It may seem that the obvious outcome of a few years of professional development is a rise in rank. Indeed, no sooner does one say he is a senior developer than he is straight asked how many years of experience he has. As if age is the only thing that matters; as if one should write code for years on end till steam comes out of one’s ears. Is a senior developer, then, a senior citizen? Not necessarily.
A senior developer, at a minimum, is one who, after years of experience (could be four, could be ten), is able to give you clean, expandable code, writes code less likely to fail in the future, is able to design and lead a project and is superiorly competent in at least one language. A junior developer is different from a senior in many aspects. For example, a junior will try to use a certain technology because it’s the latest fad; is arrogant despite his ignorance; and will have a mentality of leaving well enough alone – if it works don’t touch it, usually because his code works by God’s good grace or because he does not fully understand what he’s doing. A junior developer is a paid intern of sorts.
A senior developer is not merely good at writing code: he knows how to ask good questions and thus gain better requirements, does not blow up when shit hits the fan, gives useful feedback, is a role model, can communicate technology matters freely and clearly, and is able to spot his or other people’s mistakes and learn from them, maybe after cringing in horror. While such skill can come with experience, surely experience is not the only factor? One might become exceptionally good at something by mere repetition, but to wield truly great power, there needs must be judiciousness, purpose, energy and direction. Mere repetition becomes dull after a while.
Yet with great power comes great responsibility: to whom much is given, much is expected. Junior developers live freely for the most part. Their sleep is sweet, their dreams be never so full of bugs and build errors. They enjoy their meals, be they ever so free of responsibility. They can afford to act like no one’s watching. Senior developers, on the other hand, need to hop from one hellish meeting to another, need to rollback a deployment gone wrong, need to talk to this angry client or that, need to down some chamomile tea to quiet their ulcers, need to do this and that, such that before long they simply can’t sit still. When they take a break, it is to discharge a temper on some innocent soul or suffer even more by disguising their suffering under fake smiles. Heavy is the head that wears the crown.
So when my friend asked me whether I’d like to be senior one day, I briefly ran through my mind the preceding and more. I shook at the sheer responsibility of being senior, yet I shook even more at the thought of staying where I am forever. I live light, so to speak, and could use some grounding. So yeah, I’d love to be senior someday. For now, let me put my nose to the grindstone, so that when the rubber meets the road, when the higher-ups say “Crown him”, the crown shall fit and shall not be so heavy on the head.