- Overview
- High level overview of architecture questions / concepts
- RDBMS vs. NoSQL
- Row store vs. Column store
- Hadoop vs. NoSQL
- Common types of NoSQL
- Basic frontend terms and concepts
- HTML and CSS specific frontend interview questions
- HTTP headers
- Request methods
- Cookies
- JavaScript: Basics and Tricky Questions
- Node / Express / Readline / FS / Stream / etc.
- Explain Internet
- Pointers
- Memory Allocation
- Mutex vs. Semaphore
- Thread locking
- More basic concepts before reading the architecture section
- Example questions
- CheatSheet - System Design
- David Hu is currently making a great repo on TypeScript crash course. Check it out!
- How would you design a URL Shortner?
- What really happens when you navigate to a URL
- You just visited google.com. What happened?
- What is a web crawler?
- How does it work?
- What is WebSocket
- Contrast to other alternatives
- Resources
Feel free to work on any of these and make a pull request!
- API Design and Webhooks
- Topological Sort, Dijkstra's Algorithm, Priority Queue
- Hash Table Collision Resolution
- Rabin-Karp Substring Search
- AVL Trees / Self-balancing BST
- Red-Black Trees
- MapReduce
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Minimum Spanning Trees
To fix a bug or create a feature, follow these steps:
- Fork the repo
- Create a new branch (
git checkout -b awesome-feature
) - Make changes or add new changes.
- Commit your changes (
git add -A; git commit -m 'Awesome new feature'
) - Push to the branch (
git push origin awesome-feature
) - Create a Pull Request, add appropriate label and assign Raymond Lee as a reviewer.
Please click here to report an issue or request a new feature.
... or simply star the repo :D