- Computer Systems: A Programmer's Perspective - Designing Data-Intensive Applications