Building a culture of excellence | David Singleton (CTO of Stripe)
David Singleton, CTO of Stripe, shares insights into Stripe's unique product development, hiring, and engineering culture, including operationalizing "meticulous in your craft" through friction logging, engineerications, and robust incident response, and how AI is impacting their work.
Deep Dive Analysis
14 Topic Outline
Stripe's Approach to Product Co-creation with Early Users
Stripe's Unique Hiring Philosophy and Talent Attraction
Building a Product-Minded Engineering Culture at Stripe
Stripe's Operating Principles and Meticulous Craftsmanship
Operationalizing Meticulousness with Friction Logging
Strategies for Effective UX Reviews and Product Improvement
The 'Engineerication' Process for Leaders to Stay Grounded
Achieving High Developer Productivity and System Reliability
Impact of AI and Large Language Models on Stripe's Products
Lessons in Managing People and Delegating Effectively
Stripe's First-Principles Approach to Planning and Prioritization
Upcoming Innovations and Product Releases at Stripe Sessions
Recommended Books for Leadership and Product Development
Favorite Interview Question and Product Discoveries
5 Key Concepts
Operating Principles
These are behavior guidelines distilled from the most effective Stripes, serving as less abstract corporate values. They frame feedback processes, guide work, and are segmented into how Stripe works, who they are, and leader responsibilities, with 'users first' being the primary principle.
Friction Logging
A process where an individual puts themselves in a specific user's shoes, goes through a product flow, and meticulously notes down points of difficulty or 'friction.' This helps identify areas for investment in detail and improvement, often done on a regular rhythm to maintain product cohesion.
Engineerication
A practice where a leader, such as a CTO or engineering manager, clears several days to join a team, pick up a small task, and complete it through the team's exact development experience. This helps them understand developer tools, build infrastructure, documentation quality, and overall team friction.
Chaos Testing
A method of injecting errors into systems to ensure they respond in a way that minimizes impact on users. This proactive approach helps identify and fix vulnerabilities before they cause actual problems, contributing to system reliability and resilience.
Selective Test Execution
A system that determines which specific tests are most relevant and material for an individual code change, rather than running the entire test suite. This innovation helps speed up the testing process for individual changes, improving developer productivity.
8 Questions Answered
Stripe attracts talent through a strong mission to increase internet GDP, a deep focus on user needs, patience in hiring, personal connections between hiring managers and candidates, and offering tremendous learning opportunities where people can stretch into new roles.
Stripe fosters a product-minded engineering culture by having engineers co-create products with early users, forming deep personal relationships with them, and ensuring every engineer embodies attributes typically found in PMs, such as user insight and problem-solving tenacity.
Stripe operationalizes meticulousness through practices like friction logging, where teams systematically identify and address points of user difficulty, and by prioritizing incident remediations and polish work on roadmaps, ensuring time is reserved for quality improvements.
Optimizing checkout flows, such as migrating users to Stripe's Payment Element or Stripe Checkout, has resulted in a 10.5% increase in the average user's revenue, demonstrating that meticulous small changes can compound into dramatic business impact.
Stripe achieves high reliability and rapid deployment by using extensive automated test suites, deploying changes through increasingly realistic environments with small traffic percentages, and having systems that automatically deploy code to production within about 45 minutes after review.
AI, particularly large language models, has enhanced Stripe's fraud detection (Radar), enabled new features like AI-powered documentation search and natural language SQL querying (Sigma), and improved internal efficiency by allowing teams to create and share prompt presets for various tasks.
Key lessons include rigorously hiring the right people, trusting them with autonomy by default, consciously delegating even when uncomfortable, meticulously managing one's own time to focus on high-impact activities, and consistently modeling the desired culture and values.
Stripe's planning involves thinking from first principles, learning from other companies, and focusing on specific user segments. They use an 'inverted W' process where teams surface ideas, leaders synthesize a draft strategy, and then teams refine their plans based on the overall direction.
46 Actionable Insights
1. Co-create with Early Users
Find and partner with a select group of early users to co-create your product, involving them in shared communication channels and regular feedback sessions, ensuring the product meets their needs before a broader launch.
2. Practice Friction Logging Systematically
Regularly put yourself in a specific user’s shoes and meticulously log every point of friction encountered while using your product, then invest heavily in solving these identified issues to significantly improve user experience.
3. Prioritize Incident Remediations
Prioritize actions to prevent future incidents (remediations) carefully, often ahead of other roadmap work, as learning from failures and preventing recurrence is crucial for maintaining reliability and moving quickly for users.
4. Perform “Engineerication” Sprints
As a manager, clear several days to join a team, pick up a small task, and go through the full development process, keeping a friction log to understand developer tools, infrastructure, and documentation, then share findings to drive improvements.
5. Establish Rapid User Feedback Loops
Create a mechanism to quickly get product iterations into users’ hands and gather their feedback, as this rapid feedback loop is essential for continuous improvement and significantly reduces the risk of going wrong in product development.
6. Prioritize Users First
Make ‘users first’ a core operating principle, forming deep personal relationships with users and putting their needs at the center of all decisions, which guides product development and attracts mission-driven talent.
7. Define Metrics & Review Regularly
For any product team, identify key metrics that truly represent the desired user experience and regularly review performance against them, as this predictable practice naturally guides micro-decisions and time prioritization towards delivering value.
8. Conduct Collaborative UX Reviews
Bring together the product team and cross-functional partners (e.g., support, executives) to walk through the product as a specific user, openly discussing issues logged during the walkthrough to foster shared understanding and address concerns.
9. Automate Rapid Code Deployment
Implement automated code deployment where changes, after passing comprehensive automated tests, are automatically deployed to production within minutes, enabling tight feedback loops where user feedback can be addressed and deployed within a day.
10. Invest in Developer Productivity Teams
Dedicate a team to developer productivity, treating internal developers as users and applying the same product development process (user understanding, feedback, metrics) to build and prioritize dev tools, ensuring engineers are highly enabled.
11. Cultivate a Strong, User-Centric Mission
Articulate a powerful mission focused on helping users at scale, as this attracts product-minded builders who want agency, understand problems deeply, and are motivated to solve them.
12. Hire for Trust & Autonomy
Focus on hiring individuals you can trust with significant autonomy, as this is crucial for scaling an organization where thousands of daily decisions cannot involve top leadership.
13. Model Consistent Leadership Behavior
As a manager or leader, show up consistently every day, modeling the desired culture and values even amidst challenges, as your presence directly sets the cultural tone for your team and organization.
14. Plan Weekly Priorities Consciously
On a regular basis (e.g., Sunday evenings), consciously list 3-5 high-impact priorities for the upcoming week, allowing this list to guide your time and energy rather than letting your inbox or calendar dictate your schedule.
15. Approach Planning from First Principles
When designing planning processes, think from first principles by considering user needs and learning from other companies, rather than defaulting to off-the-shelf systems, especially in rapidly growing environments, to create effective and evolving processes.
16. Implement Inverted W Planning
Use an ‘inverted W’ planning process where teams surface ideas, leaders synthesize into a draft strategy, teams refine their plans based on the draft, and then leaders synthesize again, ensuring alignment and context distribution across a large organization.
17. Use Structured, Work-Like Interviews
Implement structured and consistent hiring loops for all roles, using questions and exercises (e.g., pair programming, written problems) that closely simulate actual work, to effectively evaluate talent and their problem-solving approach.
18. Conduct Thorough Reference Checks
Pay significant attention to reference checks during hiring, especially for critical and leadership roles, to gain insights from thousands of hours of direct experience with candidates and build strong conviction on hires.
19. Grant Trust, Ensure Accountability
Be generous in granting trust by default to new hires, especially for significant roles, but also hold them accountable to prove they can handle that trust, potentially starting them in smaller roles to build confidence.
20. Foster Learning & Growth
Create an environment with tremendous learning opportunities where people can stretch into new areas and learn a lot, as this attracts and retains high-caliber talent motivated by personal and professional development.
21. Empower Teams to Allocate Quality Time
Trust teams to determine how much bandwidth they need to reserve for addressing polish, technical debt, and operational issues, ensuring that quality and reliability are built into their roadmap planning.
22. Move with Urgency & Focus
Adopt ‘move with urgency and focus’ as an operating principle, emphasizing the importance of rapidly solving current user needs to deliver immediate value, even when building long-term infrastructure.
23. Link Error Messages to Solutions
Make error messages from your API link directly to documentation that explains how to solve the problem, as this delights developers during high-stakes moments and helps them adopt your product more quickly.
24. Obsess Over Conversion Flows
Continuously ‘scar’ and tune critical user flows like checkout, identifying and fixing ‘broken edges’ and small frictions, as these meticulous improvements can compound to significantly increase user conversion and revenue (e.g., 10.5% uplift).
25. Meticulously Craft Marketing Pages
Invest significant care and attention into your website and product explanation pages, as this meticulousness helps users understand the value and power of your infrastructure, building trust and attracting those who appreciate high craft.
26. Conduct Company-Wide Product Walkthroughs
Occasionally conduct ‘Walk the Store’ sessions where the entire company reviews critical product flows together, fostering a shared language and understanding of user experience and product priorities across the organization.
27. Anchor Feedback to User Experience
When giving or receiving feedback in high-stakes meetings, consistently anchor all discussions and questions back to the user experience and what you’re trying to deliver for them, keeping the conversation focused and productive.
28. Prioritize Automated Test Coverage
Invest heavily in comprehensive automated test suites and continuous testing, as manual testers cannot cover the vast array of configurations, and robust automation is foundational for rapid, reliable product changes.
29. Implement Phased Production Rollouts
Deploy changes to production starting with a very small percentage of traffic and gradually ramping up, allowing for early detection of problems before they impact a broad user base.
30. Conduct Thorough Incident Reviews
After any incident, obsessively review it to understand not only what went wrong but how to prevent that entire class of issues in the future, prioritizing these remediations on the roadmap.
31. Implement Chaos Testing
Proactively inject errors and failures into your systems (chaos testing) to ensure they respond gracefully without impacting users, continuously evolving your approach to reliability.
32. Optimize Test Execution Speed
Continuously optimize the speed of test execution, using techniques like parallelization and selective test execution (running only material tests for individual changes), to maintain rapid feedback loops as your codebase grows.
33. Enable Auto-Merge for PRs
Introduce an ‘auto-merge’ feature for pull requests, allowing engineers to indicate that once a reviewer approves, the system should automatically merge the change, cutting out human distraction steps and improving productivity.
34. Enable Frictionless Problem Reporting
Implement a simple, frictionless internal problem reporting mechanism (e.g., a ‘crying octopus’ button) in developer tools, allowing users to easily report ‘paper cuts’ which a dedicated team then uses to prioritize their roadmap.
35. Use LLMs for Documentation Q&A
Leverage large language models (LLMs) to read and embed all internal and external documentation, enabling developers to ask natural language questions and receive instant, synthesized answers, improving efficiency.
36. Use LLMs for Natural Language Queries
Apply large language models to data querying tools, allowing users to ask questions in natural language which the AI then translates into complex queries (e.g., SQL), making powerful data insights accessible to non-developers.
37. Share LLM Prompts as Presets
When building internal LLM tools, create and share ‘presets’ (tuned prompts) across the company, enabling various job families to consistently achieve high-quality results and accelerate adoption of AI applications.
38. Offer AI Code Generation Tools
Make AI code generation tools like Copilot available to engineers, as they can significantly boost productivity by handling boilerplate code and test case generation, allowing engineers to focus on higher-level problem-solving.
39. Manage Personal Energy Levels
Consciously manage your own energy by engaging in tasks that bring joy and energy, even if not the most critical, as this positive energy carries over into other necessary tasks and helps maintain consistent performance.
40. Define Target User Segments
For any given product area, be explicitly clear about which specific user segments (e.g., very small businesses vs. multinational enterprises) you are serving, as their needs can vary dramatically and impact product focus.
41. Be Patient in Hiring
Exercise patience in hiring, especially for critical and leadership roles, taking the time to meet many candidates and build personal relationships, even if it means waiting for the right person to become available.
42. Personalize the Hiring Process
Make hiring a highly personal activity, with managers partnering closely with recruiting to deeply understand candidates and articulate why a role offers personal fulfillment and a significant opportunity.
43. Regular Executive Friction Logs
Senior leaders should regularly go through end-to-end product flows and write friction logs (e.g., monthly onboarding), tagging relevant teams to address issues and maintain a cohesive user experience across parallel workstreams.
44. Use Friction Logs for Praise
When creating friction logs, also make a point to praise good experiences and great work, using these logs as an opportunity to recognize team members internally.
45. Be Intentional About Meticulousness
Be intentional about where to apply meticulousness, identifying high-stakes moments or critical user paths where sweating the details will have the most profound impact and delight users.
46. Wire Plans for Quality Time
Design planning processes to inherently reserve enough time for quality and meticulousness, ensuring that the operating principles of ‘users first’ and ‘meticulous in your craft’ are embedded in how work gets done.
5 Key Quotes
The best PMs for developer-focused products, I think, are usually very technical. They're mostly former engineers themselves or maybe kind of current engineers still tinkering on the side, but bringing a lot of user insight and strategy to the problem.
David Singleton
If you have a mechanism to listen to users, get something in their hands quite quickly, and then get their feedback on it to run it back through a feedback loop, you're very unlikely to go wrong.
David Singleton
I personally will not be involved in really any of the decisions that matter and happen. Like there are, there are thousands of decisions that an organization of any skill is making every single day.
David Singleton
I always ask folks, okay, so imagine you were their manager, tell me the performance review or the development feedback you give them to help them be more effective.
David Singleton
I think almost anything that you talk about is a value. I mean, it being a value matters, but you need to have a practice behind that. That means that the value becomes real for everyone.
David Singleton
3 Protocols
Stripe Billing Product Co-creation
David Singleton- Identify a correct set of early users (e.g., Figma, Slack) with subscription business models already using Stripe for payments.
- Form deep personal relationships with individuals operating systems at these companies to understand their challenges and future aspirations.
- Bring these users into a shared product development loop.
- Establish shared Slack channels for communication.
- Regularly show product iterations to users and get their feedback.
- Launch the product to a broader audience only when the original alpha group is 'super, super happy' with it.
Friction Logging Process
David Singleton- Put yourself in a particular user's shoes, having a clear mental model of who they are (e.g., an engineer at Atlassian).
- Go through the actual process of using the product (e.g., integrating an API, using the dashboard, writing code).
- Make careful, meticulous, stream-of-consciousness notes of the experience.
- Pay particular attention to places where friction is encountered that the modeled user would find difficult.
- Praise aspects of the product that are good and delightful.
- Share the friction log with relevant teams and tag individuals who might need to take action on observed issues.
Engineerication
David Singleton- Clear several days (e.g., three or four) from your calendar, treating it like a 'maker schedule'.
- Join a specific engineering team.
- Pick up a small task, ideally a small feature that can be taken from start to finish and deployed to production.
- Go through the exact development experience the team has, understanding developer tools, build infrastructure, review processes, and documentation.
- Keep a friction log during the process.
- Write up the experience, using it as an aid-memoir and sharing it with the team to demonstrate understanding and inform prioritization.