software-engineering-corner.zuehlke.comUntangling Legacy SystemsWhether you're tasked with updating functionality, improving performance, migrating to new technologies, or simply trying to understand an undocumented system for maintenance, dealing with legacy systems is an inevitable challenge in the software ind...Mar 31, 2025·7 min read
software-engineering-corner.zuehlke.comParsing inconsistent JSON with a reader monad in JavaEver had an API response make you question its design choices? Like when it gives you an empty array instead of just saying, 'This value is missing,' or throws in an empty string where a null would be way cleaner? If this sounds familiar, you're not ...Mar 3, 2025·5 min read
software-engineering-corner.zuehlke.comIntroducing Pair Programming to a Sceptical TeamLast year, I joined a client's team of highly skilled and dedicated Java engineers. The team managed a complex event-driven system with a long history of changing requirements. The original engineers were long gone, making the code difficult to maint...Feb 3, 2025·7 min read
software-engineering-corner.zuehlke.comRefactoring Legacy Code using Tiny Types and Data Oriented Programming in JavaLegacy systems are often procedural and rely heavily on mutable state, which makes them difficult to maintain and extend. This reliance on mutable data structures can lead to issues like unintended side effects and bugs, especially when several parts...Jan 6, 2025·8 min read
software-engineering-corner.zuehlke.comBuilding observability into the NHS COVID-19 app backend serving 16 million usersWhen the COVID-19 pandemic swept the globe, it triggered a race to develop digital tools that could help manage and track the spread of the virus. The Department of Health and Social Care (DHSC) oversees the UK's National Health Service (NHS), with ...Nov 25, 2024·5 min read