- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Making the Leap to Tech Lead (Article, Cromwell)
- Making the Leap to Tech Lead (Video, Cromwell)
- Build Right: Sustainable Software