Why Testing is Hard and How to Fix it with Will Wilson
Will Wilson is the founder and CEO of Antithesis, which is trying to change how people test software. The idea is that you run your application inside a special hypervisor environment that intelligently (and deterministically) explores the program’s state space, allowing you to pinpoint and replay the events leading to crashes, bugs, and violations of invariants. In this episode, he and Ron take a broad view of testing, considering not just “the unreasonable effectiveness of example-based tests” but also property-based testing, fuzzing, chaos testing, type systems, and formal methods. How do you blend these techniques to find the subtle, show-stopper bugs that will otherwise wake you up at 3am? As Will has discovered, making testing less painful is actually a tour of some of computer science’s most vexing and interesting problems. You can find the transcript for this episode on our website. Some links to topics that came up in the discussion: Antithesis, Will’s company FoundationDB’s deterministic simulation framework QuickCheck — the original Haskell property-based testing library, by Koen Claessen and John Hughes Hypothesis — property-based testing for Python, created by David MacIver QuviQ — John Hughes’ company commercializing QuickCheck, including automotive testing work Netflix Chaos Monkey Goodhart’s law — “When a measure becomes a target, it ceases to be a good measure” CAP theorem — the impossibility result for distributed systems that FoundationDB claims to have in some sense violated. Paxos — the consensus algorithm FoundationDB reimplemented from scratch Large cardinals, an area Will studied before abandoning mathematics Lyapunov exponent — measure of chaotic divergence Chesterton’s fence The Story of the Flash Fill Feature in Excel Building a C compiler with a team of parallel Claudes Barak Richman, “How Community Institutions Create Economic Advantage: Jewish Diamond Merchants in New York”
Why ML Needs a New Programming Language with Chris Lattner
Chris Lattner is the creator of LLVM and led the development of the Swift language at Apple. With Mojo, he’s taking another big swing: How do you make the process of getting the full power out of modern GPUs productive and fun? In this episode, Ron and Chris discuss how to design a language that’s easy to use while still providing the level of control required to write state of the art kernels. A key idea is to ask programmers to fully reckon with the details of the hardware, but making that work manageable and shareable via a form of type-safe metaprogramming. The aim is to support both specialization to the computation in question as well as to the hardware platform. “Somebody has to do this work,” Chris says, “if we ever want to get to an ecosystem where one vendor doesn’t control everything.”You can find the transcript for this episode on our website.Some links to topics that came up in the discussion:Democratizing AI compute (an 11-part series)Modular AIMojoMLIRSwift
The Thermodynamics of Trading with Daniel Pontecorvo
Daniel Pontecorvo runs the “physical engineering” team at Jane Street. This group blends architecture, mechanical engineering, electrical engineering, and construction management to build functional physical spaces. In this episode, Ron and Dan go deep on the challenge of heat exchange in a datacenter, especially in the face of increasingly dense power demands—and the analogous problem of keeping traders cool at their desks. Along the way they discuss the way ML is changing the physical constraints of computing; the benefits of having physical engineering expertise in-house; the importance of monitoring; and whether you really need Apollo-style CO2 scrubbers to ensure your office gets fresh air.You can find the transcript for this episode on our website.Some links to topics that came up in the discussion:ASHRAE (American Society of Heating, Refrigerating and Air-Conditioning Engineers)Some research on CO2’s effects on human performance, which motivated us to look into CO2 ScrubbersThe Open Compute ProjectRail-Optimized and Rail-only network topologies.Immersion cooling, where you submerge a machine in a dielectric fluid!
Building Tools for Traders with Ian Henry
Ian Henry started his career at Warby Parker and Trello, building consumer apps for millions of users. Now he writes high-performance tools for a small set of experts on Jane Street’s options desk. In this episode, Ron and Ian explore what it’s like writing code at a company that has been “on its own parallel universe software adventure for the last twenty years.” Along the way, they go on a tour of Ian’s whimsical and sophisticated side projects—like Bauble, a playground for rendering trippy 3D shapes using signed distance functions—that have gone on to inform his work: writing typesafe frontend code for users who measure time in microseconds and prefer their UIs to be “six pixels high.”You can find the transcript for this episode on our website.Some links to topics that came up in the discussion:Bauble studioJanet for Mortals, by Ian HenryWhat if writing tests was a joyful experience?
Finding Signal in the Noise with In Young Cho
In Young Cho thought she was going to be a doctor but fell into a trading internship at Jane Street. Now she helps lead the research group’s efforts in machine learning. In this episode, In Young and Ron touch on the porous boundaries between trading, research, and software engineering, which require different sensibilities but are often blended in a single person. They discuss the tension between flexible research tools and robust production systems; the challenges of ML in a low-data, high-noise environment subject to frequent regime changes; and the shift from simple linear models to deep neural networks.You can find the transcript for this episode on our website.