literature notes 1a. philosophy of software design 1b Learning Domain Driven Design architecture notes 2a object oriented design 2b SOLID 2c design patterns 2d domain driven design 2e distributed systems 2f reactive distributed systems 2g database engineering 2h common distributed system patterns tools 3a PHP 3b TypeScript 3c Go Lang 3e kafka platform engineering infrastructure 5a SRE 5b observability 5c kubernetes soft skills staff engineer path