How to prepare for Google's interview for the positions : Software Engineer or Site Reliability Engineer
This repository includes resources which are more than sufficient to prepare for google's interview if you are applying for a software engineer or a site reliability engineer position
Sections in this repository :
- General guidelines : this section contains resources to understand how the interviewing process should look like and what to expect in general
- Algorithms & Data structure : The most important section, specially the starred list items, try to practice at least 3 problems and read 1 topic everyday, also try to increase the difficulty of the problems you solve by time, don't stick to easy problems because usually interview problems are medium and hard ones.
- System design and architecture : if you have this as a part of your interviewing process (ask your recruiter) then make sure to finish the starred list items (the most important ones) and then divide the rest according to your time.
- Operating systems and programming concepts : no more description than the title !
- Site reliability engineer books : in case your interview is for a site reliability engineer position ... these books are useful but not necessary.
- Extra links : these are bonus resources (most of them are algorithm and data structure related) in case you have more time to practice :)
My general advice is to allocate 70% of your time for algorithm and data structure practice, 25% for system design readings (if the recruiter told you you will have it in your interviewing process) and 5% for other topics or readings. I marked non-free resources with Money emoji 💸, you can be super well prepared without them, but I strongly recommend Leetcode subscription. I also marked the "must" TODO items with star emoji ⭐, so make sure to put them in your top priority.
- How we hire
- Tech dev guide by Google
- Steve's blog
- How can I get my resume shortlisted by Google
- MIT hacking a google interview
- ⭐ 💸 Leetcode : problems & Google interview card & Mock an onsite interview
- ⭐ Hackerrank interview preparation kit
- ⭐ Pramp : Mock multiple interviews
- Programming interview questions
- Geeks4Geeks : Topics for competitive programming
- Leetcode trending posts
- Algo notes from the article 11 companies-55 interviews- 9 offers
- 💸 Grokking dynamic programming patterns for interviews (educative course)
- Careercup
- Geeks4Geeks : Dynamic programming & backtracking
- Bit hacks
- Google Code Jam distributed systems problems and How to run locally
- ⭐ System-design-interview-github-repo specially the Hot Questions
- ⭐ System design primer
- 💸 Grokking the system design interview specially System design basics
- Numbers everyone should know
- Introduction to architecting systems for scale
- Scalable Web Architecture and Distributed Systems
- 3 rules to a scalable cloud application architecture
- Tomcat and django
- The practical test pyramid
- Swift : an activity feed framework
- SQL vs NoSQL
- ACID vs CAP
- Database normalization and UUID
- Cassandra vs postgres "Indexes"
- Cassandra vs postgres "benchmarking" : here & here & here
- Cassandra vs postgres "comparisons" : here & here
- processes, threads and concurrency issues
- how context switching works
- Locks and mutexes and semaphores and monitors
- Deadlock and livelock and how to avoid them : here & here & here & here
- SOLID principles
- MD5 vs SHA 256 hashing
- Combinatorics and probability
For SRE interview : Site reliability engineer books :
- What should I know from the CLRS 3rd edition book if my aim is to get into Google
- 💸 Introduction to algorithms 3rd-edition
- 💸 Skiena The Algorithm Design Manual
- 💸 Cracking the coding interview
- 💸 Elements of programming interview
- 💸 Programming interviews exposed 3rd edition