Contents
Algorithms
- Personal blog by Emre Borat. He covers a lot of coding patterns for interviews (https://emre.me/categories/#coding-patterns)
- E-maxx. Popular resource with ~145 text algorithms in Russian (http://e-maxx.ru/algo/)
- E-maxx translated to English (https://cp-algorithms.com/)
- Grokking the Coding Interview. Patterns for Coding Questions (https://www.educative.io/courses/grokking-the-coding-interview)
- Big list of dynamic programming questions from Leetcode.com, ordered by patterns (https://leetcode.com/discuss/general-discussion/1000929/solved-all-dynamic-programming-dp-problems-in-7-months)
- Dynamic Programming for Coding Interviews. A Bottom-Up approach to problem solving (https://www.amazon.com/Dynamic-Programming-Coding-Interviews-Bottom-Up-ebook/dp/B06XZ61CMP)
- Big list of greedy problems from GeeksForGeeks (https://www.geeksforgeeks.org/greedy-algorithms/)
- 14 Patterns to Ace Any Coding Interview Question (https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed)
- Big list of medium/advanced algorithms to prepare for coding competitions (and could be used for interview preparation). Originally was written by http://mikhailrubinchik.ru/ (ACM ICPC coach in Ural Federal University) (https://pastebin.com/gUXEwtq4)
- Huge page with math and algorithms articles from ITMO University (in Russian) (http://neerc.ifmo.ru/wiki/index.php)
- One of the best algorithms course I’ve ever seen on YouTube (in Russian). A little bit advanced for interview questions, but still (https://www.youtube.com/playlist?list=PLc82OEDeni8SGp5CX8Ey1PdUcoi8Jh1Q_)
- Distributed Systems for practitioners. Learn the basic principles that govern how distributed systems work and how you can design your systems for increased performance,availability and scalability. Understand the basic algorithms and protocols used to solve the most common problems in the space of distributed systems (https://leanpub.com/distributed-systems-for-practitioners)
- Course that covers basic dynamic programming strategies. Grokking Dynamic Programming Patterns for Coding Interviews (https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews)
- Online judge with huge problem set from coding competitions (also a lot of problems for beginners)
- (https://acm.timus.ru/problemset.aspx?locale=en)
- YouTube channel with super algorithms lectures by Pavel Mavrin (world ACM ICPC champion) in Russian (https://www.youtube.com/c/pavelmavrin/videos)
- Data Structures Easy to Advanced Course – Full Tutorial from a Google Engineer (https://www.youtube.com/watch?v=RBSGKlAvoiM)
- AlgoExpert. The ultimate resource to prepare for coding interviews. Everything you need, in one streamlined platform (https://www.algoexpert.io/)
- 800+ problems for practice (programming, scripting, system design, databases, puzzle) (https://www.interviewbit.com/)
- Good list of advanced tutorials from Codeforces (https://codeforces.com/blog/entry/57282)
- General approach how to solve backtracking problems (Subsets, Permutations, and Combination Sum) (https://leetcode.com/problems/permutations/discuss/18239/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partioning))
- Competitive Programming – Crack Your Coding Interview (https://www.educative.io/courses/competitive-programming-intvw)
- Cracking the Coding Interview. 189 Programming Questions and Solutions (https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850)
- Good portal with big problem set. binarysearch (https://binarysearch.com/problems)
- HackerRank – Popular resource. Good way to improve your coding skills. Recommended for beginners (https://www.hackerrank.com/)
- Algorithms, part 1 (Coursera) (https://www.coursera.org/learn/algorithms-part1)
- Algorithms, part 2 (Coursera) (https://www.coursera.org/learn/algorithms-part2)
- Course by Yandex Backend School in russian (https://www.youtube.com/watch?v=PxIqLgjtQ5Y&list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s&index=2)
- How I prepared for Google — Solving 200 leetcode questions (https://medium.com/@siddhism/how-i-prepared-for-google-0-leetcode-questions-to-200-questions-e37690ebce85)
- New Year Gift – Curated List of Top 75 LeetCode Questions to Save Your Time (https://www.teamblind.com/post/ New-Year-Gift—Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU)
- The CSES Problem Set contains a collection of competitive programming practice problems (https://cses.fi/problemset/)
- Huge list of CS courses by Stanford (https://docs.google.com/spreadsheets/u/1/d/1zfw8nPvJeewxcFUBpKUKmAVE8PjnJI7H0CKimdQXxr0/htmlview)
- Competitive algorithms blog by Petr Mitrichev (ACM ICPC and IOI gold medalist (https://petr-mitrichev.blogspot.com/)
- Computer Science. An Interdisciplinary Approach (https://www.amazon.com/Computer-Science-Interdisciplinary-Robert-Sedgewick/dp/0134076427)
- Computer Science: Programming with a Purpose (Coursera) (https://www.coursera.org/learn/cs-programming-java)
- Master the Coding Interview: Data Structures + Algorithms (Udemy) (https://www.udemy.com/course/master-the-coding-interview-data-structures-algorithms/)
- Algorithms and Data Structures Cheatsheet (https://algs4.cs.princeton.edu/cheatsheet/)
- Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People (https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230)
- The Complete Data Structures and Algorithms Course in Python Data Structures and Algorithms from Zero to Hero and Crack Top Companies 100+ Interview questions (Python Coding)(https://www.udemy.com/course/data-structures-and-algorithms-bootcamp-in-python/)
- Dynamic programming on subsets with examples – good tutorial how to solve this type of problems (sometimes appear on real interviews) (https://leetcode.com/discuss/general-discussion/1125779/Dynamic-programming-on-subsets-with-examples-explained)
- Blog by Dmitry Babichev (https://www.linkedin.com/in/dmitry-babichev-phd-19928b110/) with leetcode solutions and patterns(https://flykiller.github.io/)
- What Is Dynamic Programming With Python Examples (https://skerritt.blog/dynamic-programming/)
- Big list of leetcode solutions with explanations (https://tenderleo.gitbooks.io/leetcode-solutions-/content/)
- Watch technical mock interviews with engineers from Google, Amazon, and more (https://interviewing.io/recordings)
- Dynamic Programming Guide. Good course for beginners, covers a lot of topics, 91 pages (https://aatalyk.gumroad.com/#cAEgH)
- Algorithms notes by Petr Kalinin (in Russian) (https://notes.algoprog.ru/index.html)
Systems design
- Grokking the Advanced System Design Interview (https://www.educative.io/courses/grokking-adv-system-design-intvw)
- Grokking the System Design Interview (https://www.educative.io/courses/grokking-the-system-design-interview)
- System Design Interview – An insider’s guide (https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF)
- How to choose the right database for your application (https://www.infoworld.com/article/3452894/how-to-choose-the-right-database-for-your-application.html)
- checkcheckzz/system-design-interview – good repo with list of articles for system design interview (https://github.com/checkcheckzz/system-design-interview)
- prasadgujar/low-level-design-primer – dedicated Resources for the Low-Level System Design. Learn how to design and implement large-scale systems. Prep for the system design interview. (https://github.com/prasadgujar/low-level-design-primer)
- jhuangtw/xg2xg – list of Google internal/external technologies in comparison with their open-source brothers (https://github.com/jhuangtw/xg2xg)
- A pattern language for microservices (https://microservices.io/patterns/index.html)
- donnemartin/system-design-primer – learn how to design large-scale systems. Prep for the system design interview (https://github.com/donnemartin/system-design-primer)
- The Art of Multiprocessor Programming (https://www.amazon.com/Art-Multiprocessor-Programming-Revised-Reprint/dp/0123973376)
- Text-based course provides a step-by-step framework on how to tackle a system design question (https://courses.systeminterview.com/courses/system-design-interview-an-insider-s-guide)
- Colloquium-style system design meetups by Dima Korolev (https://www.linkedin.com/in/dimakorolev/) (https://www.youtube.com/user/dimakorolev/videos)
- Dive into Design Patterns (https://refactoring.guru/design-patterns)
- SystemsExpert: An unparalleled course on large-scale distributed systems. Everything you need to ace the systems design interviews (https://www.algoexpert.io/systems/product)
- How Discord Stores Billions of Messages (https://blog.discord.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7)
- binhnguyennus/awesome-scalability – the Patterns of Scalable, Reliable, and Performant Large-Scale Systems (https://github.com/binhnguyennus/awesome-scalability)
- Crack the System Design Interview (https://tianpan.co/notes/2016-02-13-crack-the-system-design-interview)
- Database Internals: A Deep-Dive into How Distributed Data Systems Work (https://www.oreilly.com/library/view/database-internals/9781492040330/)
- Designing Data-Intensive Applications. The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (https://www.audible.com/pd/Designing-Data-Intensive-Applications-Audiobook/B08VLGDK32)
- System Design Blog (https://medium.com/system-design-blog)
- System Design Interview Questions – Concepts You Should Know (https://www.freecodecamp.org/news/systems-design-for-interviews/)
- Netflix tech blog (https://netflixtechblog.com/)
- General game programming patterns. Narrow topic, but still (https://gameprogrammingpatterns.com/contents.html)
- sumodirjo/engineering-blogs – a curated list of engineering blogs of startup and enterprise companies (https://github.com/sumodirjo/engineering-blogs)
- Distributed systems for fun and profit (http://book.mixu.net/distsys/single-page.html)
- NoSQL Databases: a Survey and Decision Guidance (https://medium.baqend.com/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.wskogqenq)
- Introduction to modern network load balancing and proxying (https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and-proxying-a57f6ff80236)
- Distributed Systems Design Fundamentals (https://learn.particular.net/courses/distributed-systems-design-fundamentals-online)
- Raft – Understandable Distributed Consensus (http://thesecretlivesofdata.com/raft/)
- System Design Interview channel (https://www.youtube.com/c/SystemDesignInterview)
- Computer Systems: A Programmer’s Perspective: Really goes into the details: processor architecture, memory hierarchy, system-level I/O, concurrent programming, and many more (https://www.amazon.com/Computer-Systems-Programmers-Perspective-3rd/dp/013409266X)
- SREcon18 Asia/Australia – Interviewing for Systems Design Skills (https://www.youtube.com/watch?v=swfurPw8c6A)
- System Design Interview Tutorial – The Beginner’s Guide to System Design (https://www.freecodecamp.org/news/system-design-interview-practice-tutorial/)
- Strong system design course by MIT (https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
- mhadidg/software-architecture-books – a curated list of books on Software Architecture (https://github.com/mhadidg/software-architecture-books)
- Big-O Notation For Coding Interviews and Beyond (https://www.educative.io/courses/big-o-notation-for-interviews-and-beyond)
- Introduction to Reliable and Secure Distributed Programming (https://www.amazon.com/Introduction-Reliable-Secure-Distributed-Programming/dp/3642152597)
- Building Scalable Data Pipelines with Kafka (https://www.educative.io/courses/scalable-data-pipelines-kafka)
- How to Build Observable Distributed Systems (https://www.youtube.com/watch?v=ACL_YVPD3gw)
- Good blog by Robert Heaton with a lot of systems design articles and stories (https://robertheaton.com/)
- High Performance Browser Networking (free book) (https://hpbn.co/)
- System Design Interview Prep: How to Build a System to Handle Long Running Job (https://fin-techology.medium.com/system-design-interview-prep-how-to-handle-long-running-job-asynchronously-with-long-polling-34d8b2a890e1)
- simskij/awesome-software-architecture – a curated list of resources on software architecture (https://github.com/simskij/awesome-software-architecture)
Behavior
- Video – Episode 07: Intro to Behavioural Interviews by Jackson Gabbard (https://www.youtube.com/watch?v=PJKYqLP6MRE)
- YouTube channel – Jeff H Sipe (https://www.youtube.com/channel/UCs-7SAP1mhEQF1NlubjSzqQ)
- Ten Rules for Negotiating a Job Offer (https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/)
- Answering Behavioral Questions in Amazon Interviews: Advice for Candidates at All Levels (https://www.goodreads.com/book/show/53667699-answering-behavioral-questions-in-amazon-interviews)
- How I negotiated a $300,000 job offer in Silicon Valley (https://bayareabelletrist.medium.com/how-i-negotiated-a-software-engineer-offer-in-silicon-valley-f11590f5c656)
- Staff Engineer: Leadership beyond the management track (https://www.amazon.com/dp/B08RMSHYGG)
- What I Learned from Doing 60+ Technical Interviews in 30 Day s(https://meekg33k.dev/what-i-learned-from-doing-60-technical-interviews-in-30-days)
- viraptor/reverse-interview – good list of questions for reverse interview (https://github.com/viraptor/reverse-interview)
- Focus and Deep Work — Your Secret Weapons to Becoming a 10X Developer (https://www.freecodecamp.org/news/focus-and-deep-work-your-secret-weapons-to-becoming-a-10x-developer-8e203a6ad291/)
- Why I studied full-time for 8 months for a Google interview (https://www.freecodecamp.org/news/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13/)
- 7 Tips for the Coding Resume (for Software Engineers) (https://www.youtube.com/watch?v=xpaz7nrNmXA)
- Good YouTube channel with a lot of useful information (https://www.youtube.com/c/KevinNaughtonJr/videos)
- Behavior interview preparation (https://leetcode.com/discuss/interview-question/1210230/Prepare-for-Facebook-Behavioral-Interview-(Jedi-Round))
- 11 Interview Questions Facebook Asks & You Should Too (https://www.glassdoor.com/employers/blog/interview-questions-facebook-asks/?__cf_chl_jschl_tk__=d7c66c41708ebc8cd15bd449ef01f0237d9aa898-1623145431-0-AelBVv0JQo3mhVxqXJydDbazWykKQiZ1cQN6a-HCsjPti-PnQNWzfQhPweeJ9Q_VaOiizVnze-X9frwwBJAa0FEDbXN4jK1NF1sALuvQuEMUfCT0a4QzGljcEF1y3LIXIktZ_v2-bJsFJPhi30h1WYcy8He60X9xLKWyUgHzgtXui85HubIOt4udlHNLsZpC5ckx1C62UCZfwkBE4blUihU0mEY-RlfRzRt5dZamOJXS2Ku8SKkM4lhRMWgNKIV6Ju_ET0ryiKV8sDGmfpwIrqU74SQDfLC0nzJG0ojW86zUkQikYKQdtnr8iVeAA_-s4IoK8yf9EXaApO5GC0VykKNsqHop9WFHbm_cxQ1do6MkM-qn_9S4YQCsiDrRSt1wxzMzNpoILO1SbfSvS3dBGof8XlQbVKD6wIctySN2nM-QBjJ7mJuDTE0WC5G6hCp1luk2a2-V1rFOabd2P8wRTudY2KuZPLHH3oagGNMBjTUOO2ZeYxhZi9ewkaWPH2hGj_VFirRh9Kcx0EdI8nJRMF4)
- List of resume review posts (http://larrr.com/category/resume/)
- Salary Negotiation: Make More Money, Be More Valued (https://www.kalzumeus.com/2012/01/23/salary-negotiation/)
- Huge list of soft skills materials (in russian) (https://vc.ru/education/101011-samaya-bolshaya-podborka-po-prokachke-soft-skills-hvatit-na-vsyu-zhizn)
- Senior Software Engineer Job Description (https://www.topresume.com/career-advice/senior-software-engineer-job-description)
- AWS’s philosophy of compensation (https://www.lastweekinaws.com/blog/aws-compensation-explained/)
- How Not to Bomb Your Offer Negotiation (https://haseebq.com/how-not-to-bomb-your-offer-negotiation/)