2. Using OxCaml to implement type-safe reference counting between OCaml and Python (blog.janestreet.com)
Jane Street is known for being an OCaml shop, but for years now Python has been our second major programming language, acting as the primary tool for data analysis and (especially importantly these days) machine learning. Most of our traders and researchers think and write in Python, even as the maj...
3. Formal methods and the future of programming (blog.janestreet.com)
I’ve been telling people for the last 25 years that Jane Street as an organization was just not interested in formal methods.
4. strace-ui, Bonsai_term, and the TUI renaissance (blog.janestreet.com)
We’ve always found strace useful but somewhat hard to work with. Its output is often inscrutable, it’s hard to follow subprocesses or threads, and if you want to filter syscalls you have to rerun the trace with a flag for each one. What you want in debugging is a tool for exploring, refining, etc., ...
5. Using group theory to explore the space of positional encodings for attention (blog.janestreet.com)
Attention is a computational primitive at the core of modern language models, allowing internal representations to reference and influence each other. It’s how these models handle sequential data in the first place.
6. Can you reverse engineer our neural network? (blog.janestreet.com)
A lot of “capture-the-flag” style ML puzzles give you a black box neural net, and your job is to figure out what it does. When we were thinking of creating our own ML puzzle early last year, we wanted to do something a little different. We thought it’d be neat to give users a complete specification ...
7. Results from the Advent of FPGA Challenge (blog.janestreet.com)
At the end of last year, we decided to try something new: a challenge that would run alongside Advent of Code, where we asked the community to show us how they could design hardware to solve the same problems. We had no idea what level of participation to expect, but we received a huge number of sub...
8. I design with Claude more than Figma now (blog.janestreet.com)
For a long time I was skeptical of LLMs—whenever I reached for them I was disappointed by the results. Last year I tried Copilot and Cursor to tweak a game I’d built, and neither generated working changes. At a previous job I tried Gemini to outline product briefs and generate wireframes, but ended ...
9. Fun with Algebraic Effects - from Toy Examples to Hardcaml Simulations (blog.janestreet.com)
I recently ported the Hardcaml_step_testbench library, one of the libraries that we use at Jane Street for Hardcaml simulations, from using monads to using algebraic effects, a new OCaml 5 feature. This blog post walks through what algebraic effects are, why you should consider using them in lieu of...
10. Getting from tested to battle-tested (blog.janestreet.com)
Testing is an essential part of building reliable software. It’s a form of documentation, a reminder of mistakes of the past, and a boost of confidence when you want to refactor. But mostly, testing is a way of showing that your code is correct and resilient. Because it’s so important, we’ve investe...
11. Advent of FPGA — A Jane Street Challenge (blog.janestreet.com)
Update: We got over 200 submissions to this challenge, spanning a wide variety of HDL languages and hardware platforms! We featured our favorite submissions in the results blog post, check it out here
12. What the interns have wrought, 2025 edition (blog.janestreet.com)
Yet again, we’re at the end of our internship season, and so it’s time to summarize what the interns were up to!
13. A Higgs-bugson in the Linux Kernel (blog.janestreet.com)
We recently ran across a strange higgs-bugson that manifested itself in a critical system that stores and distributes the firm’s trading activity data, called Gord. (A higgs-bugson is a bug that is reported in practice but difficult to reproduce, named for the Higgs boson, a particle which was theor...
14. Introducing OxCaml (blog.janestreet.com)
At Jane Street, we’ve been actively making improvements to OCaml for a long time. Over the last few years, we’ve started to build some fairly ambitious extensions to the language. Our aim is to make OCaml a great language for performance engineering. This work has always been open source, and our ho...
15. Advent of Hardcaml (blog.janestreet.com)
Update: For the 2025 Advent of Code, we ran an Advent of FPGA Challenge where we invited the community to implement their own synthesizable solutions to this year’s puzzles! We got over 200 submissions spanning a wide variety of HDL languages and hardware platforms, check out our favorite solutions ...
16. How we accidentally built a better build system for OCaml (blog.janestreet.com)
A “build system” is one of the most important tools in a developer’s toolbox. Roughly, it figures out how to create runnable programs from a bunch of different source files by calling out to the compiler, setting up and executing test suites, and so on. Because you interact with it daily, above all ...
17. Developer education at Jane Street (blog.janestreet.com)
Like most places, Jane Street largely teaches developers through a kind of apprenticeship model. A team matching process tries to thoughtfully match new devs to a team that suits them; and from there carefully chosen projects, one-on-one mentorship, code review, and close collaboration with people “...
18. ICFP 2024 (blog.janestreet.com)
It’s no secret that Jane Street is an active participant in the programming language community, and we’re excited to be attending ICFP 2024, the International Conference on Functional Programming, in Milan next week! Most members of our OCaml Language team will be there, and as usual, we look forwar...
19. What the interns have wrought, 2024 edition (blog.janestreet.com)
We’re once again at the end of our internship season, and it’s time do our annual review of what the interns achieved while they were here.
20. Visualizing piecewise linear neural networks (blog.janestreet.com)
Neural networks are often thought of as opaque, black-box function approximators, but theoretical tools let us describe and visualize their behavior. In particular, let’s study piecewise-linearity, a property many neural networks share. This property has been studied before, but we’ll try to visuali...
21. What the interns have wrought, 2023 edition (blog.janestreet.com)
We’re once again at the end of our internship season, and it’s my task to provide a few highlights of what the dev interns accomplished while they were here.
22. Oxidizing OCaml: Data Race Freedom (blog.janestreet.com)
OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.
23. We're sponsoring SoME3 (blog.janestreet.com)
Jane Street is excited to announce our sponsorship of SoME3, Grant Sanderson and James Schloss’s third Summer of Math Exposition. SoME is a contest that Grant and James created to encourage the development of fun and interesting mathematics education videos.
24. Oxidizing OCaml: Rust-Style Ownership (blog.janestreet.com)
OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.
25. Oxidizing OCaml: Locality (blog.janestreet.com)
OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.
26. Building reproducible Python environments with XARs (blog.janestreet.com)
Our traders and researchers love Python for its agility and for its huge open-source ecosystem, especially when it comes to machine learning. But the heavy use of notebooks can make it difficult to support. Notebooks have a very different lifecycle than regular code, and aren’t always rigorously ver...
27. What if writing tests was a joyful experience? (blog.janestreet.com)
At Jane Street we use a pattern/library called “expect tests” that makes test-writing feel like a REPL session, or like exploratory programming in a Jupyter notebook—with feedback cycles so fast and joyful that it feels almost tactile. Having used them for some time now this is the only way I’d ever...
28. Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml (blog.janestreet.com)
In 2022 a consortium of companies ran an international competition, called the ZPrize, to advance the state of the art in “zero-knowledge” cryptography. We decided to have a go in our free time at submitting solutions to both the Multi-Scalar Multiplication (MSM) and Number Theoretic Transform (NTT)...
29. Visualizing information propagation in markets (blog.janestreet.com)
The Dojima rice market, established around 1716, is widely considered to be the world’s first organized futures exchange. Instead of directly exchanging money for rice on the spot, merchants would agree on a price and future date at which rice and money would be exchanged. This allowed farmers and c...
30. Computations that differentiate, debug, and document themselves (blog.janestreet.com)
One of the problems we wrestle with at Jane Street is how to understand and manage the costs associated with the positions we hold: things like margin, financing costs, market risk, regulatory capital requirements, and so on. To that end, we’ve built systems that estimate these costs and propose way...