All Authors

Andy Myers
Andy Myers joined Jane Street in 2014. Previously he was a Systems Architect at GETCO. Read more
Most recent 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

See all posts by this author
Carl Eastlund
Most recent post:

Quickcheck for Core

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

See all posts by this author
Chris Perl
Chris Perl joined Jane Street in 2012. Before that he worked at the National Hockey League as a Systems Administrator. He enjoys learning about Linux... Read more
Most recent 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

See all posts by this author
Craig Falls
Most recent post:

10 tips for writing comments (plus one more)

A few words about what we’re striving for in our comments, particularly in Core. Every shop has their own commenting style, so I worry that... Read full post

See all posts by this author
David House
Most recent 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

See all posts by this author
David Powers
David Powers joined Jane Street in 2006 after spending time as a system administrator, directing IT at an investment bank, and making swords to sell... Read more
Most recent post:

Unraveling of the tech hiring market

Recruiting talented people has always been challenging. In some years that meant competing with a hot new company that aggressively courted every fresh graduate with... Read full post

See all posts by this author
Eric Stokes
Most recent post:

Async Parallel

Background Parallel is a library for spawning processes on a cluster of machines, and passing typed messages between them. The aim is to make using... Read full post

See all posts by this author
Jeremie Dimino
Jeremie Dimino joined Jane Street in 2012 where he continued to do what he enjoys: OCaml hacking and Open Source. He is responsible for automating... Read more
Most recent post:

Trivial meta-programming with cinaps

From now and then, I found myself having to write some mechanical and repetitive code. The usual solution for this is to write a code... Read full post

See all posts by this author
John Kilburg
Most recent post:

Speed Up

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

See all posts by this author
Jun Furuse
Most recent 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

See all posts by this author
Leo White
Most recent post:

A brief trip through Spacetime

Spacetime is a new memory profiling facility for OCaml to help find space leaks and unwanted allocations. Whilst still a little rough around the edges,... Read full post

See all posts by this author
Michael Bacarella
Most recent 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

See all posts by this author
Michael O'Connor
Most recent 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

See all posts by this author
Nathan Linger
Most recent 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 type even = Zero | Even_succ... Read full post

See all posts by this author
Pascal Zimmer
Most recent 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

See all posts by this author
Patrick Hahn
Most recent 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

See all posts by this author
Pavel May
Most recent 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

See all posts by this author
Ralph Douglass
Most recent 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

See all posts by this author
Robert Sclater
Most recent 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

See all posts by this author
Roshan James
Most recent 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

See all posts by this author
Sebastian Funk
Sebastian Funk joined Jane Street in 2014 after graduating in Computer Science from the University of Cambridge and has been primarily working in the Trading... Read more
Most recent post:

What a Jane Street dev interview is like

Are you thinking about applying to Jane Street for a developer role? Or already have a phone interview scheduled but unsure what to expect? Read... Read full post

See all posts by this author
Stephen Weeks
Stephen Weeks joined Jane Street in 2007, having previously worked on the MLton Standard ML compiler at NEC Research and at startups in the San... Read more
Most recent 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: module F12 (M : S1)... Read full post

See all posts by this author
Summer Project
Most recent 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

See all posts by this author
Todd Lubin
Most recent post:

When Bash Scripts Bite

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

See all posts by this author
Vladimir Brankov
Most recent post:

CPU Registers and OCaml

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

See all posts by this author
Yaron Minsky
Yaron Minsky joined Jane Street back in 2002, and claims the dubious honor of having convinced the firm to start using OCaml. He also spends... Read more
Most recent post:

How to design a tree diffing algorithm

For those of you interested in what what interns do at Jane Street, here’s a post from former intern Tristan Hume, on his work developing... Read full post

See all posts by this author