Skip to content
Related Articles

Related Articles

APT Portfolio Interview Experience – Junior/middle C++ developer

Improve Article
Save Article
  • Last Updated : 26 Aug, 2020
Improve Article
Save Article

I was contacted by an external headhunter company (which specializes in trading recruiting) for the opportunity of junior/middle C++ developer in Amsterdam. First, we had a general conversation about the position, company, requirements, etc. After that, I’ve sent my CV and received a link to HackerRank test. There were 4 problems. I would say all of them medium-hard on leetcode. I remember only 2 of them:

  1. Network packets coming to the client, some of them might be out of order. You have to implement a function which accepts packets and write them to the std::cout in the correct order on the fly.
  2. Some problems for the disjoint set union. The solution is quite straightforward if you’re familiar with DSU.

I got a response quite quickly, and they invited me to the interview.

Interview with Senior Developer: 1-hour interviewed by a senior dev.

  1. A lot of questions about my experience. Focusing on my previous C++ projects, what optimizations did we do, what tools did we use, C++ features, etc.
  2. CPU architecture. Its main components and how they work – alu, cu, ram, virtual memory, tlb. How a multicore system share cache. What’s speculative execution and branch prediction.
  3. C++ questions: virtual functions, templates, SFINAE, template functions, enable_if.

No live coding part here.

Interview with Project LeadL: Questions about operating system – why we need kernel and user mode, why system calls are slow, what is interrupt, what happens during an interrupt. 

Also a lot of questions about my experience.

Interview with CTO (final): Several questions about my motivation in this role, behavioural questions, again my experience. I didn’t remember well technical questions, some of them:

  1. If you would implement a driver for an external computing device, how would you implement data exchange (in case speed is the main priority)
  2. The naive implementation of memcpy. How would you optimize it?
void my_memcpy(char* from, char* to, int count)
    for (int i = 0; i < count; i++) {
        to[i] = from[i];

My answer: unwind loop and use SSE instructions. In the end, I asked a couple of questions about the company.

Results: After 3 days of waiting I contacted my headhunter from an external company, he said no decision yet, it should be next week. Next week I sent an email again, but didn’t get a response in 2 days and called him on mobile. He said the APT is having another candidate interview and I should wait more, “no worries, they were positive about you“. On 3rd week he was completely ignoring my emails. I emailed APT’s HR directly. Her words “no decision yet” started freaking me out. After more than a month of waiting, I texted HR again and she answered that unfortunately, they decided not to go with my candidacy. No feedback, no explanations, nothing. I asked for the feedback – what went well and what didn’t. They agree to compose it but didn’t do…

The entire process lasted for around 3 months. As a result, many hours were spent on it but no feedback received. Poor interview experience.

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!