Reflecting on Stripe's multi-year API V2 project, Patrick Collison shares two key principles for longevity: unify disparate but related concepts into a single entity, and always support N-to-M relationships from the start, as simpler data model assumptions will inevitably break over time.
Build products on simple, foundational concepts rather than complex, rigid features. These core building blocks can then be combined and layered, leading to emergent complexity that allows the product to scale and serve diverse needs without being overwhelming by default.
Making an API usable for an LLM is a novel design challenge, analogous to creating an ergonomic SDK for a human developer. It's not just about technical implementation; it requires a deep understanding of how the model "thinks," which is a difficult new research area.
There are two product philosophies: user-centric, purpose-built tools (like Asana) and system-centric, universal tools (like Notion). Purpose-built apps are easier to start with but inevitably add features and concepts, becoming bloated. Universal apps, built on a few core concepts, are harder to learn but scale infinitely without breaking their core model.
Stripe's foundational tech stack (Ruby, MongoDB) was a casual choice made by its founders on a couch. This early decision has had lasting consequences, requiring significant engineering investment to scale and maintain, illustrating how initial, seemingly minor choices dictate a company's long-term technical trajectory.
Patrick Collison posits that the iOS app ecosystem thrived over Android's largely because its initial frameworks and abstractions were superior. This highlights his belief that API design isn't just a technical detail but a critical strategic decision that shapes business outcomes and organizational structure.
Wiz's product team, trained at Microsoft, avoids building features that only solve for today's customer but break with tomorrow's enterprise giant. This 'infinite scale' mindset isn't about slowing down; it's about making conscious architectural choices that prevent time-consuming and costly refactoring later on.
For complex systems with diverse use cases (like EDI), building a comprehensive UI upfront is a failure path because you can't possibly anticipate all needs. The better approach is to first build a robust set of developer-focused APIs—like Lego blocks—that handle core functions. This allows you (and customers) to later assemble solutions without being trapped by premature UI decisions.
Patrick Collison finds it surprising that programming paradigms haven't fundamentally changed in decades, despite an explosion in the number of developers. He notes that core ideas like integrated development environments originate from the 70s and 80s, suggesting the 'aperture of experimentation' has been disappointingly narrow.
To avoid the customization vs. scalability trap, SaaS companies should build a flexible, standard product that users never outgrow, like Lego or Notion. The only areas for customization should be at the edges: building any data source connector (ingestion) or data destination (egress) a client needs.
Emily Sands advises startups against building their own databases to mirror Stripe's financial data. Instead, they should treat Stripe's highly reliable APIs (six nines uptime) as their system of record. This eliminates complex reconciliation work, freeing up scarce engineering resources for core product development.