Software Engineer Alex ten Brink explains our philosophy to hiring.

How did you get involved with the IMC hiring process?
I applied to IMC in 2016, based on a friend’s recommendation to check out jobs in algorithmic trading. I’ve always been into programming – ever since my dad gave me a graphics calculator in high school – and studied computer science for my undergrad and then for my masters. Because of my technical knowledge of algorithms, which was the focus of my masters, I was quickly invited to take on an interviewer role. Fast-forward seven years and I’ve done dozens of interviews, especially for the India office, as I was supporting the India desk in my technical role until the Mumbai office moved fully onshore.
How do you like being on the other side of the table?
I like interviewing. It’s generally pretty fun. Plus, I’m the sort of person who enjoys tweaking things to make them perfect, be it program code or an interview process. With our hiring process, we’re always iterating in our quest for continuous optimisation, and that encompasses not just how we design our technical assessment but also how we conduct interviews based on what works for each region.
What’s your role been in refining the hiring process?
Our bespoke technical assessment was originally designed when we were only making a handful of hires a year, but as we grew – and having done a lot of interviews myself in that time – I spotted that there was an opportunity to make the assessment more streamlined. I tested the new version in a couple of interviews, as I had the experience to react as needed if any of it wasn’t working as we hoped. It was then tested with a smaller group of interviewers before we rolled it out in India and Amsterdam. Now, the process is much quicker for our teams to conduct and, based on the positive feedback we’ve received from candidates, a more enjoyable experience for them too!
So, what is the philosophy behind our hiring process?
A lot of interviews you do at big tech companies are somewhat divorced from the actual job, asking a lot of abstract and theoretical questions. We wanted to flip that approach on its head, so we have focused on designing our hiring assessment to mimic what it would be like to actually work here. Admittedly, we do a first round of automated LeetCode questions, which are purely theoretical, but this is just a time-saving filter, in order to ensure that only suitable candidates are invited to a second-stage interview. The second-stage interview is split into two parts: a discussion that emulates talking through a problem with an IMC colleague; and a programming test, where the candidate works on an approximation of our actual trading system that enables traders to get the trades they want.
Why has IMC taken this approach to the hiring process?
In the second-stage interview, we’re really focused on observing your way of working. In fact, we don’t even care that much about the end product. Candidates get a taste of the kinds of tasks they would be working on every day at IMC, while we can assess how they work through a challenge. It tests your problem-solving skills, how fast you are to pick up new things, how motivated you are to learn from your mistakes – these are all really important to the IMC culture.
How does the assessment work in practice?
Whether in-person or remote, candidates are provided with a handout that details the interview process. We give a short introduction and complete the technical set up, before commencing with the assessment. In the coding test, we can see both the candidate and their work on our screen in real time. You can talk through your thought process as you go, but it’s not absolutely necessary as we can generally tell by your facial expression and body language what you’re thinking while you’re coding, and if we want clarification, we’ll ask you to explain your approach.
What are you testing in the assessment?
In the assessment we’re testing your communication and programming skills. Of course we’re looking for you to demonstrate familiarity with C++, basic programming techniques, ability to read code, and knowledge of the standard algorithms. But we’re also looking at your soft skills. How well do you communicate? How do you cope with criticism? How do you work through a challenge? Above all, we’re looking for whether you’re genuinely interested in getting to the root of a problem.
What’s the biggest myth you’d like to dispel about the hiring process?
A lot of people think they need to answer everything correctly. But that’s not the case at all. We will ask progressively harder questions because we want to see how far you get. If you get something wrong or don’t know the answer, that’s fine. Just admit it or say you need more time.
How can candidates best prepare for their assessment?
While the questions we ask don’t require you to know C++, it’s definitely easier if you do have some basic skills in the programming language. So I would advise anyone not familiar with C++ to do a small project in it ahead of time. Not only will it help in the assessment, but it will also give you a broader understanding of how programming in general works.
Think you have the tech skills to join our Mumbai office?