Introduction
This framework suites as a software engineer’s guideline for his/her career in Boataround company.
It helps to set the goals and clarify the level of knowledge for the developer and managers and set the right expectations for the given position.
Career Ladders
The framework has 2 different ladders:
- Developer: role also known as programmer or software engineer, requires a deep level of technical expertise
- Tech Lead: role also known as dev lead, is the owner of the system and requires a unique balance between hands-on development, architecture knowledge and production support
Level | Seniority | Developer | Tech Lead |
---|---|---|---|
1 | Junior | Junior Developer | |
2 | Junior | Junior Developer II | |
3 | Medior | Medior Developer | |
4 | Medior | Medior Developer II | Medior Tech Lead |
5 | Senior | Senior Developer | Senior Tech Lead |
6 | Senior | Senior Developer II | Senior Tech Lead II |
(click on position name for more details)
Axes
The chart shown above has the following 5 axes:
- Technology: knowledge of the tech stack and tools
- System: level of ownership of the system(s)
- People: relationship with the team(s)
- Process: level of engagement with the development process
- Influence: scope of influence of the position
The influence axis can be seen as a different dimension since it is orthogonal and applies to all the other axes.
Each axis has 5 different levels of performance. It is important to highlight that every level includes the previous one(s). For example, someone that evangelizes technology, specializes and adopts it as well.
Keep reading to better understand each level.
Levels
Technology
- Adopts: actively learns and adopts the technology and tools defined by the team
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Masters: has very deep knowledge about the whole technology stack of the system
- Creates: designs and creates new technologies that are widely used either by internal or external teams
System
- Enhances: successfully pushes new features and bug fixes to improve and extend the system
- Designs: designs and implements medium to large size features while reducing the system’s tech debt
- Owns: owns the production operation and monitoring of the system
- Evolves: evolves the architecture to support future requirements
- Leads: leads the technical excellence of the system and creates plans to mitigate outages
People
- Learns: quickly learns from others and consistently steps up when it is required
- Supports: proactively supports other team members and helps them to be successful
- Mentors: mentors others to accelerate their career-growth and encourages them to participate
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Manages: manages the team members’ career, expectations, performance and level of happiness
Process
- Follows: follows the team processes, delivering a consistent flow of features to production
- Enforces: enforces the team processes, making sure everybody understands the benefits and tradeoffs
- Challenges: challenges the team processes, looking for ways to improve them
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Defines: defines the right processes for the team’s maturity level, balancing agility and discipline
Influence
- Subsystem: makes an impact on one or more subsystems
- Team: makes an impact on the whole team, not just on specific parts of it
- Multiple Teams: makes an impact not only his/her team but also on other teams
- Company: makes an impact on the whole tech organization
- Community: makes an impact on the tech community