This post is part of a series on our technical career paths, or the technical ladders as we call them at DataDIGEST. You can find a full index of the series at the end of this post.
Skill is a measure of your technical and interpersonal skills. In other words: How technically proficient are you and how well you are contributing and transferring your skills to the team.
|1||You are learning the basic principles of software development; learning the different tools, resources, processes and best practices.||You effectively communicate questions and status to your team. You are eager to learn new technologies. You accept feedback graciously and learn from everything you do.|
|2||You produce correct, clean code with guidance and consistently follow stated best practices. You rarely make the same mistake twice and you are gaining expertise in multiple areas/ technologies/ methodologies/ processes. You learn quickly and make steady progress without the need for constant significant feedback.||You solve small problems, identify bigger problems and communicate their components to your team and implement responses. You are becoming technically flexible. You communicate assumptions and get clarification on tasks up front to minimise the need for rework. You are eager to find ways to improve.|
|3||You understand and make well-reasoned design decisions and trade-offs in your areas with guidance. You demonstrate knowledge of industry trends, infrastructure concerns, build systems etc.||You creatively solve problems. You work very well in the team. You interpret and implement design decisions. You are comfortable switching between technologies, even new ones. You communicate technical decisions through design docs, tech talks, wikis etc. You mentor and transfer knowledge well. You proactively identify problems with requirements and communicate these issues early.|
|4||You are familiar with industry practices and therefore can work independently as necessary. You propose design approaches for review and agreement. You have worked on one or more shipping projects, and have gained experience in each of the basic software development lifecycle steps needed to ship a product. You are very competent in nearly all code-centred, detailed-design centred, and task-centred areas, and demonstrate additional competency in other software lifecycle areas.||You independently and creatively solve substantial problems. You have excellent communication and teamwork skills, you make others better through code reviews, thorough documentation, technical guidance and mentoring. You facilitate technical problem solving and get buy-in for solutions. You are technologically flexible and develop and encourage it in others.|
|5||You are sought out for your technical guidance. You anticipate technical issues at the product level and make architectural and design decisions to avoid them. You have a record of creating sweeping improvements in stability, performance, and scalability in large projects.
Your competence extends to architecture, user interface design, project planning, documentation, deployment, fit and finish, and other project-level issues.
|You independently and creatively solve major problems. You have excellent communication and teamwork skills, you multiply effectiveness in others, you listen and guide debates to help reach a consensus; once a decision is made, you clearly communicate and back that decision. You switch technology with ease. You learn new technology and methodology quickly and transfer that knowledge to others effectively.
You have not only mastered the attributes, you are actively and successfully developing and encouraging them in others.
|6||You anticipate broad technical changes. You recognise and make trade-offs with respect to whole systems. You deeply understand the architecture for entire systems and are able to clearly articulate scaling and reliability limits.||You act as a multiplier by building systems, authoring tools, or introducing policies or patterns that raise the level of productivity of multiple teams. You are considered a role model and mentor to all technical team members, even extending to the broader technical community.|
Over the years much has been published on professional ladders and career paths, thus claiming that our structure is completely original would be dishonest. In this regard I would like to recognise, and thank, Joel Spolsky, in his capacity as co-founder and CEO of Fog Creek Software and co-founder of Stack Overflow, for his posts on this subject.
Furthermore it would prudent to note that “Historically, Fog Creek’s Professional ladder is based on Microsoft’s professional ladder, which was adopted and publicised by Construx” – Joel Splosky.
Many of the guidelines you see here are blatantly copied, with minor modifications for the culture we are creating.