Preparation for top tech companies

Aleksandar Danilovic
Javarevisited
Published in
4 min readJan 3, 2023

Know how to prepare interviews for some of the top tech companies

Photo by Alex Knight on Unsplash

Firstly, see this story:
https://medium.com/javarevisited/how-ive-become-coding-machine-in-my-older-ages-965e1a9da012

These links from Object Oriented Design & System Design I received directly from one of the top tech companies when they gave me tips on how to prepare for the final interview.

Here you have one coding task from that final interview:
https://medium.com/p/6768db3be82f

That one was easy. In the harder one, Topological graph sorting should have been applied. Your input is an array of pairs of strings (S1, S2) that represent the names of some dependency libraries needed to build some application. This means that S1 depends on S2.

If you have this pairs array, you should return the order in which the libraries are built, starting from the first to the last (if there are more solutions, write anyone). I did not solve this task, more precisely I solved it incorrectly.

And the most difficult coding task (I think I didn’t have to finish the task there, but to say how I would solve it and type the key classes and key parts of the code) was to create a JSON parser. For example, parse the text and return Map<String, Object>.

Kind of like the Jackson library in Spring framework. I think this was an OOP question but they also expected a key part of the code, probably some algorithm with recursion needed for text parsing.

You have half an hour without any help from the Internet or anything, you type in a regular text editor. Madness!!! I failed a lot here. They always expect not to search the Internet for solutions and you always code in the plain text editor (no support from IDE). And they expect your code compiles and works!!!

The system design task was the next one:

I answered it pretty correctly, however, skipped some important points.

Steps needed to successfully prepare for an interview at top tech companies:

  1. The book Cracking the coding interview. It’s a big book, I don’t know how much it makes sense to read it all, but it’s a cult book. You should also watch videos from the woman who wrote the book, for example:

2. Codility: Read all pdf materials and solve all tasks from this link:

3. HackerRank: Great materials for data structures, videos, and tasks. You should watch all the video materials from the lady who wrote the book under step 1 and of course kill yourself with the tasks. :-)

4. When you pass steps 1–3, you should go to Leetcode. There are tasks by topics as well as by Top Tech companies. Some rule among developers is to do 400 tasks (if possible) before applying for a Top Tech interview. Pay for Leetcode membership in order to have the best preparation.

5. Prepare Object-oriented design and System design from the YouTube channels. In the blog that I’ve posted above, there are 2 links, one for Object-oriented design, and the other for System design. But there are many similar Youtube channels available.

6. Behavioral questions. They are as important as all these technical questions. They want to see that you are the leader! In the onsite interview (now the so-called virtual interview) there are 4 sessions, 2 are algorithm coding tasks, 1 is OOP design and 1 is system design. Each session lasts an hour, but you only have half an hour for the technical part. The first half an hour is reserved for behavioral questions. How you can prepare for them? For example, have a look on:

These behavioral questions are similar for all top tech companies. Prepare your stories and especially think about what you will say when they ask you what is the thing you are the proudest in your career! Prepare well these behavioral questions, you should expect a lot of follow-up questions. Be prepared to explain what was hard to do from a technical perspective and how you’ve helped in overcoming it. And what were the lessons learned from these situations?

How much time do you need to prepare well for this Top Tech challenge?

Algorithms: 270 hours
OOP design + System design: 270 hours
Behavioral questions: 40 hours

So 580 hours are needed for good preparation, according to my estimation. Divided by 180 days (6 months) as preparation period, that’s more than 3 hours a day every single day! It’s really hard to achieve unless you’re super-motivated.

Or unless you have been preparing for it all your life! :-)

Good luck!!!

--

--

Aleksandar Danilovic
Javarevisited

Work as Senior Java developer for 16 years. Publish stories about Java, algorithms, object oriented design, system design and programmers' life styles