Is able to design basic functions, avoiding duplication across codebases and interface-breaking changes based on an understanding of the overall service architecture
Technical debt: You can usually recognize technical debt and can pay it down when advised.
Design: You are comfortable with the basics of code interface design, and are learning to be more intentional.
Reaction to feedback: You understand the feedback given and applies it consistently to your work.
Has a good understanding of, and designs functions that are aligned with, the overall service architecture
Technical debt: You consistently recognize technical debt and look for opportunities to negotiate and pay it down incrementally
Development: You consistently look for opportunities to learn from other projects and teams.
Design: You show a good intuition for code interface design.
Is able to consistently design code that is aligned with the overall service architecture.
Technical debt: You make plans with technical debt in mind, and how you will pay it down incrementally and consistently. You advise other team members on recognising and considering it
Design: You have deep architectural and design pattern experience. You consult with team members only on more difficult designs. You set up new projects to ensure architectural success by anticipating future use cases and making design decisions that minimize the cost of future changes
Code: You are able to utilize abstractions and code isolation effectively.
Regularly works across teams to build a culture for iterative, autonomous development and future scaling.
Technical debt: You understand technical debt as a long-term budgeting and risk management tool. You lead on when to incur more and when to pay it down.
Development: You work with the architecture team to define cross- team architectural approaches. You sometimes employ prototyping for exploration of designs.
Design: You help several teams make design decisions that minimize the cost of future changes.
Works across the organization to build a culture for iterative, autonomous development and future scaling.
Strategy: You fuse organizational strategy with technical architecture, including cross team design and code sharing. You use prototyping as a primary tool for rigorous design exploration
Experience: You introduce simpler and time-tested approaches to technical problems across multiple teams.
Design: You lead teams in the organization in anticipation of future use cases and helps them make design decisions that minimize the cost of future changes.