Book Notes philosophy of software design Learning Domain Driven Design Software Architecture Notes object oriented design SOLID design patterns domain driven design distributed systems reactive distributed systems database engineering common distributed system patterns Tools PHP TypeScript Go Lang kafka platform engineering Infrastructure SRE observability Kubernetes Personal Knowledge Management zettelkasten Folgezettel permanent notes literature notes reference notes fleeting notes Niklas Luhmann How to Take Smart Notes Math calculus