Patrick Collison on Stripe’s Early Choices, Smalltalk, and What Comes After Coding
Tuesday, 24 March 2026 · 6 min read · Listen to the episode ↗
Patrick Collison discusses Stripe's early technology choices, emphasizing how foundational programming decisions, such as the shift from Rails to Smalltalk, have lasting impacts on performance and functionality. He also explores the future of coding, advocating for advanced development environments and AI integration that enhances programming efficiency. The conversation touches on the potential of AI, particularly in simplifying code maintenance and improving productivity, while noting challenges in realizing these benefits across industries and technologies like cryptocurrencies and blockchain.
Michael Truell highlights a stagnation in experimentation within programming paradigms over the last two decades. Patrick Collison reflects on the significance of reading, thinking, and writing at the individual cell level, comparing it to a new Turing loop with substantial business implications. He advocates for a robust development environment rather than merely relying on text editors, emphasizing the advantages he experienced with Smalltalk, which allowed for real-time error fixing and debugging. Collison recounts his transition from Rails to Smalltalk during his first startup, expressing frustrations with Rails and praising Smalltalk's interactive environment that enabled seamless error resolution. Despite acknowledging the challenges of using a non-mainstream language like Smalltalk, he found it easy to teach to new hires. He later reflects on the decision to use Ruby for Stripe, suggesting that the anticipated benefits of Smalltalk may not have materialized as expected.
Collison shares his early programming project, an AI bot in Lisp for MSN Messenger, aimed at passing the Turing test. He describes it as a Bayesian next-word predictor that engaged users in conversation, although it did not strictly pass the test. He also experimented with genetic algorithms, creating a genetic optimizer for keyboard layouts. He notes that many ideas from older languages have been adopted in the JavaScript ecosystem, although he points out that JavaScript lacks first-class stack frames.
Collison expresses a desire for development environments to integrate more than just text editing, criticizing the separation of runtime and editing environments. He advocates for deeper integrations, such as profiling information and error overlays, while acknowledging the influence of Brett Victor's graphical methods. He discusses the exploration of AI that can run code in the background and react to outputs, emphasizing the need for speed and control in programming. Looking to the future, Collison speculates on a potential shift from traditional coding to a more advanced compiler or interpreter model, suggesting that programming languages may evolve to be more user-oriented. He envisions a transformation in the role of AI from a helper to an integrated part of the programming process, while also considering the incorporation of visual elements in software development and user interfaces.
The conversation highlights the evolution of programming since the 70s and 80s, noting an increase in developers but a stagnation in experimentation within development environments. One speaker attributes the success of Cursory to a renewed interest in programming tools and languages, while also discussing the complexity and lock-in associated with programming languages that can hinder exploration. They express optimism that advancements in AI programming could simplify code maintenance and refactoring, referencing AI's potential to beautify and manage code. A class by Jerry Sussman is recalled, emphasizing the importance of designing modifiable codebases. There is hope that AI could help developers implement best practices in coding, even when they struggle to do so themselves.
The conversation shifts to the journey of developers who often transition from building to management roles as projects grow, raising questions about how programming concepts can aid in organizational collaboration. The significance of APIs and data models is underscored as essential for effective collaboration in software development. One speaker reflects on the importance of APIs and data models, citing Conway's Law, which suggests that organizational structure is influenced by system design. They argue that understanding this relationship can enhance control over organizational dynamics and influence business outcomes. Comparing the iOS and Android ecosystems, they note that despite the larger number of Android devices, iOS developers prefer the platform due to better frameworks and abstractions. They emphasize that good API and abstraction design can have lasting business impacts, referencing enduring design choices at Stripe.
Another speaker agrees with the notion that early decisions have lasting effects, acknowledging that some foundational technologies at Stripe have evolved over time. They highlight the critical API availability statistics at Stripe and mention discussions about potentially migrating to Java, illustrating the long-term consequences of initial language choices. The team has rewritten several key services in Java for better performance, particularly in critical applications, while also noting the challenges of optimizing Ruby. The choice of technology for Stripe was made to be more mainstream, opting for Ruby and MongoDB over alternatives like Smalltalk and custom object databases. In 2022, the team recognized that some core abstractions were unsuitable for the long term and needed revision. New APIs were designed to unify various entities, enhancing functionality while ensuring interoperability with existing systems. The complexity of this process is likened to instruction set migration in chip architecture, emphasizing the challenges of maintaining coexistence with existing code. A key lesson learned is the importance of unifying components wherever possible.
The conversation highlights the design process for a new version of a product, emphasizing the importance of a singular design leader and collaborative working groups. Customer feedback plays a crucial role in validating new APIs, and designers leverage their experience with previous versions to inform improvements. The project is nearing completion, but caution is advised against premature declarations of success. Patrick Collison discusses his use of AI, particularly LLM chat tools, which he finds effective for factual inquiries but less satisfactory for writing tasks. He has not observed significant improvements in writing quality with newer models and primarily utilizes LLMs for coding through Cursor.
Collison addresses the growing relevance of progress studies in the context of AI, noting skepticism about the assumption that AI will automatically resolve issues. He points to various factors contributing to uncertainty in progress, including global affairs and technological advancements. The conversation raises questions about the lack of observable productivity improvements despite advancements in technology and increased investment. The discussion also touches on the complexities of new technology diffusion and its uneven impact on GDP growth across countries. Collison interprets Jack Clark's optimistic view on AI's potential contribution to GDP growth, suggesting that even modest increases can have substantial effects over time. The need for new measures of economic productivity as AI evolves is questioned, with the response indicating that while GDP is not perfect, it will reflect economic enhancements as AI develops.
The conversation shifts to biomedical research, particularly the challenges of curing complex diseases, which remain prevalent after infectious diseases have been largely addressed. Collison categorizes diseases into infectious, monogenic, and complex, emphasizing the difficulty in understanding complex diseases due to their multifactorial nature. Recent advancements in biology, such as improved sequencing technologies and CRISPR, are seen as promising for addressing these challenges. The discussion concludes with a vision for the future of programming, suggesting a move towards higher-level software development focused on defining desired outcomes, while acknowledging the contributions of graduate students in the field. Collison emphasizes the need for continuous improvements to Stripe's offerings, focusing on enhancing efficiency and productivity. He notes the positive impact of Cursor's enthusiastic employee base on productivity. Suggestions for improving Stripe include refining runtime characteristics, integrating systems more effectively, and enhancing software architecture quality. He advocates for a focus on "craft and beauty" in software design to enhance user experience while expressing concern that AI could lead to lower quality software, underscoring the importance of producing high-quality code.
This summary was generated from the episode transcript and can contain mistakes.