DE Shaw | SDE1 | Hyderabad | Reject
Summary
I interviewed for an SDE1 position at DE Shaw in Hyderabad, enduring a rigorous multi-round process. Despite my non-CS background and a strong performance, I ultimately received a rejection.
Full Experience
My interview journey for the SDE1 role at DE Shaw began with a recruiter contact via email, followed by a Hackerrank test. The test comprised 8 MCQs covering CS fundamentals, OS, DBMS, and CN, along with 8 aptitude questions focusing on probability and P&C. There were also 3 coding problems, which I felt were LeetCode medium difficulty, each with a strict time constraint. I was only able to get the first question's code fully working and partially coded the other two. I received a rejection email a few days later, but the recruiter contacted me again, stating they liked my resume and shortlisted me for a different team, which restarted the process.
My interviews commenced on a Sunday morning.
Round 1 - Interview
This round started with a coding question: finding the number of subarrays with exactlyk odd numbers. I explained the two-pointers approach. Following this, there were questions on OOPs concepts like abstract classes and interfaces, a SQL query, and basic React-related questions, specifically why a React website might experience slow performance.
Round 2 - Analytics/Prob Stat Interview
This round revolved around random number generators. We delved into how they can be implemented and methods to measure their randomness. I discussed concepts like entropy and how to infer randomness from deviations from ideal answers, mentioning weighted sums of probabilities. The interviewer seemed impressed by my thought process and asked me to implement code to calculate deviation, inquiring about tolerable error margins. Subsequently, I was given two puzzles. One involved finding a single bag with heavier coins (1.1g vs 1g) out of 10 bags using a weighing machine, and the other was a standard puzzle. After the puzzles, I was asked to find the longest reward path in a matrix, where movement is restricted to down or right (identified as an introductory DP problem), followed by another SQL query.Round 3 - DSA Interview
My third round focused heavily on Data Structures and Algorithms. The first question was to find the subarray with thekth largest sum from all possible subarrays of a given array. I proposed an approach using a prefix sum array and maintaining a min-heap of size k for optimization. I started coding, but the interviewer stopped me, seemingly convinced by my approach. We then discussed searching in a rotated sorted array. He then posed a follow-up: how would I solve it if the array could be sorted and rotated in any arbitrary order? I discussed comparing first, last, and middle elements, but struggled a bit with the generalized case. The interviewer suggested moving to a new question. The next problem was to determine if a given string could be formed using words from a provided vector. I explained a Trie-based approach, and when asked for a DP solution, I came up with one and wrote down the pseudocode. Finally, another SQL query was asked, which the interviewer later clarified was related to a correlative subquery.
Round 4
This final round was largely centered on databases, covering topics like normalization, applying normalization to a given database schema, and questions related to OS and OOPs. I mentioned my knowledge of design patterns when asked about Design. More SQL queries were asked at the end. I informed the interviewer that I had learned the core CS syllabus just in the week leading up to the interview, which impressed him given my non-CS background. However, he noted a slight risk associated with my background and that the firm would decide if they wanted to take that risk. I was offered an operations role, but I politely declined, expressing confidence in my ability to handle the learning curve for a development role. It was 5:30 PM, and the recruiter mentioned they would contact me on Monday for the HR round. I received the rejection on Tuesday.I never anticipated making it to the final round at DE Shaw. The rejection was momentarily disappointing, but the confidence and knowledge I gained through the preparation process were immense. Most interviewers were complimentary, affirming I was on the right track, even if they did consume my entire Sunday. I strongly feel that if companies are hesitant about non-CS backgrounds, they shouldn't extend interview invitations in the first place.
Interview Questions (7)
Given an array of integers, find the number of subarrays that contain exactly k odd numbers.
You have 10 bags, each containing an infinite supply of coins. In 9 bags, each coin weighs 1 gram. In one specific bag, each coin weighs 1.1 grams. Using a weighing machine, what is the minimum number of measurements required to identify the bag with the heavier coins?
Given a matrix, find the path from the top-left cell to the bottom-right cell that maximizes the total 'reward' (sum of values along the path). You are only allowed to move down or right at each step.
Given an array of integers, consider all possible contiguous subarrays. Return the subarray whose sum is the kth largest among all subarray sums.
Search for a target value in a sorted array that has been rotated at an unknown pivot point. The array may contain duplicate elements.
Given a vector (list) of words and a target string, determine if the target string can be formed by concatenating one or more words from the given list. Words can be reused.
An SQL query problem that required the use of a correlative subquery for its solution.
Preparation Tips
My preparation for this interview was quite intense and focused. I dedicated the last week before the interview to thoroughly learning the core CS syllabus, including operating systems, database management systems, and computer networks. For coding, I practiced various data structures and algorithms, particularly focusing on problems that could be solved with two-pointers, dynamic programming, and efficient searching techniques like those used in rotated sorted arrays. My preparation also included understanding OOPs concepts and basic React principles for front-end related discussions, and SQL queries were a consistent theme throughout my practice.