Patrick Collison on Stripe’s Early Choices, Smalltalk, and What Comes After Coding

20 Feb 2026 · 53 min · 25 chapters

Ask about this episode

Ask anything about it. ChatGPT or Claude reads this page and answers with the times it was said.

Connect VO and ask about every podcast you hear, including the moments you saved. Add to ChatGPT · Add to Claude

In short

Summary of the a16z Podcast Episode: Patrick Collison on Stripe’s Early Choices, Smalltalk, and What Comes After Coding

Episode Overview In this episode of the a16z Podcast, host Michael Truell, CEO of Cursor, interviews Patrick Collison, CEO of Stripe and an investor in Anysphere. They delve into Collison's programming background, the foundational technology decisions made at Stripe, and the evolving landscape of software development amidst the rise of AI.

Key Themes and Discussions

  1. Programming Paradigms and Choices
  2. Preference for Development Environments:
  3. Collison emphasizes the importance of integrated development environments (IDEs) over just being text editors.
  4. Reflects on his early experiences with Smalltalk and Lisp, highlighting their interactive capabilities compared to mainstream languages like Ruby.
  • Technology Decisions:
  • Stripe's foundational choices of Ruby and MongoDB, which still impact the company 15 years later.
  • The challenges faced in API design as they transition to v2 APIs, which requires substantial adaptation of existing systems.
  1. The Role of AI in Software Development
  2. AI and Productivity:
  3. Discussion about the current state of AI and its integration into the workforce, especially regarding productivity metrics.
  4. Collison notes that recent studies find little evidence of immediate productivity gains from AI technologies, suggesting a complex transition period.
  • Future of Programming:
  • Speculation about a shift from traditional coding to higher-level abstractions where users define software behavior without deep programming knowledge.
  • Emphasis on the potential of AI to enhance design and refactoring processes, leading to cleaner and more efficient code.
  1. Historical Context in Software Development
  2. Reflection on Early Decisions:
  3. Collison discusses how early choices shape long-term company dynamics, referencing the metaphor of a "big bang" for startups where initial decisions dictate later workflows.
  4. Highlights the enduring impact of API design on business strategy and operational effectiveness.
  • Learning from the Past:
  • Collison stresses the importance of learning from early mistakes and successes, especially in the context of API and data model design.
  1. Future Insights and Speculations
  2. Advancements in Biology and AI:
  3. Touches on the potential for AI to revolutionize understanding and treatment of complex diseases through improved biological modeling and data analysis.
  • Potential Economic Shifts:
  • Collison notes the unpredictable nature of technological advancements and their economic implications, urging for a deeper examination of how AI might reshape productivity metrics.

Key Takeaways

  • Importance of Development Environments: A powerful development environment can significantly affect a company's efficiency and scalability.
  • AI's Role in Future Software Development: As AI continues to evolve, its integration into programming workflows could redefine traditional coding practices, allowing less technical users to contribute to software creation.
  • Long-term Impact of Early Decisions: Initial technology choices can have lasting consequences, highlighting the need for careful consideration in the early stages of a startup.
  • Need for Reevaluation of Productivity Metrics: Current economic indicators may not adequately capture the impact of emerging technologies, requiring new frameworks for assessment.

