The D. E. Shaw Group interview experience Real time questions & tips from candidates to crack your interview

Desis Ascend Educare Fellowship

The D. E. Shaw Group
upvote
share-icon
3 rounds | 7 Coding problems

Interview preparation journey

expand-icon
Journey
My journey began, like many others, with curiosity and a desire to understand the world of technology. As a student pursuing a dual degree in Engineering Physics at IIT (BHU) Varanasi, I was always drawn to problem-solving and the intricacies of how things work. My academic path laid a solid foundation in computer fundamentals, further fueling my interest in web development, competitive programming, and AI. Starting with the basics, I immersed myself in learning programming languages like C and C++, which helped me develop a strong understanding of core concepts. I then expanded my skill set to include JavaScript, HTML, CSS, and eventually advanced frameworks such as React, Node.js, Next.js, and TypeScript. Each new language and tool opened up a world of possibilities, allowing me to build increasingly complex and sophisticated projects. Competitive programming became a significant part of my journey. I spent countless hours practising on coding platforms, striving to improve my problem-solving skills. The challenges were tough, but they taught me resilience, efficiency, and how to think on my feet. My hard work and dedication paid off, as I was ranked among the top 3.11 per cent globally and secured high positions in various coding contests. My academic and extracurricular experiences also played a crucial role in shaping my path. Organizing a Robotics Camp and qualifying for the final round of the DeShaw Ascend Educare Program honed my leadership and teamwork skills. These experiences allowed me to apply my technical knowledge to real-world scenarios, further strengthening my understanding. The internships I pursued were pivotal in my growth. One of the most transformative experiences was my internship at Salesforce Hyderabad as an Associate Member of Technical Staff (AMTS) intern. Here, I worked under the Life Sciences Cloud, contributing to the automation of the pre-screening process in clinical trials using Gen AI and Einstein GPT. This project not only solidified my technical expertise but also deepened my understanding of how technology can significantly impact the healthcare sector. In parallel, I worked on personal projects to explore emerging technologies like AI and facial recognition and built a full-stack web application using Next.js and TypeScript. These projects gave me the opportunity to apply my knowledge in practical contexts, further deepening my skills. Preparing for job interviews was another major milestone. It involved a lot of introspection—identifying my strengths and improving areas that needed work. I focused on mastering the fundamentals, sharpening my problem-solving abilities, and staying updated with the latest trends and technologies. My passion for learning and continuous improvement was key to successfully navigating the interview process. Looking back, my journey from learning the basics to landing my dream job was filled with challenges, but it was incredibly rewarding. Every step, challenge, and success has shaped me into the person I am today. My advice to anyone on a similar path is to stay curious, be resilient, and never stop learning. The road may be tough, but with determination and a love for what you do, you can achieve your goals.
Application story
The application journey began with an email inviting registration for the Desis Ascend Educare Program '22. The application form required a resume, achievement essays, transcripts, and a self-nomination explaining why I should be selected for the program over other applicants. This was followed by an online coding round and an interview round.
Why selected/rejected for the role?
I wasn't selected for the role as I was rejected in the final interview round. My preparation for the HR round was not up to the mark.
Preparation
Duration: 6 months
Topics: Data Structures like Graph, Trees, Stacks, Queues, LinkedList, Pointers, OOPS, Algorithms, Dynamic Programming
Tip
Tip

Tip 1: Practice 4-5 DSA problems daily.
Tip 2: Be thorough with the concepts.
Tip 3: Participate in regular contests.

Application process
Where: Other
Eligibility: 2025 graduates
Resume Tip
Resume tip

Tip 1: Create a clean, concise, and to-the-point resume.
Tip 2: Highlight key achievements in bold.

Interview rounds

01
Round
Medium
Online Coding Interview
Duration90 minutes
Interview date10 Sep 2022
Coding problem2

It happened at 6 p.m.

1. Search In A 2D Matrix

