Donald Belcham presents design patterns and development concepts that protects one’s code from external systems that may change in uncontrollable ways.
Rachel Laycock focuses on the architecture of an application, addressing patterns such as microservices and evolutionary architecture, which can speed up delivery.
Jon Neale, Ragnar Dahlen discuss the challenges dealing with large Clojure legacy code at uSwitch.
Robert Annett explores some of the issues of upgrading, maintaining or replacing legacy Java and .NET applications that haven't been touched in a decade, providing advice on solving common problems.
Mike Long describes techniques for managing large legacy restoration projects, using a roadmap, prioritizing technical debt remediation tasks and motivating devs and stakeholders during the process.
Sandro Mancuso runs a hands-on demo adding tests to a Java legacy code then refactoring it.
John Davies walks through a reference implementation of a in-memory database meant to combine dozens of different legacy databases developed by banks over time.
Robert Reppel discusses applying DDD and SOLID techniques in order to improve legacy code, exemplifying with real code.
Håkan Råberg and Jon Pither on introducing Clojure to an investment bank team having a large Java code, dealing with cultural differences, the lessons learned, and ways of dealing with legacy code.
Eric Evans shares 4 strategies for dealing with messy legacy systems: Bubble Context, ACL Synchronization, Exposing Legacy Assets, and Domain Events Channel.
Brian Foote shares 17 tips that help dealing with muddy legacy code: Testing, Divide & Conquer, Neoteny, Gentrification, Demolition, Quarantine, Refactoring, Craft, etc.
Eric Jan Malotaux shares his experience converting a legacy C++ application to Java, the strategy used, the lessons learned along the way, and the unsolved issues remaining.