sveska

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.