# Books and Papers

## Books

#### Distributed Systems

1. Distributed Systems; Andrew S. Tanenbaum
2. Designing Data-Intensive Applications; Kleppman
3. Designing Event-Driven Systems; Stopford
4. Kafka: The Definitive Guide; Neha Narkhede, Gwen Shapira, Todd Palino
5. Making Sense of Stream Processing; Kleppmann
6. I Heart Logs; Kreps
7. Microservices AntiPatterns and Pitfalls, Richards
8. Software Architecture Patterns, Richards

#### Operating Systems, Networks & SRE

1. Modern Operating Systems; Andrew S. Tanenbaum
2. Computer Networks; Andrew S. Tanenbaum
3. The Site Reliability Engineering: How Google Runs Production Systems; Murphy, Beyer, Jones, Petoff
4. The Site Reliability Workbook; Murphy, Beyer, Jones, Petoff
5. Linux System Programming; Love
6. Linux Kernel Development; Love
7. The Linux Programmer's Toolbox; Fusco
8. Systems Performance: Enterprise and the Cloud; Gregg
9. UNIX and Linux System Administration Handbook;  [Evi Nemeth](https://www.amazon.com/s/ref=dp_byline_sr_book_1?ie=UTF8\&field-author=Evi+Nemeth\&text=Evi+Nemeth\&sort=relevancerank\&search-alias=books), [Garth Snyder](https://www.amazon.com/s/ref=dp_byline_sr_book_2?ie=UTF8\&field-author=Garth+Snyder\&text=Garth+Snyder\&sort=relevancerank\&search-alias=books), [Trent R. Hein](https://www.amazon.com/Trent-R-Hein/e/B001IGFJ5Q/ref=dp_byline_cont_book_3), [Ben Whaley](https://www.amazon.com/Ben-Whaley/e/B0725R4PV5/ref=dp_byline_cont_book_4), [Dan Mackin](https://www.amazon.com/Dan-Mackin/e/B076FDP78H/ref=dp_byline_cont_book_5)&#x20;

#### Databases

1. Database Internals. A Deep Dive into How Distributed Data Systems Work; [Alex Petrov](https://www.amazon.com/Alex-Petrov/e/B07YC94DMN/ref=dp_byline_cont_book_1)&#x20;
2. Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design;

   &#x20;[Michael J. Hernandez](https://www.amazon.com/Michael-J-Hernandez/e/B000APGESM/ref=dp_byline_cont_book_1)
3. High Performance MySQL: Optimization, Backups, and Replication; [Baron Schwartz](https://www.amazon.com/Baron-Schwartz/e/B00OWS7XGU/ref=dp_byline_cont_book_1)
4. [The Art of PostgreSQL](https://theartofpostgresql.com/); [Dimitri Fontaine](https://www.youtube.com/watch?v=09b-uk9UXbM)

#### Performance Engineering

1. Every Computer Performance Book: How to Avoid and Solve Performance Problems  on The Computers You Work With; [Bob Wescott](https://www.amazon.com/Bob-Wescott/e/B00C7CHP34/ref=dp_byline_cont_book_1)&#x20;
2. The Practical Performance Analys&#x74;**;** [Neil Gunther](https://www.amazon.co.uk/s/ref=dp_byline_sr_book_1?ie=UTF8\&field-author=Neil+Gunther\&text=Neil+Gunther\&sort=relevancerank\&search-alias=books-uk)&#x20;
3. Systems Performance: Enterprise and the Cloud; [Gregg](https://www.amazon.com/Brendan-Gregg/e/B004GG0SEW)
4. BPF Performance Tools; [Gregg](https://www.amazon.com/Brendan-Gregg/e/B004GG0SEW)
5. Performance Solutions: A Practical Guide to Creating Responsive, Scalable Softwar&#x65;**;** [Connie U. Smith](https://www.amazon.com/Connie-U-Smith/e/B001IQXC9Q/ref=dp_byline_cont_book_1), [Lloyd G. Williams](https://www.amazon.com/s/ref=dp_byline_sr_book_2?ie=UTF8\&field-author=Lloyd+G.+Williams\&text=Lloyd+G.+Williams\&sort=relevancerank\&search-alias=books)
6. The Art of Capacity Planning: Scaling Web Resources; John Allspaw
7. Java Performance - The Definitive Guide; [Scott Oaks](https://www.amazon.com/Scott-Oaks/e/B000APH2E2)
8. Optimizing Java: Practical Techniques for Improving JVM Application Performance;  [Benjamin J Evans](https://www.amazon.com/Benjamin-J-Evans/e/B07DGL1TM4/ref=dp_byline_cont_book_1) , [James Gough](https://www.amazon.com/s/ref=dp_byline_sr_book_2?ie=UTF8\&field-author=James+Gough\&text=James+Gough\&sort=relevancerank\&search-alias=books), [Chris Newland](https://www.amazon.com/Chris-Newland/e/B07L4YL11R/ref=dp_byline_cont_book_3)
9. High Performance Browser Networking: What every web developer should know about networking and web performance; [Ilya Grigorik](https://www.amazon.com/Ilya-Grigorik/e/B00CNKCS1E/ref=dp_byline_cont_ebooks_1)
10. High-Performance Java Persistence; [Vlad Mihalcea](https://www.amazon.com/Vlad-Mihalcea/e/B01N8PGJ7E/ref=dp_byline_cont_book_1)&#x20;
11. [Go-Perf Book,](https://github.com/dgryski/go-perfbook) Thoughts on Go performance optimization, [Damian Gryski](https://twitter.com/dgryski)
12. The Garbage Collection Handbook: The Art of Automatic Memory Management;

    [Richard Jones](https://www.amazon.com/Richard-Jones/e/B000AQTHV2/ref=dp_byline_cont_book_1), [Antony Hosking](https://www.amazon.com/Antony-Hosking/e/B004QJ36QG/ref=dp_byline_cont_book_2), [Eliot Moss](https://www.amazon.com/s/ref=dp_byline_sr_book_3?ie=UTF8\&field-author=Eliot+Moss\&text=Eliot+Moss\&sort=relevancerank\&search-alias=books)

#### Programming languages

1. Core Java, Volume I and II; Horstmann
2. Thinking in Java; Eckel
3. OCA/OCP Java SE 7 Programmer I & II Study Guide; Sierra & Bates
4. Effective Java; Bloch
5. Java Concurrency in Practice; Goetz
6. Spring Boot in Action; Walls
7. Java EE 7 Development with WildFly; Ćmil, Matłoka, Marchioni
8. Java Performance - The Definitive Guide - Scott Oaks
9. The C Programming Language; Kernighan, Ritchie
10. The C++ Programming Language; Stroustrup
11. Effective Modern C++; Meyers
12. The Go Programming Language; Donovan and Kernighan
13. Learning Python: Powerful Object-Oriented Programming; Lutz
14. Scala for the Impatient; Horstmann
15. Functional Programming in Scala; Chiusano, Bjarnason
16. Scala in Depth, Suereth
17. Javascript: The Good Parts, Crockford
18. Seven Languages in Seven Weeks, Tate
19. [The Rust Programming Language Paperback](https://doc.rust-lang.org/book/); [Steve Klabnik](https://www.amazon.com/Steve-Klabnik/e/B06XYFKYZB/ref=dp_byline_cont_book_1)

#### Design Patterns

1. Design Patterns; Gang of Four
2. Head First, Design Patterns; Sierra, Robson, Bates & Freeman

#### Algorithms & Maths

1. Algorithms Unlocked, Cormen
2. Introduction to Algorithms, Cormen
3. Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
4. A Programmer's Introduction to Mathematics, Kun

#### Craftsmanship

1. Clean Code; Martin
2. Working Effectively with Legacy Code; Martin
3. The Pragmatic Programmer; Hunt
4. Test Driven Development: By Example, Hunt
5. The Software Craftsman: Professionalism, Pragmatism, Pride; Mancuso

#### Domain Driven-Design

1. Domain Driven-Design, Evans
2. Implementing Domain-Driven Design, Vernon

#### Devops

1. The Goal 1 & 2, Goldratt
2. The Phoenix Project, Kim
3. The DevOPS Handbook, Kim

## Papers and articles

1. <https://paperswelove.org/>
2. What Every Programmer Should Know About Memory <https://www.akkadia.org/drepper/cpumemory.pdf>
3. First "Software Engineering" Nato Conference White Paper <http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF>
4. <https://aws.amazon.com/whitepapers/architecting-for-the-aws-cloud-best-practices/>&#x20;
5. On the Impact of Memory Allocation on High-Performance Query Processing <https://arxiv.org/abs/1905.01135>
6. I/O Is Faster Than the CPU – Let’s Partition Resources and Eliminate (Most) OS Abstractions <https://penberg.org/parakernel-hotos19.pdf>
7. The benefits and costs of writing a POSIX kernel in a high-level language <https://www.usenix.org/system/files/osdi18-cutler.pdf>
8. Learn where some of the network sysctl variables fit into the Linux/Kernel network flow <https://github.com/leandromoreira/linux-network-performance-parameters>
9. Distributed consensus revised <https://blog.acolyer.org/2019/05/07/distributed-consensus-revised-part-i/>
10. Monitoring and Tuning the Linux Networking Stack: Sending Data <https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/>
11. The Definitive Guide to Linux System Calls\
    <https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/>
12. <https://blog.packagecloud.io/tag/linux/>
13. Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems <https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf>
14. <https://github.com/trimstray/technical-whitepapers>

## Various

1. Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World; by [William Kent](https://www.amazon.com/William-Kent/e/B001HPIOCS/ref=dp_byline_cont_book_1) , [Steve Hoberman](https://www.amazon.com/s/ref=dp_byline_sr_book_2?ie=UTF8\&field-author=Steve+Hoberman\&text=Steve+Hoberman\&sort=relevancerank\&search-alias=books)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kgoralski.gitbook.io/wiki/books-and-papers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
