
Posts about interviewing at Jane Street and our internship program
Developer education at Jane Street
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... Read full post
Computations that differentiate, debug, and document themselves
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... Read full post
Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
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... Read full post
How we accidentally built a better build system for OCaml
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... Read full post
This is not the performance you were looking for: the tricks systems play on us
It’s often surprising just how much software performance depends on how the software is deployed. All the time and effort you’ve invested in optimization can... Read full post
Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
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... Read full post
Automated testing is a powerful tool for finding bugs and specifying correctness properties of code. Haskell’s Quickcheck library is the most well-known automated testing library,... Read full post
At Jane Street, we often work with data that has a very low signal-to-noise ratio, but fortunately we also have a lot of data. Where... Read full post
rsync rounds timestamps to the nearest second
I’m not sure how I’ve managed to use rsync for so many years without ever noticing this, but hey, you learn something new every day!... Read full post
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... Read full post
How to fail -- introducing Or_error.t
There are a bunch of different ways of handling errors in OCaml. If you’ve just started learning about functional programming, you’ll no doubt have come... Read full post
Unraveling of the tech hiring market
Recruiting talented people has always been challenging. Read full post
Deep-Learning the Hardest Go Problem in the World
Updates and a New Run Read full post
Introducing the Jane Street Graduate Research Fellowship
We are excited to announce the launch of the Jane Street Graduate Research Fellowship! Read full post
Background Read full post
Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
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... Read full post
Research internships in our Tools and Compilers group
We are excited to announce research internships in our Tools and Compilers group. Read full post
What if writing tests was a joyful experience?
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... Read full post
We recently restructured our standard libraries at Jane Street in a way that eliminates the difference between Core_kernel and Core and we’re happy with the... Read full post
Sometimes we need to inspect a lot of systems at once and its annoying to have to wait a long time for a result. What... Read full post
OCaml in Japan, and its Meeting in Tokyo
It might be surprising to hear that there are a significant number of OCaml users in Japan, but it is true. OCaml has been used... Read full post
Using Python and OCaml in the same Jupyter notebook
The cover image is based on Jupiter family by NASA/JPL. Read full post
Do applied programming languages research at Jane Street!
As our Tools & Compilers team has grown, the kinds of projects we work on has become more ambitious. Here are some of the major... Read full post
Welcome to another post in our series of how to use OCaml for machine learning. In previous posts we’ve discussed artistic style-transfer and reinforcement learning.... Read full post
Finding memory leaks with Memtrace
Memory issues can be hard to track down. A function that only allocates a few small objects can cause a space leak if it’s called... Read full post
Chrome extensions: Finding the missing proof
Web browsers have supported custom plug-ins and extensions since the 1990s, giving users the ability to add their own features and tools for improving workflow... Read full post
Oxidizing OCaml: Data Race Freedom
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.... Read full post
Bootstrapping OCaml/async on the Raspberry Pi
On Friday morning I discovered a Raspberry Pi on my desk. The Raspberry Pi is a small single-board computer powered by a 700MHz ARM CPU.... Read full post
Generic mapping and folding in OCaml
Haskell has a function fmap which can map over a number of different datatypes. For example, fmap can map a function over both a List... Read full post
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... Read full post
A trick: recursive modules from recursive signatures
Stephen taught me a neat trick a while back. Suppose you want to define a some mutually recursive types Read full post
The dangers of being too partial
This article deals with some not well-known dark corners of the OCaml compiler and how to get around them to produce more efficient code. The... Read full post
Iterative email problem solving with python, Part 2
Once we’d fixed up all our message IDs (see part 1) we let imapsync loose on the first few beta testers who noticed that the... Read full post
What's 2013 + 50? 1969, of course!
What happens when the latest CentOS 6.4/RHEL/FreeBSD GnuTLS certtool gets used to generate a TLS certificate with a 18250-day validity period? Time travel back in... Read full post
Building reproducible Python environments with XARs
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... Read full post
Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
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... Read full post
Reverse web proxy in ~50 lines of BASH
In the spirit of reinventing the wheel for fun, I hacked this together as a quick challenge to myself last week. It’s a little rough... Read full post
Visualizing piecewise linear neural networks
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... Read full post
Disabling Chrome's x-webkit-speech vulnerability
It’s been a busy couple of weeks for Internet security! Almost unnoticed amongst the ‘Heartbleed’ fallout was a post on Guy Aharonovsky’s blog detailing how... Read full post
Core_bench: better micro-benchmarks through linear regression
This post is meant to be an introduction to Core_bench, our micro-benchmarking library for OCaml. Core_bench is similar to Haskell’s micro-benchmarking library, Criterion, in that... Read full post
The Jane Street Interview Process — 2020 Edition
We’re busy preparing for our software engineering fall hiring season. Over the years we’ve done our best to make our interview process more transparent to... Read full post
What a Jane Street software engineering interview is like
Are you thinking about applying to Jane Street for a software engineering role? Or already have a phone interview scheduled but unsure what to expect?... Read full post
Jane Street Tech Talk, Verifying Network Data Planes
After a summer hiatus, the Jane Street Tech Talks series is back on for the fall! Last we left it, our very own Dominick LoBraico... Read full post
Since version 4.10, OCaml offers a new best-fit memory allocator alongside its existing default, the next-fit allocator. At Jane Street, we've seen a big improvement... Read full post
A module type equivalence surprise
I usually think of two module types S1 and S2 as being equivalent if the following two functors type check: Read full post
Presenting the 2009 JSSP projects
This year’s JSSP projects have been selected. We think it’s an exciting list of projects, and we’re pleased that this year the projects support a... Read full post
How Jane Street Pairs Interns to Projects and Teams During the Software Engineering Internship
Software engineering intern candidates often ask how team placement works and how much input incoming interns have over their teams and projects. We know team... Read full post
There are abundant resources online trying to scare programmers away from using shell scripts. Most of them, if anything, succeed in convincing the reader to... Read full post
Magic-trace: Diagnosing tricky performance issues easily with Intel Processor Trace
Intel Processor Trace is a hardware technology that can record all program execution flow along with timing information accurate to around 30ns. As far as... Read full post
Looking for a developer experience engineer
This role has been filled Read full post
Even though registers are a low-level CPU concept, having some knowledge about them can help write faster code. Simply put, a CPU register is a... Read full post
Proofs (and Refutations) using Z3
People often think of formal methods and theorem provers as forbidding tools, cool in theory but with a steep learning curve that makes them hard... Read full post
What the interns have wrought, 2024 edition
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... Read full post