kkpalanisamy / intro-to-system-design

A repository for system design resources.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[2024] Resources To Be A Better Software Engineer

Why does this exist?

Learning how to be a software engineer is already hard. Take a short-cut by following some of these great online resources. Definitely don't overwhelm yourself, just pick out what's interesting and check it out!

Also be sure to join the discord server to stay updated on any new software engineering resources!

Mastering System Design

📖 Books to read

  1. Designing Data-Intensive Applications by Martin Kleppmann
  2. System Design Interview by Alex Xu
  3. Clean Architecture by Robert C. Martin
  4. Building Microservices: Designing Fine-Grained Systems by Sam Newman
  5. Software Architecture: The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage and Zhamak Dehghani

📄 Newsletters to stay updated

  1. Byte-Sized Design by Alex Nguyen
  2. System Design Newsletter by Neo Kim
  3. ByteByteGo by Alex Xu
  4. System Design Codex by Saurabh Dashora

💻 49 Company engineering blogs

You can find 30+ more at Byte-sized Design

  1. Microsoft Engineering Blog
  2. MongoDB Blog
  3. Mozilla Hacks Blog
  4. MuleSoft Blog
  5. Netflix Tech Blog
  6. Nordstrom Technology Blog
  7. Nutanix Blog
  8. Nvidia Blog
  9. NVIDIA Developer Blog
  10. Oculus Blog
  11. OVHcloud Blog
  12. PagerDuty Blog
  13. Palantir Blog
  14. PayPal Engineering Blog
  15. Pinterest Engineering Blog
  16. Quora Engineering Blog
  17. Rackspace Technology Blog
  18. Red Hat Blog
  19. Red Hat Developer Blog
  20. Reddit Engineering Blog
  21. Riot Games Engineering
  22. Salesforce Developer Blog
  23. Salesforce Engineering Blog
  24. SAP Blogs
  25. SAP Community Blogs
  26. Shopify Engineering Blog
  27. Slack Engineering Blog
  28. Snap Engineering Blog
  29. Splice Engineering Blog
  30. Spotify Engineering Blog
  31. Square Engineering Blog
  32. SquareSpace Engineering Blog
  33. Stripe Engineering Blog
  34. Symantec Blogs
  35. Target Tech Blog
  36. The New York Times Engineering Blog
  37. ThoughtWorks Insights
  38. Trello Blog
  39. Twilio Engineering Blog
  40. Twitch Engineering Blog
  41. Twitter Engineering Blog
  42. Uber Engineering Blog
  43. VMware Blogs
  44. VMware Radius Blog
  45. VMware Tanzu Blog
  46. Walmart Labs Blog
  47. Yelp Engineering Blog
  48. Zendesk Engineering Blog
  49. Zillow Engineering Blog

🏀 Newsletters senior engineers read to lead

Algorithm Learning

This is the most common and best textbook anyone could use to learn algorithms. It’s also the textbook my university used personally to learn the core and essential algorithms to most coding problems.

The 4th edition was recently released and is still relevant to MIT students. If you need structure and a traditional classroom setting to study, follow MIT’s algorithm course here.

Graph theory does come up in interviews (and was a question I had at both Bloomberg and Google). Stay prepared and follow William Fiset’s graph theory explanation.

The diagrams are comprehensive and the step-by-step explanations are the best I’ve ever seen on the topic.

This handbook is for people who are strongly proficient with most Leetcode algorithms. It’s a free resource that strongly complements the CSES.fi curriculum.

For the most experienced algorithm enthusiasts, this book will cover every niche data structure and algorithm that could possibly be asked in any coding interview. This level of preparation is not generally needed for FAANG type companies but can show up if you’re considering hedge fund type companies.

Interviewing Resources

This is the simplest book to get anyone started in studying for coding interviews.

If you’re an absolute beginner, I recommend you to start here. The questions have very details explanations that are easy to understand with basic knowledge of algorithms and data structures.

If you’re a little more experienced, every question in this book is at the interviewing level of all large technology companies.

If you’ve mastered the questions in this book, then you are more than ready for the average technology interview. The book is not as beginner friendly as CTCI but it does include a study plan depending on how much you need to prepare for your interviews. This is my personal favorite book I carried everywhere in university.

Blind has a list of 75 questions that is generally enough to solve most coding interviews. It’s a very curated and focused list for the most essential algorithms to leverage your time.

The playlist above is one of the clearest explanations I’ve ever seen and highly recommend if you need an explanation on any of the problems.

These problems are hard. Really hard for anyone who hasn’t practiced algorithms and is not beginner friendly. But if you are able to complete the sorting and searching section, you will be more capable than the average LeetCode user and be more than ready for your coding interview.

Consider this if you’re comfortable with LeetCode medium questions and find the questions in CTCI too easy.

Closing Thoughts

Want to suggest your own resource? Feel free to make a pull request anytime!

About

A repository for system design resources.

License:MIT License