D. E. Shaw visited our campus (VJTI, Mumbai) in the last week of August 2020 for a two-month software development internship for the year 2021.
Online Coding Round (95 minutes): Each coding question was separately timed.
- Given an array of 10-digit numbers, you have to find the number in the array which is the closest to all the other numbers. A number is said to be close to the other if there are less than k different digits at corresponding positions in the number. Eg: 1234567890 and 1234567789 differ at 3 places.
The input given was an array of numbers and the value of k. Numbers could be preceded with 0s. In case 2 numbers are equally close to all other numbers, return the least of the two. [25 minutes]
- Given a sequence of numbers, return the position of a particular input number in the sequence. The sequence was such that there were no numbers that had 4 in it.
Input: 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15
N = 15(Find position of the number 15)
The input consisted of large numbers as well. [35 minutes]
- It was a graph-based question. A dog had to catch a cat. Given input was time t, the nodes in the graph as well as the distance between two nodes. At t = 1, the game begins and the dog takes the first step towards catching the cat. At t = 2, the cat takes a step to reduce the chances of being caught. Both of them alternatively take their steps. The question was to determine whether the cat would be caught within t seconds. [35 minutes].
10 students out of 130+ students made it to the next round.
Technical Interview Round CodePair (60-75 minutes): The interview started with the interviewer asking me about myself. I introduced myself and went on to talk about my projects. I made sure that I talk more about stuff that I knew to invite follow-up questions regarding the same. The interviewer asked me to talk in detail about my most recent project.
It was a database management project so a few questions related to that followed.
- What database did you use?
- Why did you use it?
- What changes would you make to this existing project?
I answered each question in detail. He was satisfied with the answers, and we moved straight to coding.
The question given was: https://leetcode.com/problems/remove-duplicate-letters/
The interview told me at the beginning that he was only expecting me to explain an approach to him and not actually code the solution. I started with clarifying the question and gave him a naive approach which I explained using a few test cases. He gave me a few hints along the way. After quite some time, I was finally able to come with the most optimised solution and explained it to him. I had not completely thought of all the edge cases that I may be failing. The interviewed told me that I had 4 minutes to code it up and test it against a sample input. Due to lack of time and pressure to code quickly, my code failed against the test case.
He then went on to ask my language of preference(C++) and asked me some questions related to that.
- Can a pointer have a NULL value?
- What is polymorphism? Explain its types.
- What are virtual functions?
- How are they implemented? I was expected to explain the concept of vptr and vtables.
I was then asked Database Management related questions.
- What are the ACID properties? Explain each one with an example.
At every stage of explaining a property, I was asked to follow up with questions. For example, can you explain how and when the database is said to be inconsistent? How do you avoid it?
We had a discussion about various normal forms and dependencies as well.
- I was asked a few OS questions related to multithreading. Memory management questions were also asked. Since I was not very sure of these concepts, I wasn’t able to give a satisfactory answer.
Two students were selected for further rounds and I didn’t make the cut.
- Make sure that you are thorough with CS concepts beforehand. Our interview rounds were proponed which gave us barely any time to brush up anything. Hence it will be helpful if one is confident about core concepts ahead of time.
- Even when you are explaining the approach to a question, try to parallelly think about how you would code it.
- Read the previous interview experiences. It would give a fair idea of the kind of questions one should expect.
- For a company like DE Shaw, practicing medium and hard difficulty level coding questions would be the way to go.
All the best!