As a small team, we’re all generalists and constantly picking up new challenges. When it comes to code, we’re looking to work with experienced people who can pick a problem and solve it.
We use TypeScript and build scalable systems so we can continuously make progress on a solid foundation. We don’t expect you to have a background in everything we use, but we do expect strong JavaScript fundamentals and a background working with React, and ideally TypeScript.
What you’ll do
- Building new user-facing features with everything from database models to GraphQL resolvers and UI components
- Optimizing our data synchronization stack by applying better serialization protocols
- Adding real-time collaborative editing to our content editor
- Improving performance by profiling and tweaking virtualized list rendering
- Adding analytics, monitoring, and alerts to our service so that we can better respond to operational incidents
- Open-sourcing any non-trivial innovations that come out of our work on the product
- Redefining best-in-class software development processes so that we can build an opinionated product
Tech
- React frontend with Styled Components, utilizing hooks for the composability of functionality
- Proprietary data synchronization library built for speed and offline support. Delta-packets are transported using WebSockets
- MobX for binding the data model to the UI
- Prosemirror-based content editor
- Electron desktop application
- Public GraphQL API that has access to all of the user’s data
- Node, Postgres and Redis in the backend
- Hosted on Google Cloud with k8s
- GitHub, Slack, Notion
- Design system with React component library
Learn more about the technology behind our data syncing engine from a talk by our co-founder Tuomas.
We care deeply about design. For us, it’s both how it works and how it looks. At its core, Linear is a developer tool where speed, interactions, and small details matter. We are designing it to be highly functional, yet minimalistic and delightful.