Systems
Distributed systems
Replication, consensus with Raft, and staying correct when machines and networks fail.
About 60 hours of study.
Where to learn it
Read
Distributed systems: for fun and profit
Mikito Takada
The whole book
Short and free. Read it before the MIT lectures.
Section not checked yet
Watch
Distributed Systems (MIT 6.5840, formerly 6.824)
Robert Morris and others
Lectures, plus the MapReduce and Raft labs
Lecture videos, notes and the Go labs are all on the course site.
Section not checked yet
Practise
6.5840 Distributed Systems labs
MIT
The labs: MapReduce, Raft, then the key/value service
Build MapReduce and Raft in Go, with tests that try to break them.
Section not checked yet
Other options
- Designing Data-Intensive Applications (read, to go deeper, paid)
Parts II and III - Maelstrom (practise)
The guide, from echo to broadcast to Raft
Wrong chapter, dead link, or know something better? Tell us on GitHub.
Which roles ask for it
- Software engineer (SDE) good to have
- Backend engineer good to have
- Data engineer good to have
- Machine learning engineer good to have
- DevOps / site reliability engineer good to have
- Deep learning engineer (vision / language) good to have
- Quant developer good to have
- MLOps engineer good to have
- Platform engineer good to have
- Database administrator good to have
- Solutions architect to get hired
- Cloud engineer good to have
- UGC NET computer science to get hired
Before and after
Distributed systems
Opens up
Nothing else on the map yet.