wiki
  • My Knowledge Wiki
  • Microservices
  • Domain-driven design (DDD) learning resources
  • Go Programming Language
  • Kotlin Programming Language
  • Java Programming Language
  • Hibernate
  • Reactive Programming
  • Kubernetes
  • Apache Kafka
  • Apache Beam
  • Google Cloud
  • Serverless
  • Janusgraph
  • Event Sourcing & CQRS
  • Performance Engineering
  • Site Reliability Engineering
  • Software Security
  • Scalability
  • Software Craftsmanship
  • Books and Papers
  • Conference and meetup videos
Powered by GitBook
On this page
  • Books
  • Papers and articles
  • Various

Was this helpful?

Books and Papers

Books I have, read or want to read, computer science and stuff.

PreviousSoftware CraftsmanshipNextConference and meetup videos

Last updated 5 years ago

Was this helpful?

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; , , , ,

Databases

  1. Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design;

Performance Engineering

  1. The Art of Capacity Planning: Scaling Web Resources; John Allspaw

  2. The Garbage Collection Handbook: The Art of Automatic Memory Management;

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

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

Various

Database Internals. A Deep Dive into How Distributed Data Systems Work;

High Performance MySQL: Optimization, Backups, and Replication;

;

Every Computer Performance Book: How to Avoid and Solve Performance Problems 
on The Computers You Work With;

The Practical Performance Analyst;

Systems Performance: Enterprise and the Cloud;

BPF Performance Tools;

Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software; ,

Java Performance - The Definitive Guide;

Optimizing Java: Practical Techniques for Improving JVM Application Performance; , ,

High Performance Browser Networking: What every web developer should know about networking and web performance;

High-Performance Java Persistence;

Thoughts on Go performance optimization,

, ,

;

What Every Programmer Should Know About Memory

First "Software Engineering" Nato Conference White Paper

On the Impact of Memory Allocation on High-Performance Query Processing

I/O Is Faster Than the CPU – Let’s Partition Resources and Eliminate (Most) OS Abstractions

The benefits and costs of writing a POSIX kernel in a high-level language

Learn where some of the network sysctl variables fit into the Linux/Kernel network flow

Distributed consensus revised

Monitoring and Tuning the Linux Networking Stack: Sending Data

The Definitive Guide to Linux System Calls

Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems

Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World; by ,

Evi Nemeth
Garth Snyder
Trent R. Hein
Ben Whaley
Dan Mackin
Alex Petrov
Michael J. Hernandez
Baron Schwartz
The Art of PostgreSQL
Dimitri Fontaine
Bob Wescott
Neil Gunther
Gregg
Gregg
Connie U. Smith
Lloyd G. Williams
Scott Oaks
Benjamin J Evans
James Gough
Chris Newland
Ilya Grigorik
Vlad Mihalcea
Go-Perf Book,
Damian Gryski
Richard Jones
Antony Hosking
Eliot Moss
The Rust Programming Language Paperback
Steve Klabnik
https://paperswelove.org/
https://www.akkadia.org/drepper/cpumemory.pdf
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF
https://aws.amazon.com/whitepapers/architecting-for-the-aws-cloud-best-practices/
https://arxiv.org/abs/1905.01135
https://penberg.org/parakernel-hotos19.pdf
https://www.usenix.org/system/files/osdi18-cutler.pdf
https://github.com/leandromoreira/linux-network-performance-parameters
https://blog.acolyer.org/2019/05/07/distributed-consensus-revised-part-i/
https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/
https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/
https://blog.packagecloud.io/tag/linux/
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
https://github.com/trimstray/technical-whitepapers
William Kent
Steve Hoberman