Skip to content

Latest commit

 

History

History
139 lines (70 loc) · 6.65 KB

engineering_manager.md

File metadata and controls

139 lines (70 loc) · 6.65 KB

Prerequisites

The Engineering Manager is expected to meet all the expectations laid out for Senior Software Developer. Additionally, the Engineering Manager assumes responsibility for the professional well-being of one or more direct reports. The Engineering Manager is expected to balance administrative and management responsibilities while still being an active creator of software. The Engineering Manager is expected to be able to collaborate effectively with stakeholders across one or more TTM organizations and contribute strategically to the evolution of product and TTM as a whole. As an ambassador for Engineering to the rest of TTM, the Engineering Manager expected to be comfortable building and strengthening relationships across organizations and engaging in active, meaningful dialog with executive and non-executive stakeholders alike. Additional responsibilities and expectations are outlined below.

Technical Management / Team Expectations

Planning / Preparation / Context

  • Understands and evangelizes high-level business priorities and roadmap.

  • Is able to articulate how current initiatives and work fit into higher-level business priorities.

  • Is able to articulate team workload and high-level task status.

    • What have team members completed?

    • What are team members working on now?

    • What is planned for team members for the future?

    • How long are these tasks likely to take?

    • How does this impact others?

    • How does this impact short-term plans or long-term roadmaps?

  • Ensures no work is started by team members without adequate articulation of scope, context and high-level goals; where necessary, partners with colleagues to provide.

  • Ensures that work is decomposed into a series of discrete, shippable efforts that allow stakeholders to make prioritization tradeoffs.

  • Ensures discussion around the user of feature flags to isolate functionality.

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

  • Ensures authorship of "slice plans" used to communicate work decomposition and progress with stakeholders.

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

  • Partners with with colleagues to allocate team members to initiatives.

  • Advises on short and long-term roadmap opportunities and efforts.

Producing

  • Ensures team members consistently adhere to team-agreed best practices surrounding code reviews, pull requests and quality assurance efforts.

  • Monitors team members and initiatives for "pairing fatigue" and suggests alternative team structures where appropriate.

  • Actively monitors initiatives for technical risks and roadblocks and intervenes where necessary to avoid and resolve.

  • Ensures team members are communicative about status (what they’re working on, who they’re working with, how long it’s taking), especially when working remotely.

Reviewing

  • Ensures code-level feedback is delivered professionally and in a timely manner.

Shipping

  • Ensures risks, dependencies and deployment steps of code that has been worked are articulated and understood.

  • Ensures creation of artifacts necessary to facilitate publishing company-wide release notes.

  • Provides oversight and direction for production deployments

  • Ensures the shipment impact of work is discussed and considered (weighing development effort of deployment against user impact of release).

Professionalism

  • Ensures team is routinely on time for meetings, particularly the morning stand-up.

  • Ensures team absences are communicated and provides coverage when team members are unable to attend meetings.

  • When facilitating meetings, ensures the meeting agenda is clear, time is well spent and action items or next steps are clearly articulated.

  • Ensures team engages in respectful, inclusive communication with peers.

  • Ensures team is respectful of others’ strengths / weaknesses.

  • Ensures team members are aware of their own strengths / weaknesses and know when to stretch and / or when to ask for help

Continuous Self Improvement

Self

  • Proactively seeks out opportunities to learn new skills or deepen existing ones as a way to grow the individual team, Engineering or TTM as a whole.

  • Maintains short, medium, long-term professional development goals (which may change over time) and tracks measurable progress against goals.

Team

  • Identifies and proposes process improvements within the the individual team, Engineering or TTM as a whole.

  • Shares knowledge about areas of subject-matter expertise via pairing, lunch and learns, articles in Meta, social media, conference talks.

  • Maintains an active presence in the open source (OSS) and development community at large, including meetup organizing, talks at meetups or conferences, maintaining or contributing to OSS projects, social media.

  • Evangelizes team technical direction and culture in local, national, and virtual communities of interest (maintaining a TTM page at http://stackshare.io/, contributing to Hacker News or forums, blog posts, speaking engagements, etc.)

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

People Management

  • Maintains professional development plans for team members.

  • Meets with team members regularly on a one-to-one basis.

  • Provides feedback to team members on values and expectations at least once a quarter, outside of company performance evaluations.

  • Monitors team members for opportunities to improve or acquire new skills and partners with colleagues to provide opportunities.

  • Serves as an escalation path for decision-making.

  • Intervenes when necessary to focus, guide, (re)direct or level-set team members.

  • Monitors team members’ PTO and work-from-home time and sets / corrects expectations where necessary (i.e. impact on pair, initiatives or projects, others who may need to meet with me, etc.).

  • Is responsible for all aspects of human resource management for the team, in accordance with stated company policies

    • Recruiting

    • Hiring

    • Performance management

    • Corrective action

    • Separation

    • Time off / PTO approval

    • Expense approval

  • Is responsible for developing and maintaining the team budget, complying with company policies for accruing, forecasting and reconciliation where necessary.

  • Ensures team members have provided opportunity to showcase work at the company demo.

  • Coaches team members on well-being and satisfaction, including facilitating new career opportunities where appropriate.

  • Ensures team members achieve their community involvement goals: giving conference talks, contributing to open source, authoring blog posts, etc.