Google | L5 | Europe | August 2020 [Reject]
Anonymous User
3050

Background:
C++, 12 years experience, 4 months intensive preparation on Leetcode (~300 tasks: medium and hard mostly).

Phone screen:
Design multithreaded pub/sub queue in C++. There were several levels of requirements:

  1. Batch processing (notify when we have N records in the queue)
  2. Timeout (notify when T seconds have come)
  3. Parallel processing of several batches
    I've done 2 of 3, feedback was positive.

Virtual on-site interview:

  1. Coding 1. Design a system of analytics processing in C++. Basic idea is from https://leetcode.com/problems/logger-rate-limiter/. The interview was focused on C++ implementation and was very similar to phone screen.

  2. Coding 2. There is 1 core processor and tasks schedule (time of start and finish). The schedule of additional tasks in given. For each of these task we have to find out if we can add it to the initial schedule. So it's simplified version of https://leetcode.com/problems/insert-interval/.
    Follow-up: Now we have 4 cores processor (we can process up to 4 tasks). It's actually complicated version of https://leetcode.com/problems/meeting-rooms-ii/

  3. Coding 3.
    https://leetcode.com/problems/interval-list-intersections/
    Follow-up: We have array of lists.

  4. System Design.
    URL shortener service. You know what you need to read about it :)

  5. Googliness.
    Quite standard soft-skills interview.

The feedback was positive. I solved all tasks I got in this interview previously on Leetcode. I read well-known system design guide and a couple of books. So my application was sent to Hiring Committee.

The feedback from Hiring Committee was the following: the tasks were quite simple for my level (L5) and of the same type. I need to have 2 more interviews.

Additional interview:

  1. https://leetcode.com/problems/count-of-smaller-numbers-after-self/ (there was slight modification - "elements to the left of").
    I solved this task, but wasn't able to reproduce correct solution (not O(N^2)) in 40 minutes.

The feedback was obviously negative.

  1. System Design.
    Design a function in a social graph service:
  • check if 2 users are friends of friends to each other;
  • design storage for fast look-up;
  • calculate disks, RAM, CPU, number of nodes etc.

The feedback was: "not fantastic, but definetely not bad".

Yesterday I got final decision. They decided to not moving forward.

Comments (3)