Skip to content

Latest commit

 

History

History
90 lines (45 loc) · 3.33 KB

senior_software_engineer.md

File metadata and controls

90 lines (45 loc) · 3.33 KB

Prerequisites

The Senior Software Developer is expected to meet all the expectations laid out for Software Developer. Additionally, the Senior Software Developer has shown the ability to "think bigger" about how the Engineering team fits within TTM as a whole. With this in mind, the Senior Developer should not only be able to continue to create software and perform code reviews, but also be expected to take a leadership role in ensuring initiatives are successful from their inception to their delivery. In addition, the Senior Developer actively mentors other developers and works closely with Product Management to communicate how newly developed features will impact TTM’s internal stakeholders and its users. Additional responsibilities and expectations are outlined below.

Technical Skills / Team Expectations

Planning / Preparation / Context

  • Capable of independently owning / managing initiatives from technical design to launch with minimal oversight required.

  • Partners with management to pair team members with initiatives.

  • Decomposes work into a series of discrete, shippable efforts.

  • Ensures authorship of any artifacts needed to communicate the plan to the team and to stakeholders.

  • Identifies dependencies and interconnectivity between initiatives to mitigate risk in current and upcoming development efforts.

  • When given a task with unclear requirements:

    • Knows how to ask for clarification.

    • Ensures that all assumptions are vetted before work starts to reduce the need for re-work.

Producing

  • Able to see the "big picture" for an initiative and communicate it to less experienced developers.

  • Spearheads and lightly documents the architectural design for a new initiative.

  • Ensures initiative tasks are completed with very high quality.

  • Requires minimal oversight from Initiative Lead or Manager.

Reviewing

  • Is able to identify risks and request mitigation from the team as appropriate:

    • Priority CR/QA.

    • Request help from other developers.

    • Adjust initiative delivery expectations.

  • As incremental changes are introduced, periodically ensures that features continue to work well end-to-end.

Shipping

  • Ensures smooth rollout of newly deployed features and code:

    • Zero-downtime migrations.

    • Feature flags.

    • Dependencies between different services.

  • Monitors operational metrics (Bugsnag, New Relic, etc.) and identifies opportunities for improvement.

Professionalism

  • Is capable of delivering actionable feedback to peers and managers.

  • Pairs effectively:

    • Sets appropriate pace (balances output with education).

    • Toggles driver / navigator roles appropriately.

    • Identifies opportunities for teaching / deepening of knowledge.

Continuous Improvement

Self

  • Explores emerging technologies and introduces them to the team (when appropriate).

  • Visits classrooms or customer training to observe TTM being used in the field.

Team

  • Owns an aspect of the team's process.

  • Collaborates with other teams within TTM to improve the product and learn about our market and customer base.

  • Empathizes with our users and advocates for new features or application changes when necessary.

  • Identifies areas of technical debt and helps craft a plan to mitigate it.

  • Proposes changes to team values and expectations or team mission as team evolves.