Magic-trace: Diagnose tricky performance issues with Intel Processor Trace

Intel Processor Trace is a hardware technology that can record allprogram execution flow along with timing information accurate toaround 30ns. As far as I ca... | Continue reading


@blog.janestreet.com | 2 years ago

Hiring a Developer Educator

We spend a lot of time on education at Jane Street. Like, really alot. | Continue reading


@blog.janestreet.com | 2 years ago

What the interns have wrought, 2021 edition

It’s the end of another dev internship season, and this one markedsomething of a transition, since halfway through the season, NY-basedinterns were invited b... | Continue reading


@blog.janestreet.com | 2 years ago

How to Build an Exchange

UPDATE: We are full up. Tons of people signed up for the talk, and we’renow at the limit of what we feel like we can support in the space. Thanks forall the ... | Continue reading


@blog.janestreet.com | 2 years ago

What's in a name? (Olin Shivers – 2014)

In the once upon a time days of the First Age of Magic, the prudent sorcererregarded his own true name as his most valued possession but also the greatestt... | Continue reading


@blog.janestreet.com | 3 years ago

Hardcaml update (OCaml for FPGA design)

I am pleased to announce that we have recently released a slew of newHardcaml libraries! | Continue reading


@blog.janestreet.com | 3 years ago

Finding Memory Leaks with Memtrace

Memory issues can be hard to track down. A function that onlyallocates a few small objects can cause a space leak if it’s calledoften enough and those object... | Continue reading


@blog.janestreet.com | 3 years ago

The not-so-simple task of comparing two memory allocators

Since version 4.10, OCaml offers a new best-fit memory allocatoralongside its existing default, the next-fit allocator. At JaneStreet, we’ve seen a big impro... | Continue reading


@blog.janestreet.com | 3 years ago

Signals and Threads, a new podcast from Jane Street

I’m excited (and slightly terrified) to announce that Jane Street isreleasing a new podcast, called Signals andThreads, and I’m going to be thehost. | Continue reading


@blog.janestreet.com | 3 years ago

What the Jane Street interns have wrought, 2020

It’s been an unusual internship season. | Continue reading


@blog.janestreet.com | 3 years ago

Low latency multipliers and cryptographic puzzles

At Jane Street, we have some experience using FPGAs for low-latencysystems–FPGAs are programmable hardware where you get the speed of anapplication-specific ... | Continue reading


@blog.janestreet.com | 3 years ago

Much More Efficient Self-Play Learning in Go

At Jane Street, over the last few years, we’ve been increasingly exploring machine learning to improve our models. Many of us are fascinated by the rapid imp... | Continue reading


@blog.janestreet.com | 3 years ago

Using ASCII waveforms to test hardware designs

At Jane Street, an “expecttest” is atest where you don’t manually write the output you’d like to checkyour code against – instead, this output is captured au... | Continue reading


@blog.janestreet.com | 3 years ago

Chrome extensions: Finding the missing proof

Web browsers have supported customplug-ins andextensions sincethe 1990s, giving users the ability to add their own features andtools for improving workflow o... | Continue reading


@blog.janestreet.com | 3 years ago

Troubleshooting Systemd with SystemTap

When we set up a schedule on a computer, such as a list of commands torun every day at particular times via Linux cronjobs, weexpect that schedule to execute... | Continue reading


@blog.janestreet.com | 4 years ago

Deep-Learning the Hardest Go Problem in the World

Updates and a New Run | Continue reading


@blog.janestreet.com | 4 years ago

Using Python and OCaml in the Same Notebook

The cover image is based on Jupiter family by NASA/JPL. | Continue reading


@blog.janestreet.com | 4 years ago

Of Pythons and Camels

Welcome to another post in our series of how to use OCaml for machine learning.In previous posts we’ve discussed artistic style-transfer andreinforcement lea... | Continue reading


@blog.janestreet.com | 4 years ago

Putting the I Back in IDE: Towards a GitHub Explorer

