As a Senior Engineer, you’re responsible for technical leadership in one or more Engineering domains on an engineering or product team. You have demonstrated experience building and maintaining plans, documentation, and backlogs for one or more technical domains.
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 medium 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
- Wide-ranging functional knowledge and experience, applying skills and knowledge to approach new problems in creative ways
- Debugs complex problems across the stack
- 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 network outside Glossier, can identify and sell talent on working at Glossier
- Represents Glossier effectively in interviews with candidates
- Builds buy-in for technical decisions
Execution / Delivering Goals
- Interprets company strategy and objectives to resolve complex issues in creative and effective ways
- Works on problems and projects where analysis of situations or data requires an in-depth evaluation of variable factors then exercises independent judgement in selecting the appropriate solution set
- Makes pragmatic design decisions; identifies risks, trade-offs, and alternative solutions to be considered
- Delivered work consistently meets our high bar for quality
Discretion / Supervision
- Determines methods and procedures on new assignments
- Scopes and executes medium to large projects involving multiple engineers
- Mentors other engineers across the team
- May have some direct reports; acts in an introductory supervision role