Frontend Engineer
Level 1
Mastery
- Writes basic VueJs components
- Writes simple tests
- Understands ESLint
- Understands project structure
- Masters basics of git
Example: Checkout, Push, Pull, Branch, Diff, Merge, Stash, Rebase, etc.
- Understands and properly uses git workflow
how to branches off develop branch, how to creates merge request for a new feature
- Write basic i18n translations
Impact
- Delivers simple tasks
- Works with senior developer/mentor
- Makes improvements based on the feedback
Communication
- Provides regular status updates to their mentor/buddy
- Points out syntactical improvements in code reviews
- Writes descriptive merge requests, mentions colleagues and issues
- Seeks guidance from other engineers, rather than answers
Leadership
- Not required
Level 2
Mastery
- Makes use of common Javascript functions/objects
- Makes appropriate use of Vuex store
- Has basic understanding of UI template for the project
- Integrates with API and is familiar with API documentation
- Understands Vue's component communication patterns
- Able to build small and medium sized features
- Able to prioritize the workload
- Understands Vue's reactivity
Impact
- Delivers assigned tasks that meet expected criteria
- Works for the team, focuses on tasks that contribute to team goals
- Tries to find a solution before asking for help
- Proactively makes code improvements (and can reason about the changes)
- Proactively learns new things
- Breaks down small/medium problems into smaller steps
Influence
- Proactively raises issues they spot in retrospectives
- Helps his peers to get better
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
Level 3
Mastery
- Knows how to debug the application and improve performance
- Writes concise code
- Implements non-trivial components
- Contributes/extends to used components/libraries
- Explores ways to test various parts of the application
Impact
- Delivers large well-defined tasks and solves small scope not-well-defined problems
- Contributes to making implementation proposal
- Decomposes large problems into small manageable ones for multiple merge request
Influence
- Provides valuable input to proposals from their team
- Proactively improves existing common functions, components
- Mentors/coaches more junior developers
- Build tools used to improve the development process
Communication
- Transparent about mistakes they've made, early
- Proactively gives timely actionable feedback to peers
- Proactively seeks feedback from the people
- Considers the opinions of others before defending
Leadership
- Able to on-board new developers
- Finds learning opportunities for others when reviewing their code and follows up on it
Level 4
Mastery
- Contributes to the used libraries code and core parts applications
- Contributes improving building processes
- Makes contribution to development tools (if needed)
- Proposes solutions for optimizing applications
- Able to impove speed and scalability of the applications
- Builds testable/maintainable/flexible components
- Able to debug and fix complex problems
- Able to identify security weak spots
- Able to manage priorities effectively
Impact
- Solves ambiguous problems
- Takes lead in proposing solutions
- Identifies issues and proactively solves them
- Able to make choices based on clear matrix on multiple alternative solutions
- Able to rewrite big parts of the applications
- Knows his way around the applications he/she's working on
Influence
- Able to explain most parts of the applications to new devs
- Teaches others to write clean and maintainable code
- Documents useful knowledge for future reference
- Helps junior developers
- Takes and provides feedback on software engineering and process improvements
Communication
- Proactively gives feedback to colleagues and manager
- Transparent in making design and technical decisions
- Gives clear technical constraints to non-technical people
Leadership
- Proactively shapes company culture
- Helps interviewing and hiring new engineers
- Proactively proposes application design changes and drives them if needed
- Coaches and mentors more junior developers
Level 5
Mastery
- Makes major contributions to the core parts of the application
- Able to debug production bugs
- Able to improve app's speed
- Able to reduce size of the app
- Able to improve connection to the backend (able to write loosely coupled API services)
- Anticipates platform and project needs, technical debt and common issues intuitively
- Produces technical designs for large complex projects
- Demonstrates a deep level of knowledge in a specific area
- Serves as a technical authority on a technology or an area of the codebase
Impact
- Solves larger ambiguous problems
- Leads incident resolutions
Influence
- Represents company at conferences and events
- Proactively shares knowledge within internal teams and external communities
- Leads his peers and is the role model in achieving team goals
Communication & Feedback
- Helps others to develop themselves by giving insightful feedback
- Effectively communicates with others beyond technical matters
Leadership
- Helps others to be more productive and grow
- Fosters effective collaboration with other roles within development team
- Delegates effectively to relevant stakeholders
- Contributes in maintaining company's culture
- Bootstraps new teams
Level 6
Mastery
- Masters and contributes to the core projects and the dependent libaries
- Uses a risk-based approach and manages technical debt systematically to focus the team’s design and development efforts on the most important problems
- Works with business and technology stakeholder to translate difficult business problems into technical designs, thereby ensuring that the organisation derives maximum value from services
- Identifies architecturally significant functional and non-functional requirements, identifies conflicts among them, and defines possible trade-offs scenarios
- Articulates high-level technical goals, concerns, trade-offs, and decisions to the rest of the company effectively
- Facilitates technical decision making in complex and ambiguous situations
- Promotes architectural thinking and good engineering practices at scale
- Serves as a technical authority in the wider engineering community
- Identifies and explores opportunities for service and business improvement
- Makes improvements that affect important non-functional requirements that have an effect on the entire application
Impact
- Accountable for delivery of large, mission critical engineering projects
Influence
- Attracts other very senior hires
- Supports the team to get solve big impact issue faster
Communication & Feedback
- Transparent about feedback they have received and what they are going to do differently
Leadership
- Helps others to collaborate effectively
- Delegates to other and make use their time for high-impact issues