How Shopify builds a high-intensity culture | Farhan Thawar (VP and Head of Eng)
Furhan Thaur, VP & Head of Engineering at Shopify, discusses creating organizational intensity, choosing the hard path, and unique hiring strategies. He shares Shopify's approach to pair programming, meeting management, and their massive engineering intern program to foster urgency and velocity.
Deep Dive Analysis
16 Topic Outline
Farhan’s Background and Career Themes
The Philosophy of Choosing the Hard Path
Embracing Looking Dumb and Learning from Visionaries
Creating Organizational Intensity and Efficiency
The Power and Practice of Pair Programming
Shopify's Culture of Intensity and Operating Rhythms
Meeting Armageddon: Revolutionizing Company Meetings
Reducing Distractions and Optimizing Communication
The Drive to Delete Code and Simplify Software
Building as Experiment, Feature, or Infrastructure
Remote Work and Recharging the Trust Battery
Finding Stability in Uncomfortable Times
Shopify's Unique Hiring Philosophy
Scaling Internship Programs and Co-op Systems
Lessons from Managing 120 Direct Reports
Learning from Career Failures
7 Key Concepts
Choosing the Hard Path
This philosophy suggests that opting for the more difficult choice, even if it ultimately fails, leads to valuable learning, working with smart people, and skill development. The easy path, if it fails, often teaches nothing, making the hard path a win-win in the long run.
Intensity (per minute)
This concept emphasizes maximizing output and effort within a fixed amount of time, such as an 8-hour workday, rather than extending working hours. It focuses on getting more done efficiently through deep focus and effective work practices to achieve extraordinary outcomes.
Pair Programming
A development practice where two engineers work together on one computer, sharing a keyboard and mouse, to solve a problem. It's described as an intense activity that improves problem-solving, knowledge transfer, code quality, and overall development speed by focusing on elegant solutions rather than just lines of code.
Trust Battery
A metaphor for the level of trust between individuals in an organization, suggesting that trust can deplete over time, especially in remote settings. It needs intentional recharging through in-person interactions or strategic assumptions of high trust to maintain effective working relationships.
Everything You Know Is Wrong
Farhan's personal motto, which encourages a first-principles approach to problem-solving and a willingness to challenge assumptions. It promotes continuous experimentation and learning by questioning established knowledge and trying different approaches.
Three Buckets of Building
A framework used at Shopify to categorize development work into 'experiment' (learning-focused), 'feature' (leveraging existing infrastructure), or 'infrastructure' (building foundational layers for future features). This helps prioritize long-term platform value over short-term point solutions.
Meeting Armageddon
Shopify's practice of periodically deleting all recurring meetings with more than two participants, followed by a two-week moratorium on re-adding them. This forces teams to re-evaluate meeting necessity, reduces distractions, and frees up 'crafter time' for focused work.
7 Questions Answered
Choosing the harder path, even if it doesn't immediately succeed, ensures you learn valuable skills, work with smart people, and gain experience, which ultimately makes future challenges easier and provides a win even in failure.
Organizations can create intensity by focusing on maximizing output per minute rather than extending hours, utilizing practices like pair programming, frequent check-ins, and structured review cadences to maintain focus and quickly unblock teams.
Pair programming involves two engineers working on one computer to solve a problem. It's effective because it focuses on finding elegant solutions, improves knowledge transfer, reduces distractions, and leads to higher quality code, ultimately accelerating value delivery.
Shopify operates as 90-95% remote, hiring globally, but incorporates intentional in-person experiences like annual 'Shopify Summit' and 'bursts' (short, focused in-person work sessions) to recharge the 'trust battery' and foster connections.
Shopify emphasizes 'job trials' through its large internship program, where candidates work on real projects for several months. For full-time hires, they use a 'life story' interview to assess curiosity and range, and set clear expectations for a 30-90 day fit assessment period.
Deleting unnecessary or overly complex code simplifies the codebase, improving resiliency, performance, reliability, and maintainability. It allows engineers to maintain more context in their heads and build new features more easily.
Shopify periodically implements 'Meeting Armageddon,' deleting all recurring meetings with more than two people and imposing a moratorium on re-adding them. This forces re-evaluation of meeting necessity and significantly reduces meeting hours for individual contributors.
42 Actionable Insights
1. Choose the Harder Path
When faced with options, choose the harder path because even if it doesn’t work, you will have learned valuable skills, worked with smart people, and gained experience, making it a win regardless of the outcome.
2. Maximize Output Per Hour
Focus on maximizing output and expending more “kilojoules per hour” during dedicated work time (e.g., 9-5) rather than extending work hours, to achieve more within the same timeframe and free up personal time.
3. Prioritize Infrastructure Over Features
Prioritize building robust, enabling infrastructure that allows others to quickly build features (e.g., “in one hour”), even if the infrastructure itself takes longer to develop; this foundational approach unlocks exponential future velocity and diverse use cases.
4. Actively Delete & Simplify Code
Actively drive initiatives to delete and simplify code, viewing a smaller, more elegant codebase as a strategic advantage for resiliency, performance, and maintainability, rather than valuing sheer lines of code.
5. Generate Many Solutions
When problem-solving, avoid settling for the first “right” option or a limited A/B choice; instead, dedicate time to generating many more potential solutions, believing there are thousands of “right” options, to discover the truly optimal one.
6. Embrace Looking Stupid
Cultivate the ability to “look stupid” by asking “dumb” questions repeatedly, even if it feels uncomfortable or others react negatively, because the goal is deep understanding, and often others share the same unasked questions.
7. Question All Assumptions
Adopt the motto “Everything you know is wrong” to cultivate a first-principles mindset, constantly questioning assumptions and experimenting, even if it means “looking stupid,” to discover new possibilities and avoid being limited by existing knowledge.
8. Develop a Career Framework
Create a written framework of what you truly care about in a job or career, and use it annually to evaluate opportunities and avoid distractions, ensuring alignment with your values and saving time.
9. Merge Complementary Strengths
Recognize your core strengths and weaknesses, and instead of trying to excel at everything, seek out partners or leaders whose strengths (e.g., long-term vision) complement your own (e.g., execution) to merge forces and achieve greater alignment and progress.
10. Embrace Chaos & Change
Foster an organizational culture that anticipates and embraces “chaos monkey” scenarios and constant change, prioritizing resilience and rapid adaptation over rigid, slow change management, to maintain speed and deliver value.
11. Embrace “Projects On Fire”
Aim for a state where a few “big projects are on fire” at all times, not by intentionally creating chaos, but as a natural outcome of pushing boundaries, taking necessary risks, and moving fast, indicating that the organization is stretching into new, transformative areas.
12. Conduct Annual Meeting Armageddon
Annually conduct a “Meeting Armageddon” by deleting all recurring meetings with more than two internal participants, followed by a two-week moratorium on creating new recurring meetings, to combat inertia and force a re-evaluation of meeting necessity and cadence.
13. Utilize Pair Programming
Implement pair programming (two people on one computer) to foster intense, focused collaboration, reduce distractions, and accelerate finding elegant solutions, leading to extraordinary outcomes without necessarily increasing total hours.
14. Strategic Pair Programming
Use pair programming strategically for 4-8 hours a week when the problem is well-defined, but reserve longer periods for “wayfinding” and “pathfinding” to fully understand the problem before committing to a solution, even if it means deleting extensive work later.
15. Time-Boxed Code Deletion
When pair programming, set a strict time limit (e.g., one hour) for solving a problem, and if the solution isn’t complete within that time, delete the code (keeping tests) and restart, assuming the initial design or approach was flawed.
16. Embrace Code Deletion
Embrace a “start, delete, restart” approach to coding, especially during pathfinding, to overcome sunk cost fallacy and arrive at more elegant, shorter, and maintainable solutions, recognizing that code is a long-term liability.
17. Integrate AI Copilots
Integrate AI copilots into your workflow as a “pair programmer” to assist with code generation and exploration, and consider combining AI with human pair programming for enhanced collaboration, learning, and efficiency, especially when exploring new languages or complex problems.
18. Implement Weekly Progress Updates
Implement a system for weekly company-wide updates (e.g., “GSD” updates) to foster a culture of continuous progress, leveraging Parkinson’s Law to encourage teams to demonstrate achievements every week.
19. Conduct Six-Week Reviews
Conduct intensive, company-wide “six-week reviews” where teams present their roadmap, resourcing, and progress to leadership, using this cadence to drive accountability, demonstrate learning, and make rapid adjustments across all projects.
20. Act on Feedback Immediately
Act on feedback immediately after reviews, iterating and making changes without waiting for the next cycle, and for major initiatives like reorgs, prioritize rapid execution and “landing it” quickly over lengthy change management processes to maintain velocity in a volatile environment.
21. Multi-Level Project Alignment
Implement a multi-level review process (e.g., “okay one” for director-level alignment, “okay two” for VP-level architectural and contextual alignment) to ensure projects are on track, strategically aligned, and unblocked, driving intensity and progress.
22. Reframe Micromanagement as Pairing
Reframe “micromanagement” as “pairing on the problem,” where leaders frequently engage with teams to understand progress, offer advice, share broader context, and collaboratively unblock issues, ensuring alignment and faster problem-solving.
23. Optimize Communication Platforms
Shift announcement-style information and large group updates from real-time chat platforms (like Slack) to asynchronous feed-based platforms (like Workplace) to reduce distractions, increase “flow time” for individual contributors, and enhance overall productivity.
24. Implement “Code Yellow” Alerts
Implement “Code Yellow” alerts for critical infrastructure or developer experience issues, allowing a designated champion to pull resources from other projects to address and resolve these foundational problems, which, while initially slower, enable long-term speed and efficiency.
25. Categorize Development Work
Categorize development work into “experiment,” “feature,” or “infrastructure” to clarify intent and resource allocation, recognizing that building infrastructure, while slower upfront, enables faster feature development and broader utility.
26. Cultivate a Demo Culture
Foster a “demo culture” by encouraging high-fidelity updates, including live demos or interactive links to development environments, to gather direct, actionable feedback on the user experience and performance, thereby short-circuiting misunderstandings and accelerating iteration.
27. Intentional IRL Experiences
For remote-first companies, strategically implement “intentional IRL experiences” like annual company summits and “bursts” (short, focused in-person work sessions) to recharge the “trust battery” among employees and foster deeper connections that can deplete in a fully remote setup.
28. Manage “Trust Battery”
Utilize the “trust battery” metaphor to consciously manage interpersonal trust, either by starting new relationships at 50% and building it up, or by starting at 100% (assuming high trust) and allowing it to deplete only if alignment issues arise, using it as a shortcut for working relationships.
29. Build for Job Applications
For job seekers, instead of just sending resumes, build something using the API docs of companies you’re interested in; this provides valuable learning, a portfolio, and demonstrates initiative, even if it doesn’t directly lead to that specific job.
30. Build Rejection Resilience
To build resilience and comfort with rejection, engage in activities that involve frequent “no’s” or failures, like retail sales or cold calling, and learn to quickly move on and adapt without dwelling on negative outcomes.
31. Seek Harder Learning Environments
Actively seek out challenging environments or “harder rooms” where you are pushed to learn, as this often leads to meeting smarter people and a more impactful learning journey, even if it means being outside your comfort zone.
32. Learn From Smart People
Prioritize learning from people by intentionally placing yourself in challenging environments where you can interact with and learn from smart individuals.
33. Partner with Unreasonable Visionaries
When seeking co-founders or key partners, identify “unreasonable” people with strong, long-term visions, and actively meet with them to assess compatibility and potential for collaboration.
34. Resign When Framework Violated
If your established career framework is consistently violated, be prepared to resign, even without another job lined up, to uphold your values and ensure you’re working on what truly matters to you.
35. De-emphasize Traditional Interviews
Acknowledge that traditional interviews are poor predictors of job performance; instead, prioritize real-world work trials and on-the-job assessment to truly evaluate a candidate’s fit and capabilities.
36. Utilize 30-90 Day Job Trials
Treat the initial 30-90 days of employment as an extended “job trial” to assess true fit and performance, being transparent with new hires that this period is for mutual evaluation, and quickly parting ways if it’s not a good match for either party.
37. Internships as Job Trials
Leverage internship programs as a superior “job trial” and interview process, as they provide four months of real work product and mutual evaluation, offering far more insight than traditional interviews for full-time hiring.
38. Conduct “Life Story” Interviews
Incorporate a “life story” interview segment to understand the “why” behind a candidate’s career decisions and experiences, assessing their curiosity, range, and generalist tendencies, which are often better indicators of fit than a resume’s “what.”
39. Strategic Large-Scale Internships
View large-scale intern programs (e.g., 1000 interns) not as community service, but as a strategic win-win for identifying and developing future talent, leveraging their unique generational skills (e.g., AI native) while providing real work experience and a robust evaluation pipeline.
40. In-Person Intern Cohorts
For early talent programs like internships, mandate in-person attendance (e.g., three days a week) in specific offices to foster cohort building and provide essential in-person learning and mentorship, recognizing that new professionals benefit more from IRL interaction than experienced remote workers.
41. Unscheduled One-on-Ones
For large teams, replace scheduled one-on-ones with “unscheduled one-on-ones” by being highly available and physically present to unblock team members as needed, recognizing that managers are primarily for unblocking rather than routine check-ins.
42. Recruit Talent Anywhere
Actively recruit talented individuals you observe excelling in non-traditional roles (e.g., a waitress organizing a busy restaurant), recognizing that strong organizational skills, intelligence, and drive are transferable, regardless of their current industry or formal qualifications.
7 Key Quotes
Not everyone can look stupid in public over and over, but I believe it's my superpower.
Farhan Thawar
If you do the hard path and it doesn't work, actually, you still kind of win because you've now done something hard. You've probably worked with smart people. You've learned something along the way that is like valuable.
Farhan Thawar
My goal there is not to annoy the person, but it's to understand the content.
Farhan Thawar
The more I dig into the Shopify way of working, the more fun stuff I never expected emerges. There's been a drive to delete code and simplify. We have a delete code club. We can always almost find a million plus lines of code to delete, which is insane.
Lenny Rachitsky
Toby famously built a lot of Shopify pair programming, and what he would do is he would actually set a timer and him and his the CTO Cody would pair program for one hour and if they did not finish the problem in one hour they would delete all the code and they would keep the tests and they would start over.
Farhan Thawar
I always want you to think about and he had the key part was what can you build so anyone could build this in one hour.
Farhan Thawar
Alone we're okay, but together we're a genius.
Farhan Thawar
3 Protocols
Tobi Lütke and Cody Fauser's Pair Programming Method
Farhan Thawar (describing Tobi and Cody's method)- Pair program on a problem for one hour.
- If the problem is not finished within one hour, delete all the code (but keep the tests).
- Start over, assuming the initial design or approach was wrong.
- Repeat until the problem is solved within the one-hour timeframe, aiming for an elegant solution.
Shopify's Meeting Armageddon
Farhan Thawar- At a random time once a year, delete all recurring meetings with more than two people (excluding one-on-ones and external partner meetings).
- Impose a two-week moratorium during which no new recurring meetings can be added (regular meetings are allowed).
- Teams are forced to rethink meeting necessity and re-add only essential recurring meetings.
Farhan's Job Seeking Advice (Choosing the Hard Path)
Farhan Thawar- Identify companies of interest.
- Look at their API documentation.
- Build something on top of their platform (e.g., a Shopify app or admin extension).
- Use the built project and learned skills to demonstrate capability, even if not hired by the target company.