Software Engineering
Overview
- Opening Keynote: Stop Over-Engineering
Greg Young - Talk - Why Contexts Matter
George Stocker - Blog Post - Beyoncé rule, A-B-C test and other Software at Scale Lessons from Google
Nilendu Misra - Book - The Phoenix Project
Gene Kim, Kevin Behr, and George Spafford - Book - The “It’s Just Like…” Heuristic
Mathias Verraes - Blog Post - One Secret to Quality Software
Jessica Kerr - Talk - Technical Debt
Martin Fowler - Blog Post - Hardware is Cheap, Programmers are Expensive
Jeff Atwood - Blog Post - Tradable Quality Hypothesis
Martin Fowler - Blog Post - The Art of Destroying Software
Greg Young - Talk - Polyglot Data
Greg Young - Talk - Typing is not a programming bottleneck
Mark Seemann - Blog Post - Maximizing Developer Effectiveness
Tim Cochran - Blog Post - Edges in Software
Michael Feathers - Blog Post - Continued Learning: The Beauty of Maintenance
Kent Beck - Talk - The key points of Working Effectively with Legacy Code
Michael Feathers (Nicolas Carlo) - Book - Changing Changing Software
GeePaw Hill - Talk - Code quality isn’t software quality
Mark Seemann - Blog Post - Building and Scaling High Performing Technology Organizations
Jez Humble - Talk - Software Engineering at Google
Titus Winters - Book - Presentation: The Ethics of Error Prevention
Michael Feathers - Talk - Developers are strange creatures
Greg Young - Talk - The Imposter’s Handbook
Rob Conery - Book - Asking, Telling and Modularity - Choices in Code
Michael Feathers - Talk - Catalog of Patterns of Enterprise Application Architecture
Martin Fowler - Book - Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Book
Architecture
- Scaling the Practice of Architecture, Conversationally
Andrew Harmel-Law - Blog Post - The Architecture Advice Process with Andrew Harmel-Law
Andrew Harmel-Law - Podcast - How to slice the codebase effectively?
Oskar Dudycz - Blog Post - Sync-async boundary
Tomek Masternak - Blog Post - CQRS – but different
Udi Dahan - Talk - Business Logic, a different perspective
Udi Dahan - Talk - Systems Thinking as important as ever for new coders
Scott Hanselman - Blog Post - Software Architecture for Developers: Volumes 1 & 2 - Technical leadership and communication
Simon Brown - Book - Fundamentals of Software Architecture
Mark Richards & Neal Ford - Book - YOW! 2017 Simon Brown - Software Architecture for Developers
Simon Brown - Talk - Patterns for Resilient Architecture
Adrian Hornsby - Blog Post - Chunk Cloud Computing
Jimmy Nilsson - Blog Post - Building Evolutionary Architectures
Neal Ford - Talk - The lost art of software design
Simon Brown - Talk - Architecture Clues: Heuristics, Part ii. Decisions and Change
Ruth Malan - Blog Post - A Little Architecture
Robert C. Martin - Blog Post - Professional Open Source: Extend-Only Design
Aaron Stannard - Blog Post
Abstractions
- The Law of Leaky Abstractions
Joel Spolsky - Blog Post - Failure doesn’t respect abstraction.
Gregor Hohpe - Blog Post
Refactoring
- Refactoring
Martin Fowler - Book - What does Tim have against “private” methods?
Tim Ottinger - Blog Post - Explaining Variable
Pete Hodgson - Blog Post - An example of preparatory refactoring
Martin Fowler - Blog Post
Reuse
- DRY Gone Bad: Bespoke Company Frameworks
Aaron Stannard - Blog Post - DRY is about Knowledge
Mathias Verraes - Blog Post - The reusability fallacy - Part 1
Uwe Friedrichsen - Blog Post - The broken promise of re-use
Uwe Friedrichsen - Blog Post
Reversibility
- Taming Complexity with Reversibility
Kent Beck - Blog Post
Dependency Injection
- Dependency Injection Principles, Practices, and Patterns
Steven van Deursen and Mark Seemann - Book
Working with Nulls
- Dealing with Nulls
Geepaw Hill - Blog Post - Think Twice Before Returning null
Scott Allen - Blog Post - Null References: The Billion Dollar Mistake
Tony Hoare - Blog Post