Posts about interviewing at Jane Street and our internship program
All Authors
Aaron Bauer
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
Aditya Srinivasan
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
Andrew Ray
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
Andy Myers
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
Benjamin Devlin
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
Carl Eastlund
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
Chris Hardin
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
Chris Perl
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
Craig Falls
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
David House
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
David Powers
Unraveling of the tech hiring market
Recruiting talented people has always been challenging. Read full post
David Wu
Deep-Learning the Hardest Go Problem in the World
Updates and a New Run Read full post
Emily Berger
Introducing the Jane Street Graduate Research Fellowship
We are excited to announce the launch of the Jane Street Graduate Research Fellowship! Read full post
Eric Stokes
Background Read full post
Fu Yong Quah
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
Greta Yorsh
Research internships in our Tools and Compilers group
We are excited to announce research internships in our Tools and Compilers group. Read full post
James Somers
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
Jeremie Dimino
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
John Kilburg
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
Jun Furuse
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
Laurent Mazare
Using Python and OCaml in the same Jupyter notebook
The cover image is based on Jupiter family by NASA/JPL. Read full post
Leo White
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
Loren Puchalla Fiore
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
Luke Maurer
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
Mark R. Bannister
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
Max Slater
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
Michael Bacarella
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
Michael O'Connor
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
Nailen Matschke
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
Nathan Linger
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
Pascal Zimmer
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
Patrick Hahn
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
Pavel May
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
Pavel Senchanka
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
Rahul Yesantharao
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
Ralph Douglass
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
Ricson Cheng
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
Robert Sclater
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
Roshan James
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
Sam DeFabbia-Kane
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
Sebastian Funk
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
Spiros Eliopoulos
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
Stephen Dolan
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
Stephen Weeks
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
Summer Project
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
Sydney Mitchell
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
Todd Lubin
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
Tristan Hume
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
Ty Overby
Looking for a developer experience engineer
This role has been filled Read full post
Vladimir Brankov
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
Xavier Clerc
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
Yaron Minsky
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