Level 13
Communication
Someone who is able to communicate clearly ALL THE TIME to all members of the team from the client to the junior developers. This person will be able to communicate complicated ideas concisely to non-technical people and junior developers and will be able to defend their own decisions clearly to more senior developers. Will ask questions when necessary and not ask questions when not necessary. All the team will be confident they understand everything this person says. An important skill this person will have is listening, they will be able to listen, process and empathise with the speaker without prejudice of their own pre-existing ideas. If they in are disagreement they will be able to communicate it clearly in a non-confrontational way so all members of the team feel safe talking to this person.
- writes an occasional blog post or other research summary, documented code example
- Communicates with non-technical team members to give technical advice.
- Is able to articulate non-technical ramifications of complex technical decisions to non-technical people in terms that allow them to make informed decisions
inspires confidence
Leading
Someone who can confidently lead a team on a large project (6 months+), they will not necessarily have the organisational skills to organise the team but they will be able to make high level decisions, decide the technical direction of the solution and mentor junior developers. Importantly they will maintain a high level of code quality through code reviews, training and leading by example, and automated tests. Anyone working with this person will be confident that this person will be ensuring that the team is producing the best code they can given their circumstances.
- sets reasonable and effective standards for how something should be done (PR templates as an example)
- Based on team feedback, adjusts development approach or even methodology so that efficiencies are increased
- Insights begin to take on the characteristic of brilliance, seeing beyond the obvious and taking into account the definition of success for the project.
Learning
Someone who actively self learns and regularly trains others.
- regularly writes blog posts / participates in open source projects
- actively mentors / teaches others
- committed to a self-study program
The act of sharing what you know requires that you first organize your knowledge. If you can do this without writing, that’s fine. Writing, however, is considered to be the pinnacle of sharing because it requires the most thought and effort (by many) and preparing anything in writing forces you to deeply understand something.
Ownership
Someone who understands what ownership of a project really means - it does not mean working long hours, but understanding the business goals of the project and the client. This person will not only feel confident to push back on ideas and offer their opinion but also suggest new ideas and look at the project from a business perspective rather than just the task/s at hand. Typically the client will want to have long conversations with this person to bounce ideas, flesh out ideas they have in their head and discuss viability of potential ideas they have. The client will feel that this person fully understands WHY they are doing the project and will see them as a partner rather than a developer.
- Is driven by client goals and will proactively suggest improvements rather than just doing as instructed
Has a consistent record of very strong ownership
Asks the right question
Technical
- Understands the big picture beyond just the developers perspective
- Is able to make decisions on code and architecture taking factors into account beyond using their favourite tech and patterns. E.g how easy it will be for less experienced developers to - contribute effectively
- Will have clear strengths and weaknesses but is able to contribute effectively even in tech or application layers they aren’t familiar with
- Good and bad habits are firmly ingrained. Improving takes both the humility to see their weaknesses and the motivation to actually do so
- Knows best practices and knows which compromises to accept when challenged
- Keeping up with the latest tech is starting to feel like a “young person’s game”. Staying up to date requires active effort