Skip to content

Latest commit

 

History

History
89 lines (52 loc) · 5.5 KB

tech-lead-role.md

File metadata and controls

89 lines (52 loc) · 5.5 KB

Sparkbox Tech Lead Role Description

Overview

  • At Sparkbox, the tech lead is the right hand to the Project Manager.
  • The success of a tech lead is measured by the success of the team and the project.
  • To be successful, a tech lead needs to be able to step out of the immediate coding needs of a project to understand, prepare, and regularly articulate the vision of the project.
  • Tech lead models how we work together.
  • A tech lead empowers and unlocks the team through communication, leadership, technical skills, and impact.

Competencies

Communication & Leadership

  • Listens effectively, recognizing and clarifying assumptions as needed.
  • Acts as a mediator who facilitates discussion, often guiding the team through multiple options and varied opinions to thoughtful solutions.
  • Makes clear and convincing presentations during team and client discussions.
  • Articulates thoughts using asynchronous, distributable mediums such as long-form writing and diagrams.
  • Creates clear and thorough cards and pull requests that aid in development and testing, accounting for the target audience’s experience and context.
  • Advocates for the architecture and the business, by clearly communicating the state of the architecture and the impact of decisions.
  • Mentors and teaches developers. Clearly explains the reasoning for something when reviewing code or explaining conventions.

Technical Skill

  • Expert in the shared tools of Sparkbox, for example, the terminal, Git, etc.
  • Knows the value of a robust build and delivery pipeline; able to create a pipeline using the tools available to a given client project.
  • Recognizes, can describe, and can create a valuable test suite for a given client project.
  • Capable of debugging the hairiest problems that the team encounters both in development and production. To this end, a tech lead knows how to deliver a system that surfaces system health and aids in diagnosing problems in development and production.
  • Go-to expert in one area of the codebase of a given client project; understands the broad architecture and how the parts relate to the whole.
  • Sought out for and provides thoughtful technical advice and weighs in on technical decisions that impact a given client project, other teams, or the client at large.
  • Researches and proposes new technologies, techniques, and tools that may be adopted by clients and Sparkbox.
  • Anticipates technical issues at the product level and makes architectural and design decisions to avoid them.
  • Aware of, recognizes, and capable of invoking common software design patterns to create well-factored software.

Managing Self

  • Continually learns and pursues self-development; evaluating one’s own strengths and weaknesses, especially during reviews, goal setting, and 1-on-1s.
  • Deals effectively with pressure, remaining empathetic, positive, transparent, and persistent. Recovers quickly from setbacks.
  • Persistent in the face of roadblocks; dispatches them efficiently, pulling in others as necessary. Requires minimal direction/oversight.
  • Establishes and maintains healthy relationships with clients and others. Receives, acknowledges, and processes negative or emotion-driven situations without reacting in kind.

Managing Projects

  • Stays "ahead of the project" from a planning perspective by maintaining and communicating a shared technical vision.
  • Works with the project manager throughout the project to understand the budget, to guide decisions, and plan reasonable iterations.
  • Plans and decomposes work to avoid single, large releases to encourage regular transparency of the project progress and reduce overall risk.
  • Regularly delivers software on-time and constantly works to communicate ever more refined estimates, especially as estimates grow.
  • Quickly breaks down complex problems into potential solutions, knowns, and unknowns, in order to get to solid resolutions.
  • Talks to the customer to understand their needs, goals, and constraints and aligns these with the technical vision of the project.
  • Consistently able to reduce the complexity of projects, services, and processes in order to get more done with less work.
  • Understands the value of relative sizing, how to lead a team in forming an economy, and how to forecast using these types of estimates.
  • Enables and encourages transparency, planning, and decision making with clients and the team through clear, available, and consistent communication.

Impact

  • Sustains and evolves the architecture by choosing the right cards to care deeply about and contribute code.
  • Takes initiative to identify and solve important problems, coordinating with others on cross-cutting technical issues.
  • Partners with the client, PM, and design lead to drive requirements that take into account all parties' needs.
  • Identifies problems/risks and works to mitigate their impact.
  • Makes others better through code reviews, thorough documentation, technical guidance, and mentoring.

Resources