Easy
10m average time
90% success
0/40
Asked in companies
HSBCAdobeCIS - Cyber Infrastructure

You are given an m x n integer matrix matrix with the following two properties: Each row is sorted in non-decreasing order. The first integer of each row is greater than the last integer of the previous row. Given an integer target, return true if the target is in the matrix or false otherwise.

Problem approach

To solve the problem efficiently in O(log(m×n)), we can treat the matrix as a single sorted 1D array. Even though the matrix is 2D, its structure allows us to apply binary search principles. The matrix's rows are sorted, and the first element of each row is greater than the last element of the previous row. This guarantees that the entire matrix if flattened, would behave like a sorted 1D array. Instead of flattening the matrix explicitly, we can compute the index of any element in this virtual 1D array by calculating its corresponding row and column indices.

We perform a binary search by initializing two pointers: l at the start (index 0) and r at the end (m×n−1). At each step, we calculate the midpoint mid, which corresponds to an index in the virtual 1D array. We convert this index back to the matrix by using the formulas row = mid / n and col = mid % n to access the corresponding matrix element. We then compare the element at matrix[row][col] with the target, adjusting the search space accordingly. If the target is found, we return true; otherwise, the search continues until the pointers overlap. If the target is not in the matrix, the function returns false.

Try solving now

2. Longest String Chain

Moderate
0/80
Asked in companies
FacebookMathworksGroupon

You are given an array of words where each word consists of lowercase English letters.wordA is a predecessor of wordB if and only if we can insert exactly one letter anywhere in wordA without changing the order of the other characters to make it equal to wordB.For example, "abc" is a predecessor of "abac", while "cba" is not a predecessor of "bcad".A word chain is a sequence of words [word1, word2, ..., wordk] with k >= 1, where word1 is a predecessor of word2, word2 is a predecessor of word3, and so on. A single word is trivially a word chain with k == 1. Return the length of the longest possible word chain with words chosen from the given list of words.

Problem approach

To implement the solution, the first step is to sort the words by length. Sorting helps us ensure that when we attempt to create a chain, we are only comparing shorter words with longer ones. This is crucial because a shorter word can only be a predecessor of a longer word. After sorting, we use a dynamic programming approach where we maintain an array lis (Longest Increasing Subsequence) to store the length of the longest word chain that ends at each word. Initially, every word is its own chain, so we initialize the lis array to all ones.

Next, we loop over each word in the sorted list and compare it with all the words that come before it (because they are shorter). For each pair of words, we use the helper function isChainable to check if the shorter word can be transformed into the longer word by adding exactly one character in any position. If the shorter word is a valid predecessor, we update the current word's chain length by setting lis[i] = max(lis[i], lis[j] + 1) where i is the index of the current word, and j is the index of the shorter word. The helper function isChainable works by iterating through both words and confirming that we can insert one extra character into the shorter word to match the longer one. Finally, the answer is the maximum value in the lis array, which represents the length of the longest possible word chain.

Try solving now
02
Round
Medium
Video Call
Duration30 minutes
Interview date24 Sep 2022
Coding problem2

The round took place from 4 p.m. to 4:35 p.m.

1. Search In A Rotated Sorted Array II

Easy
0/40
Asked in companies
AmazonFacebookThe D. E. Shaw Group

You are given a rotated sorted array 'a' of length 'n' and a 'key'. You need to determine if the 'key' exists in the array 'a'.


The given sorted array is rotated from an unknown index 'x'. Such that after rotation the array became [a[x], a[x+1]...., a[n-1], a[1]..., a[x-1]], (0-based indexing). For example, if the array is [1, 2, 3, 4, 5] and x = 2 then the rotated array will be [3, 4, 5, 1, 2, 3].


Return True if the 'key' is found in 'a'. Otherwise, return False.


Note: Array ‘a’ may contain duplicate elements.


Example:

Input: a = [6, 10, 1, 3, 5], key = 3

Output: True

Explanation: The array 'a' contains the 'key' = 3, so we return True.


Problem approach

To begin solving this problem, let’s first discuss a brute-force approach. Since the array is rotated at an unknown pivot, one way to find the target is to perform a simple linear search. In this approach, we iterate over each element in the array from start to end, comparing each one to the target. If we find the target, we return true; otherwise, we return false after checking all elements. While this approach is simple, it takes O(n) time, which is not optimal, especially for larger arrays. Given that the array is partially sorted, we can improve this by applying a binary search, which reduces the time complexity significantly.

To optimize, we can use binary search by taking advantage of the fact that one-half of the rotated array is always sorted. We maintain two pointers, l and r, to represent the current search bounds. First, we compute the middle index mid. If the element at mid equals the target, we return true immediately. If not, we check whether the right or left half of the array is sorted. If the right half (nums[mid] to nums[r]) is sorted and the target lies within this range, we search in the right half by setting l = mid + 1; otherwise, we search in the left half by setting r = mid - 1. Similarly, if the left half is sorted, we check whether the target lies within this range. If it does, we narrow our search to the left half, otherwise, to the right.

Try solving now

2. Maximum Depth Of A Binary Tree

Easy
15m average time
85% success
0/40
Asked in companies
FacebookWalmartRed Hat

Given the root of a binary tree, return its maximum depth. A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Problem approach

To find the maximum depth of a binary tree, the recursive approach is ideal. We start by defining a helper function depth that will calculate the depth of the tree for each node. In the main function maxDepth, the base case checks if the root is NULL, meaning the tree is empty, and returns a depth of 0. If the tree has nodes, we call the depth function, which will recursively traverse the tree starting from the root node, exploring both the left and right subtrees. For each node, the depth function is responsible for returning the maximum depth between the left and right subtrees, and it adds 1 to account for the current node.

In the recursive depth function, for each node, we recursively call the function on its left and right child nodes. We compute the depth of the left subtree and the right subtree. The function then returns the larger of the two depths (i.e., max(left, right) + 1). Meanwhile, the variable ans keeps track of the overall maximum depth encountered during the recursion. After processing all nodes, the final maximum depth is stored in ans, which is returned by the maxDepth function. This approach ensures that we check all nodes and find the longest path from the root to any leaf node in the binary tree.

Try solving now
03
Round
Easy
HR Round
Duration30 minutes
Interview date25 Sep 2022
Coding problem3

It happened at 11:00 AM.

1. HR question

If you are currently enrolled in an ongoing semester of your college and you are simultaneously selected for a mentorship program where you are a mentee then how would you manage them both together?

Problem approach

Tip 1: Briefly explain about the tasks at hand for the upcoming time
Tip 2: Set and show the priorities you have decided for them
Tip 3: Be as honest and confident as possible

2. HR question

If a team member of yours backs out at a crucial point in the project then as a member how would you manage it?

Problem approach

Tip 1: Include real-life references or stories about any such an event
Tip 2: Explain the problem at hand, the solution you developed and the implementation
Tip 3: Finally explain the result of the action and the learnings from that event

3. HR question

Why do you want to be a part of this Desis Ascend Educare mentorship program?

Problem approach

Tip 1: Be prepared for this question since this forms the most crucial question
Tip 2: Explain your schedule and timeline
Tip 3: Show your dedication to this program

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

What is recursion?

Choose another skill to practice
Similar interview experiences
company logo
SDE - 1
3 rounds | 7 problems
Interviewed by OYO
4657 views
0 comments
0 upvotes
company logo
SDE - Intern
2 rounds | 3 problems
Interviewed by Amazon
961 views
0 comments
0 upvotes
company logo
SDE - 1
2 rounds | 5 problems
Interviewed by Meesho
6450 views
0 comments
0 upvotes
company logo
SDE - 1
3 rounds | 9 problems
Interviewed by Salesforce
3452 views
0 comments
0 upvotes