Are you looking for a new job? And do you think that your day-to-day “in the trenches” experience as a software engineer will be enough to get you through the interview process? I thought so too, but I was proven wrong.
In my interviewing experience, technical interviews are more about algorithms and data structures than the typical daily activities of a software engineer. And depending on the domain, you might get asked about specific design/architecture patterns.
In this article, I’ve summarized the references that I used to prepare.
Table of Contents
Decomposing the interview process
Even if this post focuses on the technical side of the interviewing process, don’t underestimate the “soft-skills” part of the interview. I’d say that being well prepared, concise, and friendly is at least 40% of passing the interview. Keep in mind that nervousness and shyness could be interpreted as unfriendly.
- Tech interview handbook -> this was my bible while I was preparing for the interview.
- A Life After Layoff -> this youtube channel is where a recruiter with 20y+ of experience is sharing views and tips on interviewing. It helped me understand the perspective of the person sitting across the table.
- How to deal with “cold calls” -> I hate being ghosted and that’s why I hate ghosting people. This article suggests a much better approach.
Algorithm for algorithms
- An Algorithm for Passing Programming Interviews -> I found this heuristic helpful for tackling most algorithm interview questions.
Architecture refresher
- Martin Fowler’s writing is clear, thoughtful, and insightful.
- The basics of scaling your app as the load grows.
- A basic summary of pros and cons for REST vs. event-driven communication.
- This article on modern, scalable web architecture, with excellent references.
- Scaling, the AWS way.
- JWT basics
- Microservice patterns
Case studies for System design
- Grokking the system design interview -> a paid course on system design. Having went through it, I can say that you can just free youtube videos as they cover 80% of the course.
- Gaurav Sen -> great quality youtube videos on system design
- Code Karle -> more great quality youtube videos on system design
SQL and ORM refresher
- Eager vs. lazy initialization
- Concurrency control:
- https://en.wikipedia.org/wiki/Optimistic_concurrency_control
- https://www.baeldung.com/jpa-optimistic-locking
- https://www.thegeeksearch.com/beginners-guide-to-transactions-and-locking-in-mysql/
- https://blog.mimacom.com/testing-optimistic-locking-handling-spring-boot-jpa/