Resources Mentioned

  • Patrick Collison's Twitter: [@patrickc](https://twitter.com/patrickc)
  • Michael Truell's Twitter: [@mntruell](https://twitter.com/mntruell)
  • Cursor YouTube Channel: [Cursor AI](https://www.youtube.com/@cursor_ai)
  • Listen to the a16z Show on [Spotify](https://open.spotify.com/show/5bC65RDvs3oxnLyqqvkUYX?si=3E8B3qT9TyiwAHJ7JnaKbg) and [Apple Podcasts](https://podcasts.apple.com/us/podcast/a16z-podcast/id842818711).

Conclusion This episode presents a thought-provoking discussion about the evolution of programming, the potential of AI in reshaping software development, and the long-lasting impact of foundational technology decisions within organizations. Collison's insights provide a valuable perspective on the intersection of technology, productivity, and the future of work.

Written by AI. May contain mistakes. Listen to the episode to check what was said.

Chapters

Tap a time to open that second in VO

The Evolution of Programming Paradigms

0:45 to 1:25

Discussion on the stagnation of programming paradigms over the last two decades.

“And he wanted that more than he wanted a mainstream language.”

Smalltalk's Impact on Development

1:25 to 2:15

Patrick Collison shares his early experiences with Smalltalk and its advantages.

“product TV numbers, what today's dev environment could steal from Lisp machines, and Collison's work at ARK on foundational models for biology.”

Choosing Technologies for Stripe

2:15 to 3:00

Insight into the technology choices made by Collison and his brother for Stripe.

“but I thought that continuation-based web frameworks were really the right way to implement web applications.”

Web Development Challenges

3:00 to 4:50

Challenges faced in web development, particularly with Ruby's limitations.

“And you could, for example, encounter an error with some web request, edit the code to fix the error, and then resume higher up in the stack such that the entire web request would just complete.”

Early AI Bot and Turing Test

4:50 to 7:30

Collison discusses creating an AI bot in Lisp and its Turing Test experience.

“The company that acquired us was mainly a talent acquisition.”

Genetic Algorithms and Early Experiments

7:30 to 9:30

Exploration of Collison's experiments with genetic algorithms and optimization.

“and I guess that's why that but probably 70 other reasons is why I did not create ChatTript.”

Programming Language Innovations

9:30 to 12:40

Discussion on the potential innovations and future of programming languages.

“can be the same or different, but there are three maybe slightly conceptually different things.”

The Future of AI in Development

12:40 to 14:01

Speculation on the integration of AI into development environments and its implications.

“thinking in the background, to make that thinking useful, you kind of need it to run the code and then react to it.”

The Evolution of Programming Paradigms

14:01 to 15:10

Explore the stagnation in programming paradigms and the potential for new experimentation.

“from programming, like the naming of logic somewhere and then using that in a bunch of other places.”

AI's Impact on Programming Efficiency

15:11 to 16:25

Understand how AI can alleviate the burdens of maintaining complex codebases.

“Maybe this explains Cursor's success to some extent where you guys are the first people to really take it seriously in quite a while.”
Show all 25 chapters

Lessons from Programming for Organizational Dynamics

16:26 to 17:55

Learn how principles from programming can enhance team collaboration and project management.

“Someone said on Twitter today, maybe it was Andre Karpathy, but maybe I'm misattributing that, and made too many things to do with vibe coding get attributed to Andre, like to Churchill or Einstein or something.”

The Significance of API Design in Business

17:56 to 21:38

Discover how API and data model design can influence organizational strategy and market success.

“But if you could have an AI, like often when you're writing this stuff, you realize, well, I really should be doing it the beautiful way, but I'm not.”

Stripe's Foundational Technology Decisions

21:39 to 24:18

Examine the early technology choices at Stripe and their long-term implications.

“And so anyway, that's maybe the thing that I would, that's the first thing that comes to mind.”

Reflections on Database Choices

24:19 to 27:12

Discuss the rationale behind choosing MongoDB and Ruby for Stripe's early infrastructure.

“Or not early on in Stripe's history, early on in kind of our collective personal history.”

Stripe V2: Anticipating Future Changes

27:13 to 28:00

Learn about the upcoming changes in Stripe's API and the rationale behind them.

“Would you do anything differently about Stripe V2?”

Stripe's API Evolution and Challenges

28:00 to 29:54

Learn about Stripe's new API design and the challenges of interoperability.

“Fortunately, we had contemplated the possibility of this earlier at Stripe.”

Lessons from API Redesign

29:54 to 33:16

Discover important lessons on API design and integration from Stripe's journey.

“what a sensible upgrade path might look like because we control our code base, we don't control theirs.”

Patrick's Use of AI Tools

33:16 to 36:30

Explore how Patrick Collison utilizes AI tools in his work and personal tasks.

“I mean, I'm feeling very optimistic, but we're, I don't know what fraction, but 60, 70 % done or something, but not like 100%.”

The Relevance of Progress Studies

36:30 to 39:50

Understand the increasing importance of progress studies in the context of AI.

“We are also interviewing Patrick Collison, the moonlighting economist and student of the world.”

Productivity and Economic Growth

39:50 to 42:00

Examine the relationship between AI usage and productivity growth in the economy.

“There was a new paper published on this very recently, like the past couple of days, that I've not had a chance to.”

The Economic Impact of AI on GDP Growth

42:00 to 42:46

Explore how AI could boost GDP growth and the implications for economic productivity measurements.

“And again, Jack Clark, one of the co-founders.”

Programming Human Biology: Challenges and Advances

42:46 to 45:21

Discuss the potential of programming biology and the challenges of curing complex diseases.

“that AI is taking in the economy right now?”

Emerging Technologies in Biology

45:21 to 46:49

Learn about the new technologies in biology that enhance our understanding of diseases.

“Okay, then over the last 10-ish years, I mean, a bit longer, but a lot of the development has happened the last 10 years.”

The Future of Programming and Productivity

46:49 to 49:11

Insights on how evolving programming methods could transform productivity and who might benefit.

“and whether sort of this systematic approach is up to the task of shedding new light on their dynamics.”

Building Better Software: Insights from Stripe

49:11 to 51:26

Patrick shares recommendations for improving software development processes and quality.

“So we are very happy to be serving Stripe and your guys' mission.”
Hear the part that matters, and keep it.Open this episode in VO. Double tap your headphones to save a moment as you listen.
Get VO free

Transcript

Automatic transcript. May contain errors.

0:00It's interesting to me that we haven't experimented in some sense that much with the paradigm of programming over the past 20 years. You put those together, you now have the ability to, again, at the kind of level of the individual cell, to read, think, and to write. And this starts to really feel like a new kind of Turing loop and to have its own sort of completeness. I think that's a case where the right API design, the right abstraction design, ends up having just quite significant business ramifications. I think the basic idea of as development environment and not just text editor is really the right idea.

0:38And that's the thing I want to see a return to. Patrick Collison wrote his first startup in Smalltalk. Its development environment let him fix errors mid-request, inspect stack frames, and resume execution. And he wanted that more than he wanted a mainstream language. He and his brother chose Ruby and MongoDB for Stripe instead. Those decisions still define the company 15 years and 44 seconds of annual downtime later. Now Stripe is shipping v2 APIs, rewriting core abstractions first designed in 2010. It's taken years. Defining the new APIs is the easy part. Making them work alongside everything already built on the old ones is, as Colson put it, more like an instruction set migration than a product launch.

1:20This conversation previously aired on Cursor's podcast also gets into why AI hasn't moved product TV numbers, what today's dev environment could steal from Lisp machines, and Collison's work at ARK on foundational models for biology. Michael Truel, CEO of Cursor, sits down with Patrick Collison, CEO of Stripe. Well, it's great to have you. Thanks for being here. Thanks for having me. Great to be here. I've heard that your first startup was written in small talk. Please explain. I don't know what there is to explain. It's the best programming language. Well, I'd worked on Lisp and Lisp dialects before that.

1:57And actually, I'd worked on Lisp web frameworks. And when we went to build our first startup, we first implemented it in Rails. And then I found, compared to Lisp, that development process kind of frustrating. And I mean, we don't need to get into the full details, but I thought that continuation-based web frameworks were really the right way to implement web applications. There were no continuations in, there's no continuation-based framework in Ruby. And just kind of searching around, I found that there was a good one that had just been written in Smalltalk. And so I decided to play with it a little bit.

2:36And then I found that Smalltalk is actually this extremely interesting development environment that had a lot of the aspects of Lisp that I'd really appreciated there, like, you know, and a fully interactive environment with a proper debugger so that you can edit the code while in the middle of some web request or deep in some stack trace or something. And you could, for example, encounter an error with some web request, edit the code to fix the error, and then resume higher up in the stack such that the entire web request would just complete. And so rather than this kind of annoying feedback loop of having to add some log statements and do this binary search to find the problem and eventually deploy a fixed version, a process that could take an hour, you could just literally inspect the stack frame, see which variable has the wrong value, fix it, jump back up, hit proceed, and have the whole thing work.

3:33So anyway, the point is, in the hunt for this continuation-based web framework, realized that Smalltalk in general had just a much more powerful development environment as compared to Ruby, as compared to basically every other mainstream programming language. and so we decided to use it for the company which in hindsight was, I mean I don't know if it was a terrible decision or not. The reason I think one would think it would be terrible is that it would be hard to hire people and hard to scale and whatever. It wasn't hard to hire people or rather nobody knew it but it was easy to teach them. Did they know before they joined?

4:07No, no. They learned really quickly and then you have smart people learn languages really quickly. So I don't think that's really a reason not to use a non-mainstream language. The company didn't work. I think for unrelated reasons. I think just the idea wasn't that strong. But we also chose Ruby for Stripe. So I don't know, I think maybe the gains were not quite as large as I'd hoped. And was your small talk enthusiasm shared by the acquirers of the startup? And what was the dynamic, you know, was there like this blissfully ignorant management that foisted this small talk code base on a bunch of unsuspecting developers that were then kind of like piling over, you know?

4:40Or yeah, what was the dynamic between the programmer's management? And what happened to that small talk code base? Yeah, yeah, yeah. Does it still live on somewhere? I wish. And I'm 99 % sure the answer to that is no. The company that acquired us was mainly a talent acquisition. So the code base itself was less relevant. Okay. And it was immediately sort of just gone? Yeah. Okay. I've also heard that one of your earliest programming projects was working on an AI bot written in Lisp. True. And it was something like a client for MSN. I know where you found that, but that is true. And I heard that you got kind of nerds tonight by the idea of trying to get it to pass the Turing test.

5:21Yes. And I'm curious, what did you miss? Why didn't you make ChatGPT? And, well, maybe a little bit more seriously, how did it work? And what was the state of neural networks at the time? And did you consider using any antecedents to the technology we use today? Yeah, so that was the project. It was a little critter that used MSN Messenger, which was, you know, all the rage at the time. I guess that's like maybe a specific kind of sedimentary layer in the chronology of different instant messaging solutions and probably dates me quite precisely. And it was a really simple Bayesian next word predictor.

5:56Like there was nothing really that sophisticated there to the extent there was anything sophisticated. It was maybe that it used, like the training data was the conversations itself had in MSN Messenger rather than kind of general text corp. And anyway, it worked reasonably well. and better versions looked a couple of words ahead and what have you. I mean, it never really passed the Turing test where people have actual suspicion that they're trying to exercise this discernment, but it certainly passed some weaker version of the Turing test where they were unsuspecting and people ended up having quite lengthy conversations with it.

6:30And that was part of how I discovered Lisp and I remember Paradigms of AI Programming by Peter Norvig being a really formative book and had all sorts of interesting approaches there. It didn't have anything on neural networks, I'm almost sure. And I'd read some Marvin Minsky stuff, Society of the Mind or whatever, on neural nets. But I never really seriously looked at them. I actually experimented a lot with genetic algorithms. They were, I guess, more practical on your own computer. It takes a lot of computer training in neural nets. So I experimented a lot with genetic algorithms. And actually, I used Vorjak at the keyboard layout because it's more comfortable to type on than QWERTY.

7:06but as does John, my brother so no one can ever use our computers but I wrote a genetic optimizer to figure out what the optimal keyboard layout was and it turns out it is in fact basically Vorjax using a genetic approach so I went deep down that rabbit hole but I never really played with neural networks and I guess that's why that but probably 70 other reasons is why I did not create ChatTript. There is an old video of you being interviewed, I think after selling Octomatic, where you're asked about Smalltalk. That's where I found kind of that weird effect. I think at the time, people asked you why, and one of the things you said was, I mean, you liked some features about Smalltalk, Lisp-style languages, and you predicted, and I think that this was circa maybe 2008 or something like that, that the mainline C-style programming languages would increasingly borrow ideas from these older programming languages.

8:04And that kind of has been the case in the JavaScript Python ecosystems. Do you think that there are any underrated ideas buried away in kind of older, more esoteric programming languages that should be borrowed by the main line? Yeah, it's been interesting how a lot of the ideas have been borrowed by the JavaScript ecosystem and in a strange way, like through the web inspector, where you have this, I mean, that's one of the richest runtimes in some sense that people have general exposure to. I don't think JavaScript has first-class stack frames. Maybe there's some weird extension or something where you can get that, but ECMAScript doesn't have that, I'm pretty sure.

8:44First-class stack frames actually let you do a lot of other things for kind of obvious reasons. So maybe that's kind of too specific. I mean, I think the idea of, and maybe this is what cursor becomes, I think the basic idea of as development environment and not just text editor is really the right idea. And that's the thing I want to see a return to. That's the thing that the Lisp machines had and Genera. That's the thing that, to some extent, Mathematica has. That's the thing that Smalltalk has. And I think it's just such a mistake that we have ended up with development environments where there is such a separation between the runtime and the text editing and the environment in which the code, I mean, well.

9:29The runtime and the place where the code runs can be the same or different, but there are three maybe slightly conceptually different things. And in those three environments, they can all coexist in the same place. Still to this day, I use Mathematica a lot, not because I'm doing some particularly arcane symbolic mathematics, but because it's just a more efficient development environment. Now, that's maybe a bit less true with LLens because Mathematica does not support cursor-style prompted development, but that I think is the core idea that I wish others would borrow and VS Code has been a step to some extent slightly in that direction but I think we could take it way further and it would be really what I'd love to see for example is when I hover over a line of code I would like to see profiling information about just the runtime characteristics of that code or that function or whatever I would like to see logging and error information overlaid when I hover over a variable, I would like to see how, like the most common values that it takes on in production.

10:34These kinds of like just rich, deep integrations. Are you a fan of inventing on principle and those talks? Yes, yes, yes. I think Brett leans too much. I mean, I'm a huge fan of Brett. He's such an incredible... Have you been to Dynamic Land? Yes. Okay. Yeah, and have supported it. So huge fan of Brett. But the place that I've maybe differed, or at least that just resonates with me somewhat less, is Brett is really into this idea of, obviously, of graphical and visual representations for phenomena. And I think that works very well in certain domains, like the kind of dynamical systems that he has demonstrated some of the ideas with.

11:20I think it's often very hard to find such useful, spatial, continuous representations for arbitrary systems, like for various parts of Stripe. I'm not quite sure what that would be, and I'm not sure even if we could find it, you know, exactly how useful it would be. Maybe it's just me. I reason much more kind of symbolically and sort of lexically than I do visually and graphically. It might just be personal preference, but I don't know, the kind of paradigm breaking that he's been engaged in, I think, is hugely admirable. Are you going to make a truly integrated development environment? So we are playing with ideas around letting the AI increasingly take time into the background to run its code and react to the output.

12:01And we think that this should all work well together. Like, you know, we focused a ton on inflow, speed, and control. And we think that that's really, really important for AI is, you know, to give programmers the control over everything, have them understand everything the AI is producing. Also to give them really, really fast iteration loops, programmers hate waiting for things. But in some cases, we think it's now becoming possible to go tell the AI to think for a bit and then come back to you and have the API be a little bit more like the API with another human being. And we think you want that all to work well together.

12:32So the AI can come back to you with 70 % of something and then you can bring it into the foreground really quickly, work with it, and then spin it back off to the background. And as part of having the AI spend a bunch of time thinking in the background, to make that thinking useful, you kind of need it to run the code and then react to it. or else it's just kind of staring at the thing that it wrote and thinking more. Maybe I'm supposed to be the one answering the questions rather than asking them, but do you think in five years the main thing that I'm looking at in Cursor will be code or something else?

13:06I think it might be something else. I think that there are big, big, big simplification, but kind of when you're defining what a piece of software is, there's like the logic component, which is what engineers spend a lot of time on, of designing exactly how the software works. There's also for end user applications and things that have GUIs, there's like this visual component. And I think that there is, you know, maybe it's going to be us, maybe it's going to be someone else. There is a future version of the world where the way you interact with AI is a little bit less like, you know, it's a human helper that you're delegating work to or looking over your shoulder predicting the next set of things you're going to do.

13:39And instead, it's a little bit more of an advanced compiler or interpreter technology. And it could lead you to a world where programming languages actually change. And they can start to get a little bit less formal. They can start to get a little bit higher level. They can start to be a little bit more about what you want and a little bit less about how you do it. And I think that it won't look like a Google Doc necessarily. I think that there are things you want to keep around from programming, like the naming of logic somewhere and then using that in a bunch of other places. I think that there's also this other element too of the visuals of what a piece of software looks like.

14:11And I think maybe us, maybe some other tool, But I think there's a world where kind of direct manipulation of the UI starts to play a little bit more into it. But these are kind of far-flung experimental ideas. And in general, I will say, and it's not terrible, but I feel like it's interesting to me that we haven't experimented in some sense that much with the paradigm of programming over the past 20 years. And the main things we're discussing here are from the 80s or the 70s. and there are way more developers obviously now than there ever have been in the past but in some sense the aperture of experimentation there feels like it's really not that wide.

14:54And again the JavaScript ecosystem and a couple of others have done some cool things and there's been a lot of experimentation at the language level with Rust and Go and everything else but at the development environment level I don't know why it is but maybe it's just too hard and complicated now but there's been less than I would have expected. Yeah, I agree. and I think maybe this helps. Something we're working on. Maybe this explains Cursor's success to some extent where you guys are the first people to really take it seriously in quite a while. Well, I mean, yeah, I think we also benefit a lot from the why now of like there's now this, you know, great new color to paint with or set of colors to paint with.

15:30I think also there's just a ton of lock-in with programming languages around both the neurons in your head of like programming languages are kind of complex UI for programmers to define exactly how the computer should function. And so, you know, people learn languages and those, you know, people don't like to learn that many things. And then there's also the lock-in of you have a lot of logic sitting around in one language and you need to maintain that. And I actually think that that's a pretty interesting or one of our hopes is that as AI programming gets better and better and better, one of the downsides of working on professional applications with hundreds of people dealing with many millions of lines of logic is the weight of the code base really starts to weigh on you.

16:07And so the feeling of being in a net new code base where it's just everything feels effortless, goes away, everything's a chore, you have to change one thing here, brace something else here, and it becomes kind of this big ball of mud. And making that effortless, reducing the kind of weight of an existing set of logic, I think is one of the areas in which AI can make programming better. Someone said on Twitter today, maybe it was Andre Karpathy, but maybe I'm misattributing that, and made too many things to do with vibe coding get attributed to Andre, like to Churchill or Einstein or something.

16:43But I think about him. But this person, whoever was, was making an observation that it's one thing to be prompting the creation of code, but another place where AI could conceivably do a lot to help is in the beautification and the refactoring of code bases. And you can imagine that you're producing all this a little bit ungainly, not quite correctly factored detritus at the front and you have this and then nocturnally this thing comes up behind you and makes it all beautifully factored and the only CS class I ever took was this class from Jerry Sussman on it was basically focused on, he called it large scale symbolic systems but really what he was trying to focus on was the idea of creating code bases and environments and abstractions that were easy to modify and there were no assignments in the class where you'd write something from scratch, every assignment was about modifying an existing system and thinking about how could you design things in such a way that those modifications become, and they might be quite deep modifications, become straightforward.

17:47And I think that's a lovely idea. Obviously, in practice, it's often very difficult to do that given all the exigencies and pressures of the things you want to ship today and next week and so forth. But if you could have an AI, like often when you're writing this stuff, you realize, well, I really should be doing it the beautiful way, but I'm not. Maybe we could have an AI coming up behind us to change it. Yes, yes. maybe soon. One thing that happens to a lot of developers or a lot of people come to development because they care about building things. They want to make things happen on the computer screen.

18:14And so then that leads them to coding. And then something that happens to a big group of developers is they eventually realize the software they want to create is too big that they can't write all of the code themselves and they have to go to humans to help them write the code. And so maybe they then become an engineering manager or director or whatever it is. Maybe they start a company. And then most of the work becomes not typing code, it becomes coordinating amongst people. Do you think that there are any ideas from programming that are helpful for the act of kind of programming amongst the organization to get a group of people to build software together?

18:46I think taking APIs and data models really seriously. If I was to do everything at Stripe again, I mean, there's a million small things that you would do differently and even some kind of big things, but the thing that I think we could maybe foreseeably and beneficially done differently would be to have spent even more time than we did on APIs and data models. And part of the reason is the, I guess, Conway's law effect of how both of those things end up shaping the organization. So I guess if you don't deeply internalize that, then maybe you've less control over the organizational dynamics than you might otherwise like to have.

19:34But also I think it ends up shaping not only, I mean, the weak version of Conway's law is that it shapes your organization. I think the strong version is that it substantially shapes your strategy and just your business outcomes. And this isn't exactly maybe a version of that, but I often reflect on how the iOS software ecosystem for a very long time and plausibly still today was so much more vibrant and vital and successful than the Android app ecosystem. And there's a lot of things that are different across those two ecosystems. There are now way more Android devices in use, I believe, than iOS devices.

20:21But I think much of the fact that app developers tended to prefer building their apps on iOS and releasing their apps first on iOS and maybe the iOS version being better than the Android version or whatever is because the frameworks and the abstractions for iOS were just originally better than the Android ones. But I think that's a case where the right API design, the right abstraction design, ends up having just quite significant business ramifications. And I think there's kind of a sense that maybe it's not worth dwelling on these things because everything in technology changes so rapidly and whatever assumptions you make, they'll be obsolete in two years or something.

21:00I think in practice that's not true. And that's like the right API design and the right abstractions, the right data models can really endure. And for the first versions of iOS, many of the classes that one used were prefixed with NS. NS, of course, standing for next step, right? And so that's a case where the API design survived for two decades or more. And in the case of Stripe, Stripe is now 15 years old, and there were lots of things we designed 15 years ago that are still in use today, which is kind of good and bad in the sense that they endured, but also we are still under the... Living with their faults.

21:38Exactly. Yes, yes. And so anyway, that's maybe the thing that I would, that's the first thing that comes to mind. In fact, on that final note, I was talking with an engineering leader at kind of a preeminent, successful Silicon Valley private company. And they were talking about how their code base is largely in Scala. And they said that they like to think of kind of the beginnings of the startup as this big bang moment where these tired, overworked, maybe over-caffeinated founding team members are willy-nilly making these initial technical decisions that then dictate the lives of hundreds of professional engineers in the future.

22:17And that scholar choice is one of them. And they sort of live with the faults of that now. But what are those kind of, what were the consequential, it could be good or bad, initial conditions of the Stripe Big Bang that you guys still live with right now? I mean, I think that metaphor is, well it sounds true to me is the first thing I'd say. I mean maybe it's a little bit of kind of survivorship bias where like the actual statement is the early decisions we made that we never changed are decisions that we lived with but you know there's a kind of tautology there or something and there are certainly design decisions we made pretty early on that are not true today.

23:00So you know early versions of the dashboard or something were built extraordinarily differently to the dashboard today. And the converse is also true. So initially, we decided to use MongoDB at Stripe and we decided to use Ruby at Stripe. And those are still quite foundational technologies at Stripe. And we had to build a lot of infrastructure in order to make MongoDB as fault-tolerant and as distributed and as durable and as reliable and everything as we needed it to be and as it now is. Like we had Stripe's critical API availability last year was 99.99986%, which is 44 seconds of unavailability through the whole year, which is, we thin, and others don't publish statistics that are kind of granular, but we believe that is the best in the industry.

23:56And so everything that our storage team has built and many other teams, it ended up really working there. But that was a quite important critical decision, initial decision. And Ruby, similarly. I guess companies sometimes change languages along the way. But I feel like the initial language chosen tends to have a... I heard there were debates in Stripe about, or one of, actually, one of our co-founders, internet Stripe, early on. Or not early on in Stripe's history, early on in kind of our collective personal history. and he remembers there being documents upon documents about a potential Java migration.

24:34Yeah, so that partly happened. As in, we have rewritten a bunch of key services on Java, so some services for which throughput in particular is really important. And if you torture Ruby enough and maybe rewrite parts of it, parts of some hot paths in C or something, you can get it to be pretty fast. But you're often fighting against the allocator and various parts of even just like Ruby strings are not that efficient and stuff. So we've written certain services in Java and now we use both. Did you consider anything other than Mongo and why did you pick Mongo early on? And what was the RFC process, RFP process, decision-making process for that?

25:25It was just me and John, so we were sitting on the couch. It's like, should we use Mongo? Yeah, fine. Did they get through to you with a blog, or was it just the reputation of Mongo at the time and open-source communities, something else? I think it was, so I wrote a data store for our prior company, an object-based data store, and I didn't really like SQL. I thought it was, there was too much of a translational kind of mismatch between the domain of the application and, you know, that which SQL natively, you know, makes expressible. And so, you know, with SQL, obviously, you have to collapse down into, you know, a relatively restricted set of primitive forms.

26:11Whereas in your application, you know, you might have a concept of, I don't know, let's say in the case of Stripe, of money that doesn't like exactly comport with how the particular SQL database you're using happens to represent money or whatever the case might be. And so I just had this principled objection to SQL. I'm not endorsing this or saying it was good, but as this interview shows, I suppose, I had all sorts of strange notions about technology. And with Stripe, we wanted to be more mainstream and a little bit less heterodox in our technology choices than our prior company. and so instead of using Smalltalk, okay, we weren't going to go to Java, but we went to Ruby, which at least on a relative basis seemed more mainstream.

26:56And similarly, rather than write our own object database, we went relatively more mainstream and used Mongo, which still gave a lot of flexibility by virtue of being a kind of object datastore. So that was fine. Everything I've said might disqualify me from ever making technology choices for another company. Would you do anything differently about Stripe V2? We haven't talked that much about it publicly yet. And the answer might be a bit like, you know, there's the Zhu Enlai quote about the, or is it Deng Xiaoping, about the French Revolution. You know, it's too soon to judge. And so back in 2022, I believe, we, I mean, to this discussion about data models and abstractions, we realized that a couple of the core abstractions in Stripe were just not the right long-term abstractions, and we had to fix that.

Read the full transcript

27:56And so we designed a bunch of v2 APIs. Fortunately, we had contemplated the possibility of this earlier at Stripe. So most of the rest URIs that people are familiar with in Stripe are prefixed with slash v1. They've been prefixed with slash v1 from 2010. And so then in 2022, we decided, but okay, we might increment the namespace. So we designed those new APIs. They started to ship this year. Congratulations. Thank you. And we're extremely excited about the functionality that it's going to enable. And without going into the arcana of it, they will enable things like, historically, we have drawn distinctions and represented separately things like, end customers, things like sub-accounts, things like recipients for different kinds of payments, and we're unifying all of those into the same kind of entity representation, which is on some level clearly the right answer and makes a lot of will and is already changing the businesses of some of our customers because they can enable their users to do various things without having to reenter details or maybe to bring the same account across different countries or whatever the case might be.

29:23So anyway, it's been a long journey. And the reason it was a long journey is, I guess, because it's not that useful to just define these APIs in isolation. If we just wanted to define them in isolation, that's a pretty easy thing to do. the thing that's difficult is to make them interoperable with all the existing things at Stripe and to build translation layers and so forth. And then to figure out with our customers what a sensible upgrade path might look like because we control our code base, we don't control theirs. And so it's going to be, I don't want to exaggerate it, but in certain respects at least, it feels a bit more like an instruction set migration for a chip architecture or something where the instruction set by itself is easy, but it's all the kind of coexistence questions that become hard.

30:15It started to ship this year, and we're excited about it. I mean, I guess your question was maybe what lessons we've learned from it. And do you think there's anything bigger to draw out of that on either projects that are rewrites or thinking about these kind of decades-long abstractions and how to do that well? My trite answer to that is to unify everything you can plausibly unify. How do you test design ideas for V2? Well, the people designing it, well, I'll give you one other lesson and then I'll answer that question. So, and then just the other lesson, just maybe a bit tongue-in-cheek. And also, is there some chief API designer who's kind of the mastermind?

30:57And it's one person? It's not some sort of working group? There is a working group. There are working groups. But there is also a singular person who understands and is more than anyone else responsible for the whole. And I think that's necessary. My other kind of trite exhortation would be to make anything that plausibly could be an N by M relationship to support that because if you only support one to N or N to one or whatever, and even if it's non-obvious how it could possibly be N to M, just inevitably you'll end up needing that and you'll think, well, you could never have a company that's owned by two different companies or something, but it turns out that every permutation in the space is in fact eventually explored.

31:47As to how to do that well, I really feel like it's, like these new APIs, we think they're the, well, you asked the question, how do we know they're the right APIs? Partly from showing early versions of them to customers, partly because the people who designed them had spent many, many years in the, you know, witnessing and living with the shortcomings of the prior versions. So, you know, we were kind of coming with strong opinions. But even the strong opinions, I mean, one can sometimes, you know, predict wrongly or extrapolate wrongly or over-engineer something or whatever. So I think the cycles of customer validation, customer feedback are extremely important.

32:29I think it's also very important, and we did a lot of this, to literally write the integrations that would exist in the new world because, I mean, you really, I mean, I think Java is maybe an example of, yes, it fixes a bunch of problems with memory management or whatever that existed with C or C++ and antecedents, but at the cost of a lot of prolixity and overhead. And in order to kind of safeguard ourselves against inadvertently over-engineering things. We forced ourselves to write a lot of API code specifically describing how we would implement various business models and flows and so forth just to make sure that when you look at it, it feels right.

33:13But I don't want to endorse our approaches too strongly just yet. I mean, I'm feeling very optimistic, but we're, I don't know what fraction, but 60, 70 % done or something, but not like 100%. and so I don't want to prematurely declare any victory. How do you, Patrick Collison, use AI?

33:35Well, the main ways are the predictable ones where I use LLM chat tools a lot. What are you using for? Mainly for answering factual or empirical questions that I'm curious about. for deep research style questions. I don't always use deep research and now that the LMs are getting better at tool use and just navigating the web themselves, you don't need deep research as much. But for answering empirical or factual questions. I wish they were useful for writing, but I usually end up dissatisfied with the writing that they produce. So I don't reuse them very much for that. And even for editing or grading my own writing, Have you seen any improvements as the models have progressed in the writing?

34:27And I agree also, it's surprisingly generic. Yes, yes. I'm trying to prompt it to not be generic. Yes, yes, yes. Inserting names of people, and it just doesn't work. And so I have been disappointed at the times when I've given it a bundle of text. People tell me that the base models are better at this, and it's the sort of normification of RLHF that puts it in some kind of attractor basin. And yeah, I have not succeeded in using them effectively there. People say that Plod is better and O3 is better than earlier OpenAI models. And on a relative basis, that might be true. But I don't want to sound, you know, self-laudatory here and suggesting that I'm, you know, some particularly talented writer.

35:15I don't think I am. It's just like my personal style differs from the personal style, so to speak, of the models. and in some self-centered way, when I write, I want to use my personal style. So I use them for the factual stuff a lot and I find them terrific for that. Even when I'm reading a book, I'll sometimes activate, I've been recently using Grok's voice mode and I'll just passively ask questions while I'm reading and Grok is just listening in the background and the answers are very helpful. and then I obviously use LMS for running code and typically mediated through Cursor so we are interviewing you Patrick Collison as kind of the most if you had to pick the archetype of a software industrialist I feel like you would be kind of straight out of central casting for a number of reasons one is that you are running a large software company a successful large software company Two is you started as a programmer and then moved to running the company.

36:20And then three is the company also builds things for developers. And so it's kind of the intersection of many circles in the Venn diagram. And so it's helpful to hear about discussing experiences with Stripe. We are also interviewing Patrick Collison, the moonlighting economist and student of the world. And so are Parker studies doomed now that AI is here? Is there any need for them? Well, I was going to say I think the need for progress studies has increased. But again, I don't mean to suggest that proper noun progress studies sees increased need. But I think the kinds of questions that progress studies tries to answer are now more pressing and urgent because I think the degrees of freedom are increasing.

37:08and I think there's some Panglossian view that AI will just magically solve all the problems and predictions of the future are hard but one, I don't think that's true and two, in as much as we have evidence to date I don't think that's been the track record so I think that how we use these things what kind of decisions we make what kind of considerations and, you know, margins of human welfare, we seek to further, you know, I think all those judgments are going to really matter. And maybe a critique you could have leveled at progress studies or progress studies style thinking five years ago is these are all nice questions, but the world is on a kind of foreordained escalator path to, you know, some kind of teleological outcome.

37:59And I don't think the world feels that way today or certainly it feels much less that way today than it did. Because of global affairs or something else? No, I mean, maybe somewhat global affairs, but the trifecta of global affairs writ large. Second, I think that aspirations and ideals are becoming contested more actively. And there's an ambiguity these days in the U.S. as to what the left and the right even stand for. And I guess we currently have one party endorsing tariffs and another party opposing them, but with the valences kind of flipped from what one might have expected historically.

38:42And then third, yeah, obviously technology and first and foremost AI, but in our industry, stablecoins, the rise of China as the preeminent manufacturing power in many technologies of the future, like drones and robots and batteries and solar, et cetera. So, yeah, in many different ways, I feel like the future is, you know, Peter Schwartz has this concept of, you know, the Schwartz window as the window of, you know, contemplatable futures in, you know, whatever number of years hence. and I feel like that Schwartz window, as of, say, 2005, as we contemplate the world of 2015, was fairly narrow and was correctly fairly narrow.

39:36I think the world of 2015 did, in fact, unfold largely the way we would have expected in 2005. And I feel like today in 2025, that window for 2035, like it feels extremely broad. So, yeah, I think the progress studies questions are more pressing. So you were on the record in saying that people should focus more on the question of why we don't see improvements in productivity numbers as information technology increases and also as more people have started working on science and technology and more money has gone into it. And what do the numbers look like now? Do we see AI in the numbers? There was a new paper published on this very recently, like the past couple of days, that I've not had a chance to.

40:22I just cued it today to read. So I have at this moment only read the abstract. Its claim is that one does not, in fact, observe productivity improvements stemming from use of language models. Now, I certainly can't... Do you know what they're looking at? They appear to be undertaking some kind of natural experiment looking at the individual level based on intensity of LLM usage. but I certainly cannot endorse their methodological rigor and upon understanding it better, I might be either really impressed and find it very credible or horrified. I don't know. But that was just the finding I happened to stumble upon today.

41:03I mean, look, overall, GDP growth in the US looks, well, over the last two years, it's been somewhat better than we expected. Obviously, we're speaking right now at a kind of volatile time. We certainly don't see any evidence for exponential takeoff. And if we, you know, in as much as we thought that the encouraging GDP figures we have seen in the US for the last two years are attributable to some of these new technologies, I think you would also expect to see them in other countries, right? Because these technologies are quasi-public good. Anybody can, you know, can use these LLMs. GDP growth outside of the US has not been that encouraging.

41:42We're not living in some, you know, massively accelerated period of economic growth for the world writ large. And so, you know, obviously it's early days. But I think we're seeing that the diffusion of these technologies through the economy really takes time and involves substantial complexity. And maybe just last point of that is, I believe Jack Clark said in an interview with Tyler Cohen, one of the co-founders of Anthropic, and Anthropic, to some extent, has always taken the concept of AGI and even ASI, I feel, extremely seriously. And Dario speaks with us publicly. he's written about it, et cetera.

42:22And again, Jack Clark, one of the co-founders. And he said that he expects AI to increase GDP growth by half percent a year. And I thought that, I mean, I interpret Jack as really an optimist. And half a point a year is in fact a lot of incremental GDP when compounded. So I'm not saying that that's small, but I think it's interesting that that was his figure. Yes. Do you think that with the form factor that AI is taking in the economy right now? If we just kind of stretch the line forward, do you think we're going to need new measures in economic productivity than we have right now? So assume real productivity goes up, assume that AI keeps getting better, it gets kind of deployed in the ways you would expect.

43:04Do you think we'll need new measures? Or it should show up in the numbers? No, no, I don't think so. I don't think the GDP is perfect. I think GDP can be improved. But in any world where what we generally think of as the economy is massively enhanced, it'll show up in GDP, I believe. When will we be able to program human biology? I'm very excited about this. At ARC, which is this biomedical research organization which I was involved in founding, We're working on training foundation models for biology using DNA and things like that. We're working on a virtual cell. And generally we're trying, I mean, a thing that I think is, that I didn't appreciate until really spending more time in biology is we've never, like we humanity, have never cured a complex disease.

43:55So, you know, one ontology or schema or something of diseases would be, you know, you have infectious diseases, the flu, the cold, COVID, whatever. and tuberculosis and diseases with high mortality rates. Then you have monogenic diseases where there's just sort of one genetic mutation that is responsible for the disease like Huntington's. And then you have complex diseases. And the complex diseases are kind of the residual that are now left after we've cured most of the problematic infectious diseases, at least in the Western world. most cardiovascular disease, most cancers, most autoimmune disease, most neurodegenerative disease, etc.

44:35For certain of these conditions, we have maybe treatments that help, like statins with cardiovascular disease. But for none of them can we really say that we've cured it, that we understand the causal pathways in meaningful detail and that we can vaccinate against it or something. And I think this is our hypothesis, could be wrong, is that this is in part because we don't have experimental and kind of maybe epistemic is too grandiose a word, but kind of epistemic technology that's up to the task, like the pleiotropy of the genes in terms of all the different parts of the body and the systems and the mechanisms inside the cell that they affect.

45:18There's so much combinatoric complexity there. And then, you know, the environment is such a vast and difficult to quantify thing that just it's really hard to understand for any of these conditions, you know, the etiology and the dynamics and so forth. Okay, then over the last 10-ish years, I mean, a bit longer, but a lot of the development has happened the last 10 years. We've gotten three new classes of technology in biology. For reading, we've gotten much better sequencing technology. single cell sequencing, the ability to sequence, you know, single cell sequencing of RNA, and those improvements.

45:59At the kind of think level, we, you know, we've gotten neural networks and deep learning and transformers and, you know, everything there. I mean, they've existed for a long time, but we've gotten the recent improvements in them, and the transformer in particular. And then on the right side, we've seen, obviously, huge improvements in functional genomics and CRISPR and, you know, bridge editing, which is a technology that kind of hark, but the ability to kind of make very specific directed perturbations in cells. But if you put those together, you now have the ability to, again, at the kind of level of the individual cell, to read, think, and to write.

46:36And this starts to really feel like a new kind of Turing loop and to have its own sort of completeness. And, you know, we will see how much this can do against these complex diseases and whether sort of this systematic approach is up to the task of shedding new light on their dynamics. But we are hopeful and excited. If we here at Kirscher and also others in the industry are successful in automating lots of programming as we know it today and replacing it with a form of software building that's much higher level and more productive and it's much more just focused on defining what you would like the software to look like.

47:19If we succeed in that, who are you long? People talk about the designers and how this will be like a renaissance for them, but are you long the grad students? I mean, there are lots of really, really amazing grad students who are awesome and then maybe are less skilled at making things happen on computers. But who do you think is the most unexpected beneficiary of a world where both many more people can make things on computers, and then also, especially if it's an evolution away from programming, the people who are already making things on computers are much, much, much more productive. I don't have a high confidence answer to that.

47:55There's all sorts of trite stock answers like real assets, especially constrained real assets. Maybe we should be long SF real estate or something because it is one of the most beautiful cities in the world and will be enduringly so. Maybe we should be allowing the inputs and the ingredients to these systems because demand for them will go parabolic. And so maybe we should be allowing copper. Maybe we should be allowing positional goods and celebrities and Taylor Swift's music catalog. There's a lot of, I think, compelling theories here. But part of what I think is interesting at this economic moment is the unpredictability and the contingency and kind of sensitivity to the precise assumptions in the technology trajectory itself.

48:43And the shape that it takes in five or 10 years or whatever, I think is going to do a lot to determine the answer to that. And as I look backwards the last couple of years, I'm struck by how many predictions have held up reasonably poorly, even for people who are on the face of it, extremely well informed. And so I've asked a lot of people this question and I have not heard any answers that are so compelling that I feel like I have conviction. So we are very happy to be serving Stripe and your guys' mission. What would you like us to build? How can we make Cursor better for you, either you, Patrick Collison, or you, Stripe?

49:21Well, you guys are already making Stripe better, so keep doing what you're doing would not be a bad outcome from our vantage point. Cursor has today hundreds and soon thousands of extremely enthusiastic Stripe employees who are daily users of Cursor, and they report that it's a very significant productivity enhancement. And so if you're... We'll wait for the economic numbers. Well, you know, the economy is pretty big, and these diffusions take time. Yes, yes. So, you know, it seems kind of greedy to want more if you're already making, you know, Stripe spends more on R &D and software creation than we spend on any single undertaking.

50:06And so if we're making that process more efficient and more productive, then maybe it seems greedy to want anything more. If I'm being selfish, okay, three things. Perfect. The runtime characteristics and integration stuff that we just discussed, I think would be really valuable. I think the refactoring and the beautification stuff that, again, we also talked about, I think would be extremely helpful. And I think really change our degrees of freedom as in if you could lower the cost of future changes to Stripe and improve the quality of the architecture. And then third, we really care about what we call at Stripe craft and beauty, and we want our software to be well-designed and pleasant to use, and pleasant to use not only in the superficial pixel sense, but also in the deep it works very well sense and is something you can set up and largely forget about and just trust or forget about it in as much as you want to.

51:09There's obviously a concern with AI that it leads to the creation of more slop and more kind of crappy things, but not more of the best things. I don't know what it would be that Cursor would do to ensure that the world is creating more of the best software and not just more software. but I think that's an interesting and important dimension. So those would be my, I mean, besides all the obvious things to do, those would be three suggestions. Amazing. Thank you, Patrick. All right. Thank you for having me. Yes. Thanks for listening to this episode of the A60Z podcast. If you liked this episode, be sure to like, comment, subscribe, leave us a rating or review and share it with your friends and family.

51:55For more episodes, go to YouTube, Apple Podcasts and Spotify. Follow us on X and A16Z and subscribe to our Substack at a16z.substack.com. Thanks again for listening and I'll see you in the next episode.

52:30LLC, A16Z, or any of its affiliates. Information is from sources deemed reliable on the date of publication, but A16Z does not guarantee its accuracy.

From the publisher

Michael Truell, CEO of Cursor, sits down with Patrick Collison, CEO of Stripe and an investor in Anysphere, to talk about Collison's history with Smalltalk and Lisp, the MongoDB and Ruby decisions Stripe still lives with 15 years later, why he'd spend even more time on API design if he could do it over, and whether AI is actually showing up in economic productivity data. This episode originally aired on Cursor's podcast.

 

Resources: 

Follow Patrick Collison on X:   https://twitter.com/patrickc

Follow Michael Truell on X: https://twitter.com/mntruell

Follow Cursor: https://www.youtube.com/@cursor_ai

Stay Updated:

Find a16z on YouTube: YouTube

Find a16z on X

Find a16z on LinkedIn

Listen to the a16z Show on Spotify

Listen to the a16z Show on Apple Podcasts

Follow our host: https://twitter.com/eriktorenberg

 

Please note that the content here is for informational purposes only; should NOT be taken as legal, business, tax, or investment advice or be used to evaluate any investment or security; and is not directed at any investors or potential investors in any a16z fund. a16z and its affiliates may maintain investments in the companies discussed. For more details please see a16z.com/disclosures.


Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.

More from The a16z Show

All 489 episodes
Patrick Collison on Stripe’s Early Choices, Smalltalk, and What Comes After CodingThe a16z Show · 53 min
Listen in VO