I had two phone interviews and failed the second one. Both interviews used a collaborative text editor for questions involving code.
The first interview covered a range of topics. I was asked to name 5 two-letter unix commands and how to find the number of files in a directory and all its subdirectories.
The next topic was functional programming. I had to explain what a fold is, write down the type of a fold function (in a language of my choice, not necessarily OCaml).
I was asked about tail recursion and tail calls in general.
Then I had to write a function returning all permutations of a list (again, in a language of my choice).
I was asked if I knew what memoization is and had to write a function that returned a memoized version of a function that was passed in. We then discussed the problems with my implementation (the cache I used would grow larger whenever the function was called with new elements).
Interview questions [1]
Question 1
There is a company, modelled as a tree of employees and the people reporting to them. Every employee has a fun value. At a party, every employee only has fun if his direct boss is not at the party, otherwise he adds fun corresponding to his fun value to the party. Write code to find the maximum total fun that can be had at the party.
It was a very quick and painless process. Recruiter very responsive, kind interviewers. High implementation and difficult problems, so failed onsite after 3 interviews and a Question and Answer Session.
Did not pass the initial coding round. I tried to explain my thought in details to the interviewer but failed to translate my thought into code. So far interviewer is very nice.
I applied online. I interviewed at Jane Street (New York, NY)
Interview
My experience interviewing at Jane Street was definitely challenging, but also surprisingly collaborative. Instead of focusing only on whether I could get the right answer quickly, the interviewers were much more interested in how I approached problems and explained my thinking. I worked through a few coding questions involving data structures and algorithms, and there were also some probability-style questions that tested logical reasoning. The interviewers were clearly very sharp, but they were also approachable and encouraged me to talk through my thought process the entire time. When I got stuck, they would sometimes guide me with small hints so we could keep exploring the problem together. Overall, it felt less like a typical high-pressure interview and more like a thoughtful technical conversation with experienced engineers.
Interview questions [1]
Question 1
“What is the expected number of coin flips needed to get two heads in a row?”