The opportunity
The Product Infrastructure team works on creating abstractions and data models that solve enduring problems across the stack. We solve problems that span multiple product surfaces and typically stretch across both front-end and backend and unblock new product avenues that were previously challenging to create.
What you'll do
Shape and build the core frameworks that enable reading and writing data in: Notion, integrating feedback from internal customers along the way, using whatever tools are required for the job, such as AWS, Postgres, NodeJS, TypeScript, React on the frontend.
Design new systems and abstractions that improve developer productivity,: reliability, and performance by handling entire classes of problems up-front for product engineers.
Solve hard technical challenges such as designing abstractions for efficient: traversal of the user content graph, building a system to sync user content for offline use, or scaling our permission model to serve large customers with complex content.
Thoughtful problem-solving: For you, problem-solving starts with a clear and accurate understanding of the context. You can decompose tricky problems and work towards a clean solution.
Pragmatic and business-oriented: You care about business impact and prioritize projects accordingly. You're not just going after cool stuff—you understand the balance between craft, speed, and the bottom line.
Strive for simplicity: You think critically about the implications of what you're building, and aim for the most simple and well-crafted design. You understand the consequence of complexity, and are motivated to eliminate them.
What they're looking for
- Not ideological about technology: To you, technologies and programming languages are about tradeoffs. You may be opinionated, but you're not ideological and can learn new technologies as you go.
- Empathetic communication: You communicate nuanced ideas clearly, whether you're explaining technical decisions in writing or brainstorming in real time. In disagreements, you engage thoughtfully with other perspectives and compromise when needed.
- Team player: For you, work isn't a solo endeavor. You enjoy collaborating: cross-functionally to accomplish shared goals, and you care about learning, growing, and helping others to do the same.
- You have leveraged the features of typed languages (e.g. TypeScript, Flow) to: drive code migrations, or have implemented your own data modeling paradigms (e.g. writing your own ORM, sync engine, or query language).