Imagine a system for editing and reviewing code where: | Continue reading


@blog.janestreet.com | 4 years ago

Commas in big numbers everywhere: An OpenType adventure

My job involves a lot of staring at large numbers, mostly latencies innanoseconds, and picking out magnitudes like microseconds. I noticedmyself constantly c... | Continue reading


@blog.janestreet.com | 4 years ago

Effective ML

Harvard is again teaching OCaml to its first-year students, and Greg Morrissettagain this year invited me to give a guest lecture. I gave a version of theEff... | Continue reading


@blog.janestreet.com | 4 years ago

What the (Jane Street) interns have wrought (2019 edition)

Jane Street’s intern program yet again is coming to an end, which is anice opportunity to look back over the summer and see what they’veaccomplished. | Continue reading


@blog.janestreet.com | 4 years ago

A Look at OCaml 4.08

Now that OCaml 4.08 has been released, let’s have a look at what wasaccomplished, with a particular focus on how our plans for4.08 fared. I’ll mostly focus o... | Continue reading


@blog.janestreet.com | 4 years ago

Competing Approaches to Functional Reactive Programming

As anyone who has looked into functional reactiveprogramming (FRP)knows, there are lots of competing approaches to it, and not a lot of conceptualclarity abo... | Continue reading


@blog.janestreet.com | 4 years ago

Jane Street's Thoughts from AAAI 2019

At Jane Street, for the last several years, we have been increasingly interestedin machine learning and its many use cases. This is why it was exciting whene... | Continue reading


@blog.janestreet.com | 4 years ago

OCaml, the Ultimate Refactoring Tool

This is why I love OCaml. | Continue reading


@blog.janestreet.com | 5 years ago

Proofs (and Refutations) Using Z3 (2018)

People often think of formal methods and theorem provers as forbiddingtools, cool in theory but with a steep learning curve that makes themhard to use in rea... | Continue reading


@blog.janestreet.com | 5 years ago

Playing Atari Games with OCaml and Deep Reinforcement Learning

In a previous blog postwe detailed how we used OCaml to reproduce some classical deep-learning resultsthat would usually be implemented in Python. Here we wi... | Continue reading


@blog.janestreet.com | 5 years ago

L2 Regularization and Batch Norm

This blog post is about an interesting detail about machine learningthat I came across as a researcher at Jane Street - that of the interaction between L2 re... | Continue reading


@blog.janestreet.com | 5 years ago

How to choose a teaching language

If you were teaching a programming course, what language would you teach it in? | Continue reading


@blog.janestreet.com | 5 years ago

Core_bench: better micro-benchmarks through linear regression

This post is meant to be an introduction toCore_bench, ourmicro-benchmarking library for OCaml. Core_bench is similar to Haskell’smicro-benchmarking library,... | Continue reading


@blog.janestreet.com | 5 years ago

How to shuffle a big dataset

At Jane Street, we often work with data that has a very lowsignal-to-noise ratio, but fortunately we also have a lot of data.Where practitioners in many fiel... | Continue reading


@blog.janestreet.com | 5 years ago

Deep learning experiments in OCaml

Last year we held a machine learning seminar in our London office,which was an opportunity to reproduce some classical deep learningresults with a nice twist... | Continue reading


@blog.janestreet.com | 5 years ago

User level TCP, connecting to Kernel subsystems, and incr_dom at Jane Street

Yet again, intern season is coming to a close, and so it’s time tolook back at what the interns have achieved in their short time withus. I’m always impress... | Continue reading


@blog.janestreet.com | 5 years ago

Plans for OCaml 4.08

With the external release of OCaml 4.07.0 imminent, we in Jane Street’sTools & Compilers group have been planning what we want to work on forinclusion in... | Continue reading


@blog.janestreet.com | 5 years ago

Static access control using phantom types (2008)

We thought that phantom types would be an appropriate topic for our first realpost because they are a good example of a powerful and useful feature of OCamlt... | Continue reading


@blog.janestreet.com | 5 years ago