All Companies

IMC Trading Interview Questions

34 real interview questions for Software Engineer roles at IMC Trading.

Showing 1–30 of 34 questions

1

Implement a Tic-Tac-Toe game.

Software EngineerSoftware Engineer
2

What is a hashmap?

Software EngineerSoftware Developer
3

What is the difference between threading and multiprocessing?

Software EngineerSoftware Engineer
4

Complete the function findValuation that returns the expected price of a house using linear interpolation, given arrays of historic house areas and prices. The function should round the result to the nearest integer. Function signature: findValuation(reqArea: int, area: list of int, price: list of int) -> int, where reqArea is the area of the candidate house, area[i] is the area of the ith house sold, and price[i] is its price. Constraints: 500 < reqArea < 10^5, 500 < area[i] < 10^5 for all i.

Software EngineerSoftware Engineer
5

Is the total number of distinct unsigned 32-bit integers different from the total number of signed 32-bit integers?

Software EngineerSoftware Engineer
6

Can an O(1) algorithm be made faster?

Software EngineerSoftware Engineer
7

How would you explain the difference between a stack and a queue to a non-technical person?

Software EngineerSoftware Engineer
8

What is the time complexity of various operations (such as insert, erase, and find) in std::set?

Software EngineerSoftware Engineer
9

1) What is the minimum number of moves required for a knight to reach a target square on a chessboard when a bishop is also available? 2) Implement a stack that supports push, pop, peek, as well as sum and increment operations.

Software EngineerSoftware Developer
10

Describe the data structures and algorithms you would use to design a program that keeps track of checked-out books for a library. The system should be able to: 1) Check out books for a member who has a library card, 2) Process book returns, 3) Find all books that are overdue and identify who has them checked out, and 4) Find all books that will be due tomorrow. Note: New releases and popular books have shorter checkout periods than normal books.

Software EngineerSoftware Engineer
11

Is an immutable object always thread safe?

Software EngineerSoftware Engineer
12

Does searching through a sorted binary search tree always have better time complexity than performing binary search on a sorted array?

Software EngineerSoftware Engineer
13

What is the Big O time complexity of operations performed on a heap? What about a hashmap?

Software EngineerSoftware Engineer
14

How would you implement a trade matching engine? The API should support: 1) adding Buy/Sell orders, which should return a Trade if an existing order matches the new one; 2) deleting pending orders; 3) getting market depth or demand, i.e., the range of buy/sell prices and total volume of pending orders at each price.

Software EngineerSoftware Engineer
15

1. Find the longest possible valid password in a given string. 2. Find the total number of stops an elevator takes to serve X people. 3. Find the number of unique countries in a 2D matrix.

Software EngineerSoftware Engineer
16

In a 2D array of integers, adjacent positions (vertically or horizontally) are considered part of the same "country" if they contain the same integer. Given a 2D array of integers, compute the number of distinct countries in the array.

Software EngineerSoftware Developer
17

What is the difference between a Set and a List?

Software EngineerSoftware Developer
18

People are waiting for an elevator in a hotel that has floors numbered 0 to M. The elevator has a limit of X people and a weight limit of Y. There are N people standing in a queue at the ground floor. You are given two arrays: A[N], where each element is the weight of a person, and B[N], where each element is the floor each person wants to go to. The elevator goes up, stopping at each requested floor, then returns to the ground floor. Write a solution to determine how many times the elevator will stop.

Software EngineerSoftware Developer
19

Given a binary tree, return all nodes whose values are greater than those of all their ancestors (i.e., nodes that are visible from the root).

Software EngineerSoftware Developer
20

Determine if two given words are anagrams of each other.

Software EngineerSoftware Developer
21

Complete the function findValuation which returns the expected price of a house using linear interpolation of given data. The function must return the price rounded to the nearest integer. Function signature: findValuation(reqArea: int, area: list of int, price: list of int) -> int. Constraints: 500 < reqArea < 10^5, 500 < area[i] < 10^5 for all i.

Software EngineerSoftware Engineer
22

Explain the concepts of a queue and a stack to a layperson.

Software EngineerSoftware Engineer
23

What is the time complexity of different std::set operations?

Software EngineerSoftware Engineer
24

1) What is the minimum number of moves required for a knight, when a bishop is also available, to reach a target square on a chessboard? 2) Implement a stack data structure that supports push, pop, and peek operations, as well as additional functions to return the sum of all elements and increment all elements by a given value.

Software EngineerSoftware Developer
25

Describe the data structures and algorithms needed for a program that keeps track of checked out books for a library. The program should: 1. Check out books for a member with a library card, 2. Return books, 3. Find all books that are overdue and who has them checked out, 4. Find all books that are due tomorrow. Note: New releases and popular books have shorter checkout periods than normal books.

Software EngineerSoftware Engineer
26

Implement a tic-tac-toe game.

Software EngineerSoftware Engineer
27

Is an immutable object always thread safe? Explain your reasoning.

Software EngineerSoftware Engineer
28

Is searching through a sorted binary tree (binary search tree) always more efficient in terms of complexity than binary search?

Software EngineerSoftware Engineer
29

What is the Big O notation for common operations performed on a heap? What about operations on a hashmap?

Software EngineerSoftware Engineer
30

How would you implement a trade matching engine? The API for it should support: (1) adding Buy/Sell orders (these methods should return a Trade if an existing order matches the new one), (2) deleting pending orders, and (3) getting market depth or demand (i.e., range of buy/sell prices and total volume of pending orders at each price).

Software EngineerSoftware Engineer

Want the full solutions?

Get detailed walkthroughs for all 94+ IMC Trading questions with Quant Blueprint.

Get Started