Backend Developer
Level 1
Mastery
- Learns to write simple code in Java
- Fixes simple bugs
- Understands the structure of the project
- Knows how to debug simple API request
- Masters the basic git
Example: Checkout, Push, Pull, Branch, Diff, Merge, Stash, Rebase, etc.
- Knows how to update documentation
- Knows how to write simple test on API endpoint
- Knows the workflow of how to work with GitLab
such as how to raise issue, do the merge request, comment, resolve the conflict, ci pipeline
Impact
- Delivers assigned tasks, working with a more senior team member, and able to take feedback to improve work
Influence
- Improves documentation that is incorrect
Communication
- Provides regular status updates to colleagues
- Points out syntactical improvements in code reviews
- Writes basic merge request with tagging to the issue, mention people, and interact code review
- Seeks guidance from others, rather than answers
Level 2
Mastery
- Writes the code with accept best practices
- Uses appropriate algorithms and data structures to solve problems
- Writes automated unit and acceptance tests
- Implements simple api handler
- Designs simple database tables and implements database migration
- Understands build and deployment to evironments
Example: CI pipeline stage and job
- Handles errors from api handler
- Fixes bugs involving a number of services and can debug issues
Impact
- Delivers assigned tasks that meet expected criteria
- Works for the team, focuses on tasks that contribute to team goals
- Tries to solve problem first, before seeking help
- Manages the time and priority well, and be one time to meeting
- Helps the team, does what needs doing
- Decomposes the big issue into small ones
Influence
- Proactively raises issues they spot in retrospectives
Communication
- Proactively communicates to their team what they are working on, why, how it's going and what help they need
- Accepts feedback graciously
- Gives feedback to peers when asked
- Provides helpful and actionable feedback in code reviews in an empathetic manner
- Writes good merge request description give context, and information for making decision
Level 3
Mastery
- Writes beautiful code
- Uses appropriate design patterns
- Implements complex api hanlder
- Designs new schemas comprising multiple tables
- Co-ordinates complex deployments and database migrations
- Implements complex task involving to multiple services
- Produces technical designs that include a consideration of scalability, high availabilty and security
- Debugs the issue
Impact
- Delivers large well-defined tasks and solves small scope not-well-defined problems
- Contributes to writing proposals (you might work with others)
- Breaks down large problems into smaller iterative steps across multiple merge requests
Influence
- Provides valuable input to proposals from their team
- Proactively improves modules, services that do not make sense
- Contributes to scaling engineering hiring (e.g. leads calls, does onsite interviews)
- Builds simple tools or iterates existing tools for the benefit of other members
Communication
- Transparent about mistakes they've made, early
- Proactively gives timely actionable feedback to peers
- Proactively seeks feedback from the people around you
- Considers the opinions of others before defending yours
Leadership
- Onboards / mentors new member
- Finds learning opportunities for others when reviewing their code and follows it up
Level 4
Mastery
- Makes contributions to library code or core services
- Leads the refactoring of complex problem
- Debugs complex production issues at speed
- Identifies and fixes security vulnerabilities
- Identifies and fixes performance bottlenecks in individual services
- Explains all aspects of the platform to new engineers
- Implements services or libraries that require a deep level of domain knowledge
Impact
- Solves ambiguous problems
- Leads writing small/medium scope proposals
- Makes pragmatic choices about taking on tech debt
- Considers multiple different solutions for solving a problem
- Breaks down projects into smaller iterative steps that each deliver value
Influence
- Positively influences other engineers within the company
- Maintains documentation on things they know the most, makes it easy for future engineers to interact with systems/code
- Clears blockers for junior team members, provides context/guidance, or knows how to escalate
- Drives changes to engineering practices with well-reasoned arguments and a "strong opinion, weakly held" mentality
- Shapes the direction of systems designs with less experienced engineers
Communication
- Proactively gives feedback "upwards" and to people they interact with who are not in their team
- Transparent in making design and technical decisions
- Shares technical context and direction for less experienced engineers
- Gives direct and constructive feedback to other engineers
Leadership
- Contributes to maintaining company culture in their team, helping new joiners
- Gets buy-in on technical decision-making and proposed designs
- Proactively involves other relevant engineers
- Sought out for code reviews
- Helps the growth of engineers around them through coaching and mentoring
- Makes improvements to modules/libraries/services and goes out of their way to help others learn from it
Level 5
Mastery
- Makes major contributions to library code or core services
- Contributes to external technologies or libraries that we depend on
- Produces clear technical designs for complex problem
- Develops clear technical solutions from ambiguous requirements
- Implements security improvements that impact multiple services
- Implements performance improvements that impact multiple services
- Serves as a technical authority on a technology or an area of the codebase
Impact
- Solves the 'hard problem'
- Solves larger ambiguous problems
- Leads incident resolutions
- Leads writing large scope proposals
- Breaks down large long-lasting projects into sensible discrete chunks that compound to achieve a large goal
- Helps prioritise and balance short-term and long-term investments, focusing on high impact, high value work
Influence
- Represents company at conferences/events
- Given as reason for other engineers to join the company
- Proactively shares knowledge internally
Communication
- Helps other people develop themselves and regularly gives insightful, useful feedback to those around them.
Leadership
- Instils engineering principles across the team
- Works with relevant managers to help other engineers perform and grow
- Fosters effective collaboration in multi-disciplinary teams
- Delegates technical decisions with low risk and high reversibility
- Owns technical decisions with high risk and low reversibility
- Contributes to maintaining company culture in the wider company
Level 6
Mastery
- Makes major contributions to technologies and libraries that we depend on
- Takes improvements to the stability, performance or security of the entire platform
- Serves as a technical authority in the wider engineering community
Impact
- Accountable for delivery of large, mission critical engineering projects
- Originates or finishes large, horizontal engineering efforts
Influence
- Attracts other very senior hires
- Makes engineers around them to get better and have a bigger impact, faster
Communication & Feedback
- Transparent about feedback they have received and what they are going to do differently
Leadership
- Helps groups of other teams work together more effectively
- Starts things that they cannot finish by themselves