I applied online. I interviewed at IMC Trading (Amsterdam) in Jul 2018
Interview
The initial application process was simple and relatively quick. I only needed to provide my CV and complete an online personality test. I got a phone screen shortly after, which was only five minutes long and mostly about the next stage.
The next stage was a take-home assessment consisting of three short projects and a Skype interview to discuss them. The projects involved implementing a very simple game, a very simple interface and a design pattern. Reading Cracking the Coding Interview or Elements of Programming Interviews would have been more than enough preparation. I was given 48 hours to complete them. The Skype interview was around an hour long and was mostly spent with the interviewers (who were software engineers at IMC) watching me slowly trying to fix my incorrect implementation of a design pattern.
For the final stage, I was invited to Amsterdam for a day of interviews. Flights and the hotel were paid for by IMC. There were four interviews: two technical interviews, a CV-based interview and a HR interview. The technical interviews focussed on designing and then implementing a trade matching engine (the interviewers were the same as I'd had for my Skype interview). The CV-based interview was short and was with the head of the software team. The HR interview was about verifying the results of the personality test.
I got my result the next working day, along with detailed feedback.
My performance wasn't great, but it would have been quite easy to fix.
* Revise big O behaviour of data structures
* Focus on writing as much working code as possible! I got bogged down fixing things and got nowhere in my second technical interview.
* Emphasise achievements in the CV interview. My feedback criticised my lack of bold/creative/experimental work.
Interview questions [2]
Question 1
What is the big O behaviour of operations on a heap? Of a hashmap?
How would you implement a trade matching engine? The API for it should support:
* adding Buy/Sell orders (these methods should return a Trade if an existing order matches the new one),
* deleting pending orders
* getting market depth/demand (i.e. range of buy/sell prices and total volume of pending orders at each price).
I applied through college or university. I interviewed at IMC Trading (Chicago, IL)
Interview
for online assessment, there was a question about calculating info from an order book. helps if you know how one works beforehand. only one question and coding preferred in C++ or java.
one technical round and one hr round. technical round was moderately hard. hr round was about your personality, asking about general questions to check if you fit in their workspace.
Coding Challenge, Recruiter Phone Screen, Project Interview, Onsite. Coding Challenge was definitely on the challenging side of those I've taken. They dive deep into your past & current experiences for project interview. Onsite was challenging -- a long problem statement.
Interview questions [1]
Question 1
Why IMC? Challenging Project? Favorite language feature?