Interview Prep for the Intermediate Developer

May 16, 2020

Table of Contents


A non-exhaustive list of resources I've used to study for tech interviews to help others do the same. Most of these resources are language agnostic, although some will be Java or JavaScript specific.

For context, I have 2 years of experience working full-time with TypeScript (JavaScript), and Java as a full-stack developer, and 1.5 years of teaching full-stack development.

Key technologies used:

  • React/Redux 16.8+
  • Jest
  • GraphQL
  • JUnit
  • AWS
  • Docker
  • MySQL

Key topics taught:

  • HTML5
  • CSS3
  • Vanilla JavaScript
  • Node/Express
  • jQuery
  • React 16.8+
  • MongoDB
  • git
  • PostgrSQL


Figure out what you don't know first by going through the most popular LeetCode easy questions and make note of it and focus on those questions. For me it was Linked Lists, Dynamic Programming, and Binary Trees. After 3-4 weeks, I was able to do LeetCode mediums on those topics. Make use of spaced repetition and revisit questions after a few days or a week to make sure you still understand the patterns.

I created gists for each solution to compare solutions I came up with after reading about the topic. A lot of my first iterations were brute-force and didn't pass performance tests. I also kept track of which language I solved the problems in, this might not be relevant to your situation.

I combined the above by creating an Excel sheet like below:

Date Problem Name Link gist JS Java Reviewed Notes
2020-01-01 Remove Linked List El 🔗 🔗 ✅ ✅ 2020-01-15 Linked list
2020-01-01 Climb stairs 🔗 🔗 ✅ ✅ Dynamic Programming

I also kept track of system design questions I had covered in a simplified table:

Date Name Link Date Reviewed
2020-01-01 Design TinyURL 🔗 2020-01-15


Symbol Definition
⭐️ Beginner/Short on time (1-3 weeks)
⭐️⭐️ Intermediate/Some (4-6 weeks)
⭐️⭐️⭐️ Advanced/Ample time (6+ weeks)
JS Examples in JavaScript
Java Examples in Java

Books and eBooks


Data Structures and Algorithms


Data Structures and Algorithms Practice

System Design