| Accelerate: The Science of Lean software and Devops |
Nicole Forsgren (Phd), Jez Humble and Gene Kim |
A research-based book describing the application of technology and Devops principles to building an organisation. |
Intermediate+ |
| Test Driven Development By Example |
Kent Beck |
A straight-forward introduction to Test Driven Development (TDD) using various examples in both Java and Python. Discusses best practices and the 'greatest hits' of TDD. |
All levels |
| Clean Architecture |
Robert C. Martin (Uncle Bob) |
A primer on the SOLID software engineering principles, software structure, discussions on cohesion and coupling in software components. Java examples, mainly focusses on the object-oriented paradigm but very easily translatable into others. |
All levels |
| If Hemingway Wrote Javascript |
Angus Croll |
Very tongue-in-cheek recommendation, but a great read for those interested in the art of reading code as prose. Quite funny too. |
Intermediate+ |
| The Art of Leadership: Small things done well |
Michael Lopp |
Lots of great lessons to be learnt on leadership from all levels, from manager to director to executive, all told through the lense of a Silicon Valley veteran |
All levels |
| The Design of Everyday Things |
Don Norman |
A great introduction into good design principles and usability. It's an entertaining read and a must-have for anyone producing anything which is used by people |
All levels |
| Designing Data-Intensive Applications |
Martin Kleppmann |
A good high-level overview of data-centric application design and the benefits, pitfalls of various technologies |
All levels |
| The DevOps Handbook |
Kim, Humble, Debois & Willis |
A thorough introduction into the principles of DevOps and how and organisation can use them to increase competitiveness, quality and reliability of software. Loads of examples from Etsy, Google, Facebook etc. |
All levels |
| The Phoenix Project |
Gene Kim |
A novel about a company with a failing Enterprise IT division and how the ideas of DevOps, Agility / Lean are applied gradually to bring the company back into profitability. Humourous and at times feels very real! |
All levels |
| The Pragmatic Programmer |
David Thomas & Andrew Hunt |
Illustrates the best approaches and major pitfalls of many different aspects of software development. |
All levels |
| Refactoring: Improving the Design of Existing Code |
Martin Fowler |
Explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use. |
All levels |
| Working Effectively with Legacy Code |
Michael C. Feathers |
This book provides programmers with the ability to cost effectively handle common legacy code problems without having to go through the hugely expensive task of rewriting all existing code |
All levels |
| The (Delicate) Art of Bureaucracy |
Mark Schwartz |
Discusses bureaucratic process within technology firms and divisions with respect to changing it to match DevOps and Agile principles. Discusses 'Digital Transformation' within bureaucratic systems. |
All levels |
| Release it! |
Michael T. Nygard |
A very in-depth technical book on how to write the most robust production-hardy systems. Goes in depth for all levels of the stack (from networking to containers to exception-handling). Contains many great anecdotes as well. |
Intermediate |
| Fundamentals of Software Architecture |
Mark Richards & Neal Ford |
A good primer into the different kinds of software architecture (e.g. Monoliths, microservices, service-oriented) which touches on the pro's and con's of each. Discusses not only the technical aspects but how an "architect" communicates and leads to express these concepts. |
Intermediate+ |