§ Random tips
- It’s not a rule, but most of the interviewers expect you to discuss your solution while you code.
- Always discuss tradeoffs you are doing. If you are assuming something, state that clearly.
- Before coding a solution, discuss the problem and make sure you understand and you have the edge cases in your mind. Normally the edge cases are not in the question, so you have to think about it and confirm with the interviewer.
- Only code when you both are happy with the propoused solution
- Check if you can use the internet to search for something. Now days most interviews allow that.
- Reserch about the company and ask questions! You are interviwing them as well, you want to know if that’s a place you will like to work.
§ System Design
- Difference between load balancer and reverse proxy: https://serverfault.com/questions/127021/what-is-the-difference-between-load-balancer-and-reverse-proxy
- VIP vs FIP: https://serverfault.com/a/747922
- Consistent Hashing
§ Important tips/ Problems
- Sliding window approach
- https://leetcode.com/problems/longest-substring-without-repeating-characters (left and right starts at zero)
- https://leetcode.com/problems/container-with-most-water (left starts at zero, right starts at the end of the array)
§ Datra Structures
- https://raw.githubusercontent.com/addyrookie/Depot-App/master/gmail/The Algorithm Design Manual 2ed by Steven S. Skiena.pdf Chapter 3!
§ Concurrency & Distributed systems
- Concurrency in Java
- Locks in Go
Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition