Engineering - Contributor¶
Dexterity | Strength | Wisdom | Charisma | |
---|---|---|---|---|
Engineer I(<1 - 2) | Broad knowledge of core CS concepts. Focus on growing as an engineer, learning existing tools, resources and processes |
Develops their productivity skills by learning source control, editors, the build system, and other tools as well as testing best practices Capable of taking well-defined sub-tasks and completing these tasks |
Developing knowledge of a single component of our architecture Can diagnose and escalate first-tier issues |
Effective in communicating status to the team Exhibits DoubleGDP's core values, focuses on understanding and living these values Accepts feedback graciously and learns from everything they do |
Engineer II(2 - 6+) | Writes correct and clean code with guidance; consistently follows stated best practices Participates in technical design of features with guidance Rarely makes the same mistake twice, begins to focus on attaining expertise in one or more areas (eg, Ruby / Rails / Javascript / React / Angular / Java / C / iOS / Android etc., performance -best practices, efficient use of data stores, messaging, etc) Learns quickly and makes steady progress without the need for constant significant feedback from more senior engineers |
Makes steady progress on tasks; knows when to ask for help in order to get themselves unblocked Able to own small-to-medium features from technical design through completion; Capable of prioritizing tasks; avoids getting caught up in unimportant details and endless "bike shedding" |
Self-sufficient in at least one large area of the codebase (multiple services, all front-end code related to a main funnel flow) with a high-level understanding of other components Capable of providing on-call support for their area including systems that they are not familiar with |
Gives timely, helpful feedback to peers and managers Communicates assumptions and gets clarification on tasks up front to minimize the need for rework Solicits feedback from others and is eager to find ways to improve Understands how their work fits in to the larger project and identifies problems with requirements |
Senior Engineer(5 - 8+) | Understands and makes well-reasoned design decisions and tradeoffs in their area; able to work in other areas of the codebase with guidance Doesn't flail while debugging Demonstrates knowledge of industry trends, our infrastructure and our core systems (Heroku, Google Cloud, SideKiq, AWS) Go-to expert in one area of the codebase; understands the broad architecture of the entire system |
Persistent in the face of roadblocks; dispatches them efficiently, pulling in others as necessary. Requires minimal direction/oversight Scopes and stages work into well-defined milestones to avoid a monolithic deliverable Regularly delivers software on-time and is constantly working to make accurate estimates and deliver on those estimates. Takes the initiative to fix issues before being assigned them. Seeks empirical evidence through proof of concepts, tests and external research Delivers complex products are well-baked and bug-free Avoids premature optimization Objectively evaluates tradeoffs between tools, considering implementation costs and complexity |
End-to-end responsibility on projects of increasing complexity; contributes to common code. Writes at test cases and advises on adjacent code/regression impact Takes initiative to identify and solve important problems, coordinating with others on cross-cutting technical issuesPartners with product and analytics and drive requirements that take into account all parties' needsPossesses empathy with the user of the software they are producing and uses that empathy to guide decision-makingIdentifies problems and risks of own work and others |
Communicates technical decisions through design docs, tech talks, and the wiki Mentors junior engineers via pairing, design review, and code review. Contributes frequently to Drinks and Demos Makes others better through code reviews, thorough documentation, technical guidance, and mentoring or serving as a Tech Lead on a project Communicates effectively cross functions; is able to work well with Product, Design, Analytics, etc, as necessary Proactively identifies problems with requirements (lack of clarity, inconsistencies, technical limitations) for their own work and adjacent work, and communicates these issues earto help course-correct |
Staff Engineer | Sought out for technical guidance; anticipates technical issues at the product level and makes architectural and design decisions to avoid them Owner of and expert on large sections of our codebase A record of creating sweeping improvements in stability, performance, and scalability across major business-critical systems Provides technical advice and weighs in on technical decisions that impact other teams or the company at large; Researches and proposes new technologies Has a excellent understanding of web technologies and various components of our architecture Can write frontend and backend automation without guidance. |
Recognized as a prolific contributor to core and side projects Consistently able to reduce the complexity of projects, services, and processes in order to get more done with less work |
Shapes Understands broad architecture; ships multiple large services, complex libraries or major pieces of infrastructure Has made an obvious positive impact on the entire company's technical trajectory Sets direction at the project/service level and consistently influences decision-makingIdenitifies and proactively tackles technical debt before it grows into debt that requires significant up-front work to resolve |
Multiplies the effectiveness of others by facilitating cross-team work Listens and guides debates to help reach a consensus; once a decision is made, clearly communicates and backs that decision Sets short to medium-term strategic technical direction; able to look ahead 6-12 months and identify the areas of greatest need and create plans to improve them Sits on the Architectural Review Board, provides feedback on projects outside of their core area Understands the tradeoffs between technical, analytical and product needs and leads to solutions that take all of these needs into account Identifies and proposes strategies around technical problems affecting their team; communicates standards and gets buy-in on solutions |
Senior Staff Engineer | Anticipates broad technical change and ensures DoubleGDP is always ahead of the curve Able to recognize and make trade-offs with respect to the whole system Understands deeply the entire architecure for a major part of our business and is able to articulate clearly the scaling and reliability limits of that area |
Consistently delivers large systems involving one or more teams' contribution on time at a high level of quality Implements provisioning tools Adheres to change management process Quickly breaks down complex problems into potention solutions, knowns, and unknowns, in order to get to solid resolutions faster Capable of debugging the hairiest problems that the team encounters |
Plays a key role in developing multi-year technology strategy for complete and critical areas of the business that encompass multiple systems and teams DoubleGDP Creates architecture that enables many potential futures without knowing exactly what the future will be |
Primarily acts as a multiplier by building systems, authoring tools, or introducing policies or patterns that raise the level of productivity of the entire org Communicates the awesomeness of the DoubleGDP tech community externally via talks and blog posts. Identifies areas that DoubleGDP can share effectively with the outside world and guides the creation of content and communication around these areas Leads the conversations internally about the direction of major areas of the technology, drives wide-team consensus to the adoption of this direction, and uses this direction to inspire engineers Seen as a role model and mentor to every technical member of the team |
Principle Engineer/Chief Architect | Setting Technical Direction | Puts the S in GSD | DoubleGDP | Communicates multi-year technical strategy and leads the team in identifying futher strategic areas for development |
Key | Dexterity Technical skill |
Strength Get stuff done: grit, follow-through, shipping code |
Wisdom Impact |
Charisma Communication & Leadership |