Preparing for a Software Engineering interview at Jane Street
Over the years we’ve done our best to make our interview processes more transparent to applicants. While many candidates show up knowing something about our interviews, much of the information floating around on the internet is outdated or wrong.
Hiring is a challenge without easy solutions—after all, we’re trying to evaluate human beings on multiple dimensions in a contrived environment! What we describe here is the best balance we’ve found so far between being able to hire excellent people and not taking too much time—yours or ours. But we know it’s far from perfect. This page is meant to help interested candidates get a better sense of what to expect in our Software Engineer interview process.
You can find more detailed information about the evolution of our SWE interview process on our tech blog, but the most critical bits are here on this page.
Before the interviews
When you submit your application to Jane Street for any role, it’s reviewed by an actual human. We respond to every application we receive, ideally within a week or so. Depending on your background we might also suggest you consider another position. We’ll always be up front with you about what roles you’re being considered for (or aren’t), so please also let us know what you’re interested in throughout the process.
If you’ve applied or interviewed before don’t let that stop you from trying again! We reconsider people all the time—people add to their experiences and our needs often change as Jane Street grows—so if it didn’t work out a couple of years ago you might have a better chance this go-around.
The structure of SWE interviews at Jane Street
There are a few paths you can take to becoming a software engineer at Jane Street, but they all involve a technical interview that takes place over the phone or on Zoom, and continue with later-round interviews that are mostly, if not exclusively, focused on collaborating on a series of coding problems.
We expect you to write code in a real programming language in these interviews, not pseudocode. You can use any programming language you’d like, but we strongly recommend you use the one you’re most familiar with and that best suits the problem (it’s fine to change your mind as you’re exploring the problem). You should be comfortable with basic data structures and APIs in your language of choice.
While interviewing, we’re really interested in learning how you work. This means the journey through the interview is a lot more important than the snapshot of the solution at the end of it.
So, what do we look for?
From our perspective, the main thing we want to figure out when we interview someone is: are they someone we want to work with?
To that end, we try to avoid algorithm bingo and puzzles with clever “aha” solutions. We prefer more open-ended problems that have several plausible angles of attack and maybe even no single best answer. These problems give us more freedom to work together and to see how the candidates’ thinking plays out. We are looking for candidates who engage in clear and productive discussions about the problem at hand.
That sounds nice enough, but it’s a bit high-level and hand-wavy. So here’s a more concrete list of suggestions that follow from our overall approach:
- Be nice
- Be clear
- Know your language
- Know what you don’t know
We don’t ask software engineers to do mental math, or math olympiad questions, or to contemplate logic puzzles. SWE interviews are about programming, plain and simple. There are other jobs at Jane Street that do care about mental math and logic puzzles, for good reason. Just not this one. We also don’t award bonus points for using a functional language like OCaml. Please don’t use OCaml just because you think it will make us happy. We want to see you at your best, so you should use the language you’re most comfortable with. If OCaml isn’t your strongest language, then don’t use it. We don’t go out of our way to hire people who are already familiar with functional programming. In practice, it’s just not that hard for strong programmers to pick it up after they start.
What can you do to prepare?
This part is short and sweet. Practice.
If you haven’t applied for a SWE role at Jane Street yet but feel you’re ready let us make that easy on you. Fill out a few quick fields, upload your resume, and we’ll be in touch soon!