Software engineering at Big Tech and startups, from the inside. Deepdives with experienced engineers and tech professionals who share their hard-earned lessons,...
Supported by Our Partners• Vanta — Automate compliance and simplify security with Vanta.• WorkOS — The modern identity platform for B2B SaaS.—In today’s episode of The Pragmatic Engineer, I’m joined by Michael Novati, Co-founder and CTO of Formation. Before launching Formation, Michael spent eight years at Meta, where he was recognized as the top code committer company-wide for several years. The “Coding Machine” archetype was modeled after Michael at the company.In our conversation, we talk about what it was like working at Meta and dive into its engineering culture. Michael shares his journey of quickly climbing the ranks from intern to principal-level and gives level-headed advice on leveling up your career. Plus, we discuss his work at Formation, where he helps engineers grow and land roles at top tech companies.In this episode, we cover:• An overview of software architect archetypes at Meta, including “the coding machine”• Meta’s org structure, levels of engineers, and career trajectories• The importance of maintaining a ‘brag list’ to showcase your achievements and impact• Meta’s engineering culture and focus on building internal tools• How beating Mark Zuckerberg in a game of Risk led to him accepting Michael’s friend request• An inside look at Meta’s hiring process• Tips for software engineers on the job market on how to do better in technical interviews• And more!—Timestamps(00:00) Intro(01:45) An explanation of archetypes at Meta, including “the coding machine”(09:14) The organizational structure and levels of software engineers at Meta(10:05) Michael’s first project re-writing the org chart as an intern at Meta(12:42) A brief overview of Michael’s work at Meta (15:29) Meta’s engineering first culture and how Michael pushed for even more for ICs(20:03) How tenure at Meta correlated with impact (23:47) How Michael rose through the ranks at Meta so quickly(29:30) The engineering culture at Meta, including how they value internal tools(34:00) Companies that began at Meta or founded by former employees(36:11) Facebook’s internal tool for scheduling meetings (37:45) The product problems that came with scaling Facebook(39:25) How Michael became Facebook friends with Mark Zuckerberg (42:05) The “Zuck review” process(44:30) How the French attacks crashed Michael’s photo inlay prototype(51:15) How the photo inlay bug was fixed (52:58) Meta’s hiring process (1:03:40) Insights from Michael’s work at Formation(1:09:08) Michael’s advice for experienced engineers currently searching for a job(1:11:15) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• Inside Meta’s engineering culture: https://newsletter.pragmaticengineer.com/p/facebook• Stacked diffs (and why you should know about them) https://newsletter.pragmaticengineer.com/p/stacked-diffs • Engineering career paths at Big Tech and scaleups: https://newsletter.pragmaticengineer.com/p/engineering-career-paths • Inside the story of how Meta built the Threads app: https://newsletter.pragmaticengineer.com/p/building-the-threads-app—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email [email protected]. Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe
--------
1:15:30
Confessions of a Big Tech recruiter
Supported by Our Partners• DX — DX is an engineering intelligence platform designed by leading researchers. • Vanta — Automate compliance and simplify security with Vanta.—In today’s episode of The Pragmatic Engineer, I catch up with one of the best tech recruiters I’ve had the opportunity to work with: Blake Stockman, a former colleague of mine from Uber. Blake built a strong reputation in the recruiting world, working at tech giants like Google, Meta, and Uber. He also spent time with Y Combinator and founded his agency, where he helped both large tech companies and early-stage startups find and secure top talent. A few months ago, Blake did a career pivot: he is now studying to become a lawyer. I pounced on this perfect opportunity to have him share all that he’s seen behind-the-scenes in tech recruitment: sharing his observations unfiltered.In our conversation, Blake shares recruitment insights from his time at Facebook, Google, and Uber and his experience running his own tech recruitment agency. We discuss topics such as:• A step-by-step breakdown of hiring processes at Big Tech and startups• How to get the most out of your tech recruiter, as a candidate• Best practices for hiring managers to work with their recruiter• Why you shouldn’t disclose salary expectations upfront, plus tips for negotiating• Where to find the best startup opportunities and how to evaluate them—including understanding startup compensation• And much more!—Timestamps(00:00) Intro(01:40) Tips for working with recruiters(06:11) Why hiring managers should have more conversations with recruiters(09:48) A behind-the-scenes look at the hiring process at big tech companies (13:38) How hiring worked at Uber when Gergely and Blake were there(16:46) An explanation of calibration in the recruitment process(18:11) A case for partnering with recruitment (20:49) The different approaches to recruitment Blake experienced at different organizations(25:30) How hiring decisions are made (31:34) The differences between hiring at startups vs. large, established companies(33:21) Reasons desperate decisions are made and problems that may arise(36:30) The problem of hiring solely to fill a seat(38:55) The process of the closing call(40:24) The importance of understanding equity (43:27) Tips for negotiating (48:38) How to find the best startup opportunities, and how to evaluate if it’s a good fit(53:58) What to include on your LinkedIn profile(55:48) A story from Uber and why you should remember to thank your recruiter(1:00:09) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• How GenAI is reshaping tech hiring https://newsletter.pragmaticengineer.com/p/how-genai-changes-tech-hiring• Hiring software engineers https://newsletter.pragmaticengineer.com/p/hiring-software-engineers • Hiring an Engineering Manager https://newsletter.pragmaticengineer.com/p/hiring-engineering-managers• Hiring Junior Software Engineers https://newsletter.pragmaticengineer.com/p/hiring-junior-engineers—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email [email protected]. Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe
--------
1:02:52
Shipping projects at Big Tech with Sean Goedecke
Supported by Our PartnerDX → DX is an engineering intelligence platform designed by leading researchers—In today’s episode of The Pragmatic Engineer, I’m joined by Sean Goedecke, Staff Software Engineer at GitHub. Sean is widely known for his viral blog post, “How I ship projects at big tech companies.” In our conversation, he shares how to successfully deliver projects in large tech companies.Drawing from his experiences at GitHub and Zendesk, Sean reflects on key lessons learned, and we discuss the following topics: • Why shipping cannot exclude keeping management happy• How to work on stuff the company actually values• Why you should take on extra responsibility to get projects done• Why technical skills are still more important than soft skills• Soft skills you should learn: including learning the “management lingo”• First-hand remote work learnings: advantages, disadvantages, and how to thrive in this setup• … and much more!—Timestamps(00:00) Intro(01:50) An explanation of shipping(05:35) Reasons management may choose to ship something customers don’t love(09:20) A humbling learning from Sean’s time at Zendesk(13:27) The importance of learning which rules need to be broken for good business outcomes(15:28) Common obstacles to shipping(18:13) DRI: Directly responsible individual(23:06) The value of strong technical skills and why moving fast is imperative(28:44) How to leverage your technical skills the right way(32:16) Advice on earning the trust of leadership(36:10) A time Gergely shipped a product for a political reason (38:30) What GenAI helps software engineers do more easily (41:08) Sean’s thoughts on GenAI making engineers more ambitious (43:20) The difficulty of building AI tools(46:10) Advantages of working remotely and strategies for making it work(52:34) Who is best suited to remote work(54:48) How the pandemic provided a remote work trial for Sean(56:45) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• Software Engineers Leading Projects https://newsletter.pragmaticengineer.com/p/engineers-leading-projects• Shipping to production https://newsletter.pragmaticengineer.com/p/shipping-to-production• Paying down tech debt https://newsletter.pragmaticengineer.com/p/paying-down-tech-debt—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email [email protected]. Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe
--------
59:17
Notion: going native on iOS and Android
Supported by Our PartnerDX → DX is an engineering intelligence platform designed by leading researchers—In today’s exciting episode of The Pragmatic Engineer, I am joined by two members of the Notion mobile apps team, Austin Louden and Karn Saheb. Austin and Karn joined Notion in 2019 when Notion was revamping its mobile apps. Notion is a versatile productivity and collaboration platform that combines note-taking, task management, and knowledge organization into a single workspace. It is available as a web app, as well as iOS and Android apps for mobile use.In our conversation today, we take a deep dive into how the Notion mobile team operates and discuss the following: • What the engineering culture is like at Notion • Why the mobile team focuses so much on app performance• The incremental shift from Cordova to Native • Notion’s tech stack and frameworks they rely on • How the mobile team maintains consistency across iOS and Android• Unique features of the development process, including a public beta, using modules, and practices around feature flags• … and much more!—Timestamps(00:00) Intro(02:03) The RFC process at Notion (06:00) How Notion uses internal channels to share RFCs(07:57) Some of the unique ways the mobile team works(11:07) Why they don’t do sprint planning at Notion—and what they do instead(12:57) An overview of the size of Notion and teams at Notion(13:15) The beginning of mobile at Notion(14:40) A simple explanation of Cordova(15:40) Why Notion decided to revamp mobile in 2019 and shift to Native(18:30) How the mobile team evaluated performance as they made the shift to Native(22:00) Scaling mobile and iterations of moving to Native (26:04) Why the home tab project was so complex(30:59) Why the mobile team saved the editor for last and other future problems(34:35) How mobile works with other teams (36:50) How iOS and Android teams work together (38:28) The tech stack at Notion(39:30) How frameworks are used(41:57) Pros and cons of different frameworks and why Swift was the right choice(45:16) How code reviews work at Notion(48:23) Notion’s mobile team’s testing philosophy(50:18) How the mobile team keeps compile time so fast(52:36) Modules in the iOS app(54:50) Modules in the Android app(56:44) Behind the scenes of an app release and the public beta(1:00:34) Practices around feature flags(1:03:00) The four dev environments at Notion(1:04:48) How development apps work (1:07:40) How and why you can work offline in Notion mobile (1:10:24) Austin and Karn’s thoughts on the future of mobile engineering (1:12:47) Advice for junior engineers(1:16:29) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:—Where to find Austin Louden:• GitHub: https://github.com/austinlouden• LinkedIn: https://www.linkedin.com/in/austinlouden• Website: https://austinlouden.com/Where to find Karn Saheb:• GitHub: https://github.com/Karn• LinkedIn: https://github.com/Karn• Website: https://karn.ioWhere to find Gergely:• Newsletter: https://www.pragmaticengineer.com/• YouTube: https://www.youtube.com/c/mrgergelyorosz• LinkedIn: https://www.linkedin.com/in/gergelyorosz/• X: https://x.com/GergelyOrosz—References and Transcripts:See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email [email protected]. Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe
--------
1:20:37
Software architecture with Grady Booch
Brought to you by:• WorkOS — The modern identity platform for B2B SaaS.• Sevalla — Deploy anything from preview environments to Docker images.• Chronosphere — The observability platform built for control.—Welcome to The Pragmatic Engineer! Today, I’m thrilled to be joined by Grady Booch, a true legend in software development. Grady is the Chief Scientist for Software Engineering at IBM, where he leads groundbreaking research in embodied cognition.He’s the mind behind several object-oriented design concepts, a co-author of the Unified Modeling Language, and a founding member of the Agile Alliance and the Hillside Group.Grady has authored six books, hundreds of articles, and holds prestigious titles as an IBM, ACM, and IEEE Fellow, as well as a recipient of the Lovelace Medal (an award for those with outstanding contributions to the advancement of computing). In this episode, we discuss:• What it means to be an IBM Fellow• The evolution of the field of software development• How UML was created, what its goals were, and why Grady disagrees with the direction of later versions of UML• Pivotal moments in software development history• How the software architect role changed over the last 50 years• Why Grady declined to be the Chief Architect of Microsoft – saying no to Bill Gates!• Grady’s take on large language models (LLMs)• Advice to less experienced software engineers• … and much more!—Timestamps(00:00) Intro(01:56) What it means to be a Fellow at IBM(03:27) Grady’s work with legacy systems(09:25) Some examples of domains Grady has contributed to(11:27) The evolution of the field of software development(16:23) An overview of the Booch method(20:00) Software development prior to the Booch method(22:40) Forming Rational Machines with Paul and Mike(25:35) Grady’s work with Bjarne Stroustrup(26:41) ROSE and working with the commercial sector(30:19) How Grady built UML with Ibar Jacobson and James Rumbaugh(36:08) An explanation of UML and why it was a mistake to turn it into a programming language(40:25) The IBM acquisition and why Grady declined Bill Gates’s job offer (43:38) Why UML is no longer used in industry (52:04) Grady’s thoughts on formal methods(53:33) How the software architect role changed over time(1:01:46) Disruptive changes and major leaps in software development(1:07:26) Grady’s early work in AI(1:12:47) Grady’s work with Johnson Space Center(1:16:41) Grady’s thoughts on LLMs (1:19:47) Why Grady thinks we are a long way off from sentient AI (1:25:18) Grady’s advice to less experienced software engineers(1:27:20) What’s next for Grady(1:29:39) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• The Past and Future of Modern Backend Practices https://newsletter.pragmaticengineer.com/p/the-past-and-future-of-backend-practices • What Changed in 50 Years of Computing https://newsletter.pragmaticengineer.com/p/what-changed-in-50-years-of-computing • AI Tooling for Software Engineers: Reality Check https://newsletter.pragmaticengineer.com/p/ai-tooling-2024—Where to find Grady Booch:• X: https://x.com/grady_booch• LinkedIn: https://www.linkedin.com/in/gradybooch• Website: https://computingthehumanexperience.comWhere to find Gergely:• Newsletter: https://www.pragmaticengineer.com/• YouTube: https://www.youtube.com/c/mrgergelyorosz• LinkedIn: https://www.linkedin.com/in/gergelyorosz/• X: https://x.com/GergelyOrosz—References and Transcripts:See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email [email protected]. Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe
Software engineering at Big Tech and startups, from the inside. Deepdives with experienced engineers and tech professionals who share their hard-earned lessons, interesting stories and advice they have on building software.
Especially relevant for software engineers and engineering leaders: useful for those working in tech. newsletter.pragmaticengineer.com