Engineering Culture
Engineering culture is the set of practices, values, and norms that determine how effectively your team ships software. The best cultures prioritize developer experience, minimize cognitive load, and create tight feedback loops. Culture is shaped by what you hire for, how you work together, and what you celebrate.
The Guide
6 key steps synthesized from 19 experts.
Optimize for flow state and feedback loops
The three pillars of high-performing developer experience are flow state, manageable cognitive load, and fast feedback loops. Protect deep work blocks (ideally 4 hours) for engineers to enter flow. Minimize interruptions and reduce friction in daily workflows. When DevEx is poor, nothing else helps.
Featured guest perspectives
"One way to talk about it is kind of three key things that have components that are important of themselves, and they also kind of reinforce each other. Flow state is one of them, cognitive load is another, and then feedback loops are another."— Nicole Forsgren
"DevEx is developer experience... what it's like to build software, day to day, for a developer. So the friction that they face, the workflows that they have to go through... It's important because when DevEx is poor, everything else just isn't going to help."— Nicole Forsgren
Use pair programming as a management tool
Pair programming is the most underutilized management tool in engineering. The throughput limiter isn't hands on keyboard - it's finding elegant solutions. Pairing creates intensity, transfers knowledge, and helps teams navigate complex problems faster. Use high-fidelity tools like Tuple for remote pairing.
Featured guest perspectives
"Pair programming... is the most underutilized management tool in engineering, bar none. ... The throughput limiter is not hands-on keyboard. It's not like we're both sitting there and the limiter is like us trying to get through the keystrokes onto the screen. The limiter is where is the good elegant solution?"— Farhan Thawar
"Switching also helps build that knowledge redundancy in your company... have multiple owners of a system... pairing and switching pairs and test-driven development... this kind of redundancy built safety into our systems."— Heidi Helfand
Blur the lines between functions
High-performing cultures encourage designers to code and engineers to learn design. Create hybrid roles like 'design engineering' to reduce handoff friction. Require non-technical roles to engage with technical workflows. Every designer should be able to run the app locally and make changes.
Featured guest perspectives
"I eventually joined the design team... a big part of what I did there was create this function called design engineering... The person who can think of the UX design it and also build it and launch it."— Gaurav Misra
"Every designer codes. And I don't just mean HTML. I mean, like running the app locally, going in to the place where that view is rendered to make that thing look the way that they want it to look... I mean, really codes, every designer."— Ryan Singer
Create spaces for experimentation and shipping
Foster a culture of shipping by creating recurring, safe spaces for employees to demo experimental builds. Give explicit permission for non-engineers to use AI tools to build prototypes. Demo Fridays and similar rituals encourage cross-functional building and experimentation.
Featured guest perspectives
"We have a ritual every Friday, we had it this morning, called Demo Fridays. And so it's very important to create the space for people to step out of that comfort zone and use AI. So us giving permission to people to build and ship things is part of that cultural backdrop that makes these things possible."— Guillermo Rauch
"The product experience of Duolingo actually changes multiple times per day for each user... they care a lot about the clock speed of the company... they were really, really tight about it."— Albert Cheng
Hire for disposition, not just skills
A high-talent density team can operate with minimal process if hiring focuses on intellectual honesty, intrinsic motivation, and quality focus. Look for people who are level-headed, less focused on external validation, and more focused on doing excellent work. In resource-constrained environments, evaluate new hires on whether they up-level the existing team.
Featured guest perspectives
"We've been able to get away with not a ton of process yet on the engineering front... by hiring people who I think are really excellent... hiring people that are level-headed... people who are less focused on external validation, more focused on building something really great."— Michael Truell
"In a world where you're constrained by the amount of GPU capacity that you have as a researcher... each new researcher that you add is actually a net productivity loss for the research group unless that person is up-leveling everyone else in such a profound way."— Logan Kilpatrick
Dogfood relentlessly
High product quality comes from forcing the entire organization to use the product daily. Switch internal workflows (like memos to decks) to ensure everyone encounters bugs and friction. When you use your own product, engineers fix things they find personally embarrassing.
Featured guest perspectives
"It's so important that you're using your own products... one of the first things I did when I arrived was we were a little bit more of a memo culture, and I was like, you know what? We should be a deck culture because we can build those decks in Figma, and just that act alone allows you to encounter a lot of issues."— Yuhki Yamashata
Common Mistakes
- Underinvesting in developer experience and letting friction accumulate
- Maintaining strict functional silos between design, product, and engineering
- Hiring for skills alone without considering disposition and culture fit
- Breaking engineers' focus with frequent interruptions and meetings
- Prioritizing code quality over solving user problems
Signs You're Doing It Well
- Engineers can enter flow state daily with protected deep work time
- Knowledge is distributed across multiple people through pairing and rotation
- Non-engineers can build and ship prototypes using internal tools
- Team members proactively fix issues they encounter using the product
- Clock speed (time from idea to shipped experiment) keeps improving
All Guest Perspectives
Deep dive into what all 19 guests shared about engineering culture.
Albert Cheng
"The product experience of Duolingo actually changes multiple times per day for each user... they care a lot about the clock speed of the company... they were really, really tight about it."
- Optimize for 'clock speed'—the frequency with which the product can be updated and tested.
Brandon Chu
"When I joined, all project management was just in GitHub, just commenting on poll requests and even marketers in order to augment or upload a blog post, you'd have to commit and deploy it. So there was no breaks given for folks that didn't want to touch code and stuff like that."
- Use GitHub for project management to keep PMs close to the code
- Require non-technical roles to understand basic deployment workflows
Chip Huyen
"CS is about system thinking, using coding to solve actual problem and problem solving will never go away because what AI can automate more stuff. The problem is just get bigger."
- Restructure engineering teams so senior engineers focus on peer review and architectural guidelines
- Train engineers to look at how different components interact rather than just local code fixes
Dhanji R. Prasanna
"I learned the most throughout this process is that Conway's Law can be really, really powerful. So it's the law that basically says you ship your org structure. So what you're organized as in terms of teams, in terms of collaborating groups and your operating model matters a lot to what you build."
- Align technical strategy across silos to ensure teams speak the same language
- Standardize leveling and policies (e.g., what a senior engineer means) across the entire organization
"A lot of engineers think that code quality is important to building a successful product. The two have nothing to do with each other. ... It really has very little to do with how well it was architected because the flip side of that Google video... supported more formats, it supported higher resolution... YouTube had none of this. It just had the one or two minute quick video thing and it's far and away, blown away its competition."
- Prioritize solving the core customer problem over refactoring or perfect architecture
- Be willing to accept 'controlled chaos' and technical messiness if it enables rapid experimentation
Gergely
"I'm typically interested in the stuff that you might not read about in the traditional media, but us techies really care about... I wrote one about Facebook, one about Amazon, and I tried to talk with mostly software engineers to get a sense of how these companies work from a software engineer and engineer manager perspective."
- Conduct qualitative interviews with engineers across different levels to map out the reality of a company's technical culture.
- Look for 'scoops' or internal changes (like shifts in agile processes) to identify cultural trends.
Gaurav Misra
"I eventually joined the design team... a big part of what I did there was create this function called design engineering... The person who can think of the UX design it and also build it and launch it."
- Encourage engineers to learn design and designers to learn engineering to increase individual autonomy.
- Create a dedicated prototyping team to test high-risk ideas quickly within the main app.
- Hire 'full-stack' product builders who can own a feature from UX design through to implementation.
Guillermo Rauch
"We have a ritual every Friday, we had it this morning, called Demo Fridays. And so it's very important to create the space for people to step out of that comfort zone and use AI. So us giving permission to people to build and ship things is part of that cultural backdrop that makes these things possible."
- Implement 'Demo Fridays' to encourage cross-functional building.
- Give explicit 'permission' for non-engineers to use AI tools to build and ship prototypes.
Heidi Helfand
"Switching also helps build that knowledge redundancy in your company... have multiple owners of a system. So not only one person is that tower of knowledge that owns that one system... pairing and switching pairs and test-driven development... this kind of redundancy built safety into our systems."
- Implement pair programming as a standard practice
- Rotate pairs regularly to ensure multiple people understand critical systems
- Use team switching as a tool for both employee fulfillment and technical redundancy
Howie Liu
"I really believe everyone could learn how to be a software engineer if they wanted to... Everyone can learn how to be a versatile kind of unicorn product engineer/designer hybrid in the AI-native era."
- Encourage non-engineers to use AI coding assistants (like Cursor) to build prototypes
- Promote a 'growth mindset' regarding technical skill acquisition
Logan Kilpatrick
"In a world where you're constrained by the amount of GPU capacity that you have as a researcher... each new researcher that you add is actually a net productivity loss for the research group unless that person is up-leveling everyone else in such a profound way."
- Evaluate new hires based on whether they 'up-level' the existing team's efficiency rather than just adding headcount.
- Recognize that adding people to a resource-constrained project can actually slow down experimentation.
Michael Truell
"We've been able to get away with not a ton of process yet on the engineering front... by hiring people who I think are really excellent... hiring people that are level-headed... people who are less focused on external validation, more focused on building something really great, more focused on doing really high quality work."
- Prioritize hiring for 'disposition' (e.g., micro-pessimism, bluntness, and focus on quality) to reduce the need for heavy organizational overhead.
- Look for candidates with a mix of intellectual curiosity and experimentation.
Mike Krieger
"The team that works in the most futuristic way is the Claude Code team. They're using Claude Code to build Claude Code in a very self-improving kind of way... they would do very line by line pull request reviews... And they've just realized Claude is generally right... so can you use a different Claude to review it and then do the human almost acceptance testing."
- Use AI models to review PRs generated by other AI models.
- Shift the human engineer's role toward high-level acceptance testing rather than syntax checking.
Nicole Forsgren
"DevOps is not a toolchain you buy. Marketing teams labeled toolchains DevOps because they wanted your money. DevOps is a set of capabilities. They're technical capabilities. They're architectural capabilities. They're cultural capabilities. They are lean management practices that predict speed and stability."
- Focus on technical capabilities like automated testing and CI/CD.
- Implement architectural practices such as loosely coupled systems.
- Adopt lean management practices to drive speed and stability.
"DevEx is developer experience. And when we think about developer experience, we're really talking about what it's like to build software, day to day, for a developer. So the friction that they face, the workflows that they have to go through, any support that they have. It's important because when DevEx is poor, everything else just isn't going to help."
- Identify and remove friction in daily developer workflows to prevent burnout.
- Focus on reducing cognitive load so engineers have brain space for innovative problem-solving.
"One way to talk about it is kind of three key things that have components that are important of themselves, and they also kind of reinforce each other. Flow state is one of them, cognitive load is another, and then feedback loops are another."
- Protect 'deep work' blocks (ideally 4 hours) to allow engineers to enter flow states.
- Minimize interruptions that break cognitive focus during the coding process.
Ryan Singer
"Every designer codes. And I don’t just mean HTML. I mean, like running the app locally, going in to the place where that view is rendered to make that thing look the way that they want it to look... I mean, really codes, every designer."
- Encourage designers to work directly in the codebase to reduce handoff friction.
- Ensure designers can run the application locally to verify their work in a real environment.
Sander Schulhoff
"It's really worth having an AI researcher, AI security researcher on your team... having that research background really helps. So I definitely recommend having an AI security researcher or someone very, very familiar and who understands AI on your team."
- Hire or consult with dedicated AI security researchers rather than relying solely on classical security practitioners
Tom Conrad
"It was certainly the case that I was welcome to weigh in on the game design or the marketing... but my job was to build the software on time with high quality, period. And if I did those things, I'd be rewarded. And if I didn't, I would not be successful."
- Define clear accountability for functional deliverables
- Encourage deep mastery of a specific craft rather than broad, shallow involvement
Yuhki Yamashata
"It's so important that you're using your own products. And I think we're in a very lucky position where all of us can get creative around using Figma in some way... one of the first things I did when I arrived was we were a little bit more of a memo culture, and I was like, you know what? We should be a deck culture because we can build those decks in Figma, and just that act alone allows you to encounter a lot of issues and for you to get familiar with it."
- Switch internal workflows (like memos to decks) to force usage of the product
- Encourage 'bottoms-up' bug fixing where engineers fix things they personally find embarrassing
- Use the product for non-standard internal processes like performance calibrations
Farhan Thawar
"Pair programming... is the most underutilized management tool in engineering, bar none. ... The throughput limiter is not hands-on keyboard. It's not like we're both sitting there and the limiter is like us trying to get through the keystrokes onto the screen. The limiter is where is the good elegant solution?"
- Use tools like Tuple for high-fidelity remote pair programming
- Encourage pairing during incidents or for complex 'wayfinding' tasks
- Delete and rewrite code immediately after pairing to find a more elegant second-pass solution
Scott Wu
"One of the ways that we've kind of thought about Devin in building Devin is really allowing engineers to go from bricklayer to architect, so to speak. A lot of it is just getting to the point where you can do the high-level directing and you can basically specify things exactly how you want."
- Encourage engineers to focus on system design and problem specification rather than boilerplate implementation
- Adopt asynchronous workflows where humans direct multiple AI agents in parallel
"Our whole team is only like 15 engineers a year. We use a ton of Devin when we're building Devin. Most folks on the team are definitely working with up to five Devins at once, and so Devin merges like several hundred pull requests into production in the Devin code bases every month."
- Measure team productivity not just by human output, but by the ratio of AI-driven pull requests
- Train engineers to manage multiple concurrent workstreams using AI agents
Install This Skill
Add this skill to Claude Code, Cursor, or any AI coding assistant that supports Agent Skills.
Download the skill
Download SKILL.mdAdd to your project
Create a folder in your project root and add the skill file:
.claude/skills/engineering-culture/SKILL.md Start using it
Claude will automatically detect and use the skill when relevant. You can also invoke it directly:
Help me with engineering culture Related Skills
Other Engineering skills you might find useful.
Managing Tech Debt
When a technical solution lacks the operational flexibility required by the business, a full rebuild...
View Skill → →Platform & Infrastructure
The success of major platforms (like WhatsApp or Instacart) often depends on 'invisible' infrastruct...
View Skill → →Technical Roadmaps
A written strategy is essential for organizational alignment and provides a baseline that can be cri...
View Skill → →Design Engineering
The guest discusses the creation of a specific 'Design Engineering' function at Snap and Captions th...
View Skill → →