5 - Senior Engineer
As a Senior Engineer, you’re responsible for technical leadership in one or more Engineering domains on an engineering or product team. You’re responsible for maintaining any plan, documentation and backlog for one or more technical domains, working with other Engineers to burn down any backlog.
In this role, you’re at a level where you’re seen as extremely reliable and a master of at least one domain. You’re capable of owning technical design for projects of moderate complexity, and understand the tradeoffs in creating good software. You hold a depth of knowledge in systems that enable you to debug them effectively without issues. In addition to writing consistently high-quality code, you're aware of industry best practices and trends and have acquired at least one major skill outside of core coding such as monitoring, documentation, integration testing, visual design, performance optimization.
As a Senior Engineer, you get a lot done. You're responsible for complex tasks and complete them despite roadblocks, grabbing others for help or insight as necessary. You require very little oversight beyond high-level direction; you can take a complex user story, break it down into sub-tasks, and complete their sub-tasks with relative ease. You show initiative beyond knocking tasks off a list; you're able to identify and suggest areas of future work for yourself or your team. You seek evidence to support your ideas and start to build cases for these ideas. You deliver products with confidence. You’ve mastered the art of YAGNI and you almost never repeat yourself.
You have end-to-end responsibility for projects of increasing complexity that encompass more than your own development. You contribute to the common code bases and standards for your team. You understand the business that their code supports and use this knowledge to influence your task prioritization. You assist in identifying and validating test cases and can identify regression risks in their features. In general, you can identify risks in code, features, and design, and communicate these to the appropriate parties.
You and Your Team
You’re known outside of your core team as a technology leader. You mentor others via frequent code reviews and pairing, as well as frequently presenting at team meetings. You work effectively with non-tech members of the Glossier community. You're able to identify problems with requirements and help your team course-correct around these issues.
Example skills and behaviors
- Scopes and executes medium to large projects involving multiple engineers
- Debugs complex problems across the stack
- Writes consistently high-quality code
- Guides the development of common tools and libraries
- Makes pragmatic design decisions; identifies risks, trade-offs, and alternative solutions to be considered
- Delivered work consistently meets the bar for quality – validated in production with edge cases considered
- Ships their work on time
- Mindful of including others so that they can jointly participate in decision-making
- Collaborates effectively with peers in product management, design/UX, and data
- Builds relationships outside their direct team, including with business stakeholders
- Sets an example for giving effective feedback
- Builds buy-in for technical decisions
- Represents Glossier effectively in interviews with candidates
- Builds network outside Glossier, can identify and sell talent on working at Glossier
- Demonstrates inclusive behavior
- Mentors other engineers across the team