My hiring process at Criteo

Alexandre Decuq
Criteo Tech Blog
Published in
3 min readFeb 7, 2019

--

Are you considering joining Criteo? Or you have been contacted by one of our recruiters and would like to maximize your chance to pass the hiring process? My story may help you.

After getting my diploma in 2012 I joined an IT service company to start my career. Several years passed and I started to feel that my skills as software engineer were stagnating. My first option was to accept the fact I should start to consider moving to a management or project management position. But I didn’t really want to do that because I loved my job and there were so many things I didn’t have time to explore. So I took the second option: try to join one of the best companies in the industry (Google, Amazon etc.) and have a great technical career!

Okay good but where to start? It’s well known that these kinds of companies are very demanding about coding. There are plenty of excellent books (Cracking the Coding Interview, Algorithms 4th ed. etc.) to read but practicing is at least as important. I tried several online platforms and the most useful for me was Leetcode.com (I recommend to focus on medium level exercises of the Top Interview Questions section). Last, knowing what is expected during interviews is also important and I warmly recommend to have a look at the Algorithm Design Canvas: https://www.hiredintech.com/courses/algorithm-design.

One day, when I was like a mad developer doing all kind of programming competitions (Topcoder, HackerRank), a recruiter from Criteo contacted me. I didn’t know Criteo at that time but I gradually discovered that it was an excellent company which can be an alternative to the big four (I really liked the engineering blog). So I decided to start the process. From the beginning I really enjoyed the quality of interviews and I had the feeling I was discovering a complete new world. I passed the first phone interview then I came to onsite interviews in Paris for two additional coding exercises. As I was ready enough for that kind of exercises I passed this second step too. Finally I had a last exercise on system design in Grenoble (I applied for a job over there) but unfortunately this time I failed. Why?

What I learned from this experience is the importance of staying connected to the latest technologies. Computer sciences move fast especially in the internet field. In my case, I lacked knowledge about big data technology (map/reduce, Kafka, Elasticsearch etc.) and internet in general (for example how does a crawler work?). So what I did afterward was to list the most used tools in the industry and try to group them according to the problem they solve (Message-queuing system, Memory-caching system, Distributed file system, SQL/NoSQL databases etc.). Then I focused on understanding the main differences between two tools (why do we have several tools for the same purpose?). This way, it should help you to have a good overview and be able to pick the right tool at the right moment during the design interview. You can find below a list of materials that have been very useful for me:

Last year I was re-contacted by a recruiter from Criteo and this time, you know what, it worked! I was so happy to pass the interview process knowing all the hard work I did to prepare it!

Now I am proud to be part of such a dynamic company. Opportunities are many. And if you love machine learning, Criteo is definitively the place to be!

I hope it helped you. Feel free to comment below for any questions.

--

--