When I was a junior developer, I thought the path to senior was clear: write better code, get faster, know more. Do those things long enough and the title comes. I was broadly right about the code part. I was completely wrong about what else was required.
The Skill Nobody Tells You About: Writing That Communicates
Senior developers write more than they code. Design documents, technical proposals, post-mortems, architecture decision records, PR descriptions, meeting follow-ups. The ability to write clearly and precisely about technical subjects — for both technical and non-technical audiences — is a significant differentiator and one of the most underdeveloped skills in most developers.
The practical test: can you write a one-page design proposal that gives your team enough context to have a productive discussion about the tradeoffs? If you've never tried this, try it on your next significant feature. It will clarify your own thinking and make you visibly more senior to the people around you.
Scope Management: The Real Job
Junior developers tend to think their job is to implement what they're asked to implement. Senior developers understand that their job includes pushing back on scope that's wrong, identifying dependencies that haven't been considered, and negotiating timelines based on realistic estimates rather than comfortable ones.
This requires saying things your manager might not want to hear, which is uncomfortable. But the developers who get promoted are the ones who proactively catch problems, not the ones who quietly implement specs and deliver bad news at the deadline.
The Ability to Make Decisions Under Ambiguity
At the junior and mid-level, most decisions are either clear (there's a right answer) or escalated (someone more senior decides). At the senior level, a significant part of the value you provide is making good decisions in ambiguous situations where there isn't an obvious right answer.
This means developing the judgment to assess trade-offs, the confidence to commit to a direction without perfect information, and the wisdom to know when to ask for input versus when to just decide. These are skills you develop by exercising them, not by studying them.
Multiplying Others
The most visible senior developers I've worked with had one thing in common: they made the people around them better. Code reviews that taught rather than just corrected. Documentation that made the system understandable to newcomers. Conversations that helped junior developers think through problems rather than just giving them the answer.
This is often called "multiplying the team" and it's why senior developers are valued beyond their individual output. A senior developer who makes three junior developers 30% more effective has contributed more than the same developer optimising their own productivity.
The Uncomfortable Truth About Promotion
Promotion decisions are made by humans who are influenced by visibility, reputation, and relationships — not just measurable output. The developers who get promoted are usually the ones who have made their contributions visible, built credibility with decision-makers, and have advocates who will speak up for them in the room where the decision is made.
This doesn't mean you need to be political. It means you need to communicate your work, build relationships, and be the kind of developer other people want to work with. The code is necessary but not sufficient.