Career track senior
Career track senior
Resourcing
- https://www.industrialempathy.com/posts/design-docs-at-google/
- https://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/
Responsibilities:
-
Expert in our processes, while also helping to define and improve them.
-
Writes meaningful code reviews.
-
Makes well-reasoned design decisions, identifying potential issues, trade-offs, risks, and appropriate levels of abstraction.
-
Proficient in all relevant technical skills, and able to move quickly due to a deep understanding of large portions of the codebase (cross teams).
-
Maintains awareness of industry trends and tools.
-
Debugs expertly within their primary focus area.
-
Writes tech specs and identifies risks before starting major projects.
-
Sets technical standards for the team.
-
Goes out of their way to reduce complexity within the team’s systems.
-
Become a Chief of at least one of the team’s primary systems.
-
As a Chief of a system, defines and drives the roadmap / vision for that system.
-
Produces high-quality BetterNexts from production incidents (or interesting wins).
-
Takes Security and Cost (cloud resources & time investment) into considerations when designing a technical solution.
Examples:
-
During a code-review, able to supplement comments with links to relevant resources or other examples, and thus instructing the code committer.
-
Offers a quarterly roadmap of the system of which they are a Chief.
-
Can reason about “buy vs. build” when promoting technical initiatives (i.e. should we build a solution ourselves or buy an existing one).
Anti-Patterns:
-
Doesn’t delegate. Always says “yes” and suffers from burn-out or continuous loss of focus.
-
Lets details slip through the cracks.
-
Over-emphasises scaling or high availability far beyond the requirements (project/business needs).
-
Prefers local solutions to more global problems, especially if a problem is an obvious issue to multiple teams.
Project leadership
Responsibilities:
-
Able to take ownership to lead and deliver large projects (>4w of work) that spans multiple systems, with support from peers.
-
When acting as the Project Lead on a project, communicates progress to stakeholders and ensures alignment.
-
Persistent in the face of roadblocks; dispatches them efficiently, pulling in others as necessary.
-
Scopes and stages work into well-defined milestones to avoid a monolithic deliverable.
-
Accountable end-to-end, through planning, development, deploy, monitoring and maintenance.
-
Sets realistic deadlines, estimating methodically based on iterative learning.
-
Able to question and push back on tasks/requirements.
-
Able to reduce complexity and prioritize in alignment with company goals.
-
Handles well open-ended problems and ambiguity.
-
Suggests steps to mitigate impact of delays in projects.
-
Requires minimal direction / oversight.
-
Ensures projects don’t lose momentum.
-
Delivers design reviews for complex projects.
-
Seeks empirical validation through PoCs, tests and research.
Examples:
-
Able to separate requirements/pains from the solution, and, if needed, agree on the former before the latter. Avoids coming up with a solution that many people will think solves the wrong requirement (or are confused due to not knowing what the requirements are).
-
Leads a Design Review of a fairly large project (more than 6 weeks of engineering time).
-
Mitigates risks of a complex DR which requires a new technology or uses a new capability, by doing proper research as part of the DR process: e.g. running a small-scale PoC to validate a risk/concern that might affect the DR.
-
Gets buy-in from other lead developers before presenting a DR to a wider audience.
Anti-Patterns:
-
Rushes to work on the solution before gathering and understanding business/analytical/technical needs.
-
Doesn’t clearly state the risks in the project and how they will be mitigated.
-
Unable to lead other teammates in the project. Has problems with e.g. delegation, tasks assignment, solving roadblocks, communications around progress, etc.
-
Doesn’t push back (and provides alternatives and justifications) on requirements that might add risk, add a lot of time to the project or make it extremely hard to maintain.
Busines Involment
Responsibilities:
-
Understands well the pains of other teams around them (first circle / immediate internal customers)
-
Proactively seeks to talk with internal customers to understand their pains and how the team can serve them better
-
Can clearly document and share their insights and suggestions from talking with other teams, so the team can learn from it and initiate ideas around it - some will be solved within the team, some will be given as feedback to other teams.
-
Takes an interest in business performance: understand our ARR, how margins affect the business (covered vs. uncovered), knows the big logos we sold to, etc.
-
Understands the roles of all the departments , with focus on the sales pipeline, with good understanding their responsibilities, where they influence as part of the sales cycle, etc.
-
Takes costs, security and other business impacting aspects into consideration, e.g. when suggesting new initiatives, as part of DRs, etc.
Examples:
-
Can draw on a whiteboard the systems involved in precision mechanisms (e.g. VT, AxTx, Attributes, Velocity, Models, Decision Manager, etc.)
-
Can explain (high level) the full cycle of selling to a customer: marketing (generating a lead), pre-sale, sale, onboarding (CS/Ops) and serving the customer for the long run.
-
Shares a document with the team, and other relevant teams, around information they got from their internal customers. With well-crafted summary of the biggest pains (with priorities), relevant suggestions (with high level cost/estimation and gain from that), and basic priorities as they see fit (with business justification).
Anti-Patterns:
-
Doesn’t spend enough time to document proper pains & suggestions, keeping it all in their heads and relying only on their memory.
-
Spends too much of their time focusing on the team and the team’s needs, instead of trying to increase their impact circle with other teams around them.