This is the first in a series of posts I plan to write on the subject of progressing from being junior developer or mid level developer to being a senior developer. It’s based on a forum I hold with my team members that are eager to progress down this path.
The first place to start is in defining what a senior developer is. Its important to note these characteristics can vary depending on your own personal preferences/abilities, and where you work (type of company, size of company, managers expectations, company culture, etc.). Here is a list of what I believe a well rounded senior develop should posses:
Behaviour based:
- Has a proactive approach.
- Someone who takes responsibility.
- Someone who seeks to understand before being understood. Including – adding or subtracting from a requirement to make it work and not having ‘no – it cant be done’ to be your first response.
- Is a mentor to junior members of the team.
Skills based:
- Keeps skills updated e.g. Experiments with new technologies (links in with being proactive)
- Has a wealth of domain knowledge (proactively works towards attaining it, if new to a domain).
- Someone who can work independently i.e. doesn’t need much technical guidance and when they know help is needed they report it early to relevant people.
- Has strong debugging skills.
- Can communicate technically & non technically with stakeholders.
- Is involved in the full software development lifecycle.
- Can lead design and architecture decisions.
- Is accountable for a solution delivery and support.
- Is a go to person.
Now that I have defined what a senior developer is here are a number of posts to explain how you can get there or topics you need to know about and use day to day:
- Practices a senior developer should have to grow/maintain their knowledge.
- How To: Structure Your Source Control Folders.
- How to: Branching and Merging Guide.
Please leave a comment if you found this useful or have something to add.