Linear: move fast with little process (with first engineering manager Sabin Roman)The project management and issue tracking tool is wildly popular within startups and scaleups. Their 25-person eng team ships rapidly, with high-quality, while working full-remote. How do they do it?Listen now on Apple, Spotify, and YouTube. Brought to you by: • Launch Darkly — a platform for high-velocity engineering teams to release, monitor, and optimize great software. • Sevalla — Deploy anything from preview environments to Docker images. • WorkOS — The modern identity platform for B2B SaaS. — Linear is a small startup with a big impact: 10,000+ companies use their project and issue-tracking system, including 66% of Forbes Top 50 AI companies. Founded in 2019, the company raised $52M in funding and is profitable, and full-remote. How did they pull this off with just 25 engineers? In our conversation today, Sabin and I compare building projects at Linear versus our experiences at Uber. He shares insights into Linear’s unique approaches, including:
TakeawaysMy biggest takeaways from this conversation: 1. Linear has a preference for creativity over process – when the goal is creativity! Linear is intentionally light on engineering processes when they build new products: their goal is to communicate using “principles” rather than “guidebooks.” The company manages to do this thanks to a mix of hiring engineers with strong product skills and still being a small enough company (60 people and 25 engineers at the time of writing). 2. Full remote is hard – especially for managers! And yet, there are payoffs to this approach. Sabin has been managing a full-remote team for two years, and this is how he puts it:
3. Starting a zero-bug policy is hard, but it’s much easier to continue once in place. Sabin admits that he was initially skeptical about whether it was feasible to implement an actual zero-bug policy. However, after the initial few months of fixing existing bugs, he now sees that it works, and it works without overloading engineers. Part of the success seems to be in giving engineers the freedom to both decide when a bug should be considered a bug – and giving them autonomy in deciding how they use their time. 4. Despite working at Uber for 7 years, Sabin brought relatively few approaches from this large company to Linear. Reflecting on why Uber and Linear are so different: a lot of it comes down to size, and the effectiveness of communication with a smaller team. As Sabin put it:
This is a good reminder for anyone moving from Big Tech to a smaller company: don’t expect the same processes to work! We covered more on this topic in the deepdiveHiring software engineers from Big Tech. Timestamps(00:00) Intro (01:41) Sabin’s background (02:45) Why Linear rarely uses e-mail internally (07:32) An overview of Linear's company profile (08:03) Linear’s tech stack (08:20) How Linear operated without product people (09:40) How Linear stays close to customers (11:27) The shortcomings of Support Engineers at Uber and why Linear’s “goalies” work better (16:35) Focusing on bugs vs. new features (18:55) Linear’s hiring process (21:57) An overview of a typical call with a hiring manager at Linear (24:13) The pros and cons of Linear’s remote work culture (29:30) The challenge of managing teams remotely (31:44) A step-by-step walkthrough of how Sabin built a project at Linear (45:47) Why Linear’s unique working process works (49:57) The Helix project at Uber and differences in operations working at a large company (57:47) How senior engineers operate at Linear vs. at a large company (1:01:30) Why Linear has no levels for engineers (1:07:13) Less experienced engineers at Linear (1:08:56) Sabin’s big learnings from Uber (1:09:47) Rapid fire round ReferencesThe Pragmatic Engineer deepdives relevant for this episode: • The story of Linear, as told by its CTO • An update on Linear, after their $35M fundraise • Software engineers leading projects • Netflix’s historic introduction of levels for software engineers Where to find Sabin Roman: • X: https://x.com/sabin_roman • LinkedIn: https://www.linkedin.com/in/sabinroman/ Mentions during the episode: • Linear: https://linear.app/ • Typescript: https://www.typescriptlang.org/ • React: https://react.dev/ • Node: https://nodejs.org/en • GCP: https://cloud.google.com/gcp • GraphQL: https://graphql.org/ • Triage at Linear: https://linear.app/docs/triage • Tuomas Artman on LinkedIn: https://www.linkedin.com/in/tuomasartman/ • Uber's Crazy YOLO App Rewrite, From the Front Seat: https://blog.pragmaticengineer.com/uber-app-rewrite-yolo/ • Netflix’s historic introduction of levels for software engineers: https://blog.pragmaticengineer.com/netflix-levels/ • Interstellar on Prime Video: https://www.amazon.com/Interstellar-Matthew-McConaughey/dp/B00TU9UFTS • The Story of Linear as told by its CTO: https://newsletter.pragmaticengineer.com/p/linear Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, please email podcast@pragmaticengineer.com. You’re on the free list for The Pragmatic Engineer. For the full experience, become a paying subscriber. Many readers expense this newsletter within their company’s training/learning/development budget. This post is public, so feel free to share and forward it. If you enjoyed this post, you might enjoy my book, The Software Engineer's Guidebook. Here is what Tanya Reilly, senior principal engineer and author of The Staff Engineer's Path said about it:
|
Search thousands of free JavaScript snippets that you can quickly copy and paste into your web pages. Get free JavaScript tutorials, references, code, menus, calendars, popup windows, games, and much more.
Linear: move fast with little process (with first engineering manager Sabin Roman)
Subscribe to:
Post Comments (Atom)
Linear: move fast with little process (with first engineering manager Sabin Roman)
On today’s episode of The Pragmatic Engineer, I’m joined by fellow Uber alum, Sabin Roman, now the first Engineering Manager at Linear. ͏ ...
-
code.gs // 1. Enter sheet name where data is to be written below var SHEET_NAME = "Sheet1" ; // 2. Run > setup // // 3....
No comments:
Post a Comment