What I believe about software and the teams who build it

This is b.s.

Long term, you get all 3 or you get none

  • Software systems have cumulative complexity

  • So software teams must focus on ratcheting productivity

  • Velocity is the wrong metric

  • Acceleration is what actually matters


Process may get you velocity


Culture gets you acceleration

How do you build an accelerating software team?


Intellectually curious



  • Engineers who understand, care about, and legitimately drive the business generate more value, more quickly
  • Business understanding and unity of purpose allows individual engineers to make decisions without being told what to do

Intellectually curious

  • Surface-level solutions crumble in the face of a changing business and growing engineering team
  • Engineering for acceleration requires mastering abstraction
  • Serendipitous connections between disparate verticals yield the highest-impact ideas


  • Engineers need to be captains of their own time
  • Having established a shared vision and provided the right context, engineers are the ones best-positioned to prioritize

Operating Model

Do what's right


Win in the long run

We don't compromise on integrity

  • Compliance matters, building systems the right way matters, doing the right thing for customers matters
  • There will come a point when we will have to compromise a short-term business win to maintain our integrity.  We will do it and our team will never forget it.

We survive

  • We strive to build elegant systems with abstractions that enable acceleration
  • That couldn't matter less if our company ceases to exist or the opportunity disappears before that acceleration is realized
  • We do whatever it takes to survive except compromise our integrity

We win in the long run

  • Every organization pays lip service to long term value; actions reveal what's really important
  • Whenever it doesn't jeopardize survival and it doesn't run afoul of doing the right thing, we build the long-term correct solution
  • Operational teams should run operations; engineering teams should build general platforms

Engineering Values

A great engineer is curious, skeptical, meticulous, and precise while architecting and designing 

A great engineer is curious, a great storyteller, elegant, and, above all, practical while coding

A great engineer has impeccable judgement

A great engineer has mastery of abstraction

A great engineer is a fantastic debugger

A great engineer understands that the only valid measures of success are functions exclusively of what users can experience

A great engineer has an inclination towards storytelling, teaching, and egoless debate

A great engineer is passionate about something and focuses on the business and the customer


Hire for potential

  • Raw intelligence is table stakes
  • Past experience and knowledge are useful only as indicators of future capabilities and tendencies
  • Hire generalists who have the requisite mental horsepower and innate drive to learn to allow them to specialize in new areas as needed

What should interviews look like?

  • Customize the interview to the candidate; dig into past projects, demonstrated passions, or prior teams
  • Tweak past situations to uncover the reasoning and motivations behind decisions and actions


A great manager...

  • Challenges
  • Supports
  • Mentors
  • Protects
  • Leads from the front

Set an example, share a vision, and make your team aspire to reach it

Managing rapid growth

  • Central dichotomy: deep ownership but quick to relinquish past work
  • Handoffs must be proud moments
  • Building for acceleration means that doing your job implies that the next hire has an easier time generating value than you did
  • Always tie it back to the business vision, business progress, each individual's impact, and the team's impact

Structuring Organizations

Building for acceleration means accepting fluid org charts

Balancing impact visibility with agility

  • Tightly mission-oriented teams can easily measure their impact
  • Great storytellers as leaders can compensate for less rigidly-defined team missions
  • Teams should shift as platforms are uncovered, business needs shift, and resources enable temporary specialization

Let's build something amazing