All Posts
Discover all our published articles and insights.
Understanding Middleware in ASP.NET Core
Middleware is one of the fundamental building blocks of ASP.NET Core. It sits between an incoming HTTP request and your application, allowing you to inspect, modify or respond to requests before they reach your application code. Understanding how middleware works, and especially the order in which it runs, is essential when building reliable ASP.NET Core applications.

Logging Strategies That Scale
Logging is easy when an application is small, but as systems grow, so does the amount of information they generate. Without a sensible strategy, logs can quickly become noisy, expensive and difficult to search. In this article, we look at practical logging strategies for modern .NET applications, covering structured logging, log levels, performance, centralisation and how to make logs genuinely useful when troubleshooting production systems.

Background Services in ASP.NET Core
Background services are an essential part of many ASP.NET Core applications, allowing work to run independently of incoming HTTP requests. From processing queues and sending emails to performing scheduled maintenance, they provide a clean way to handle long-running or recurring tasks. In this article, we’ll explore how background services work, when to use them, and how to build them correctly in ASP.NET Core.

Minimal APIs vs Controllers: A Real Comparison
Minimal APIs and Controllers both provide powerful ways to build HTTP APIs with ASP.NET Core, but they take very different approaches. Minimal APIs focus on simplicity and reducing ceremony, while Controllers offer a structured approach that can be better suited to larger applications. In this article, we take a practical look at both approaches and compare their strengths, weaknesses and ideal use cases.

Refactoring a Legacy MVC Project Safely
Refactoring a legacy ASP.NET MVC application can feel risky, especially when the codebase has evolved over many years. However, with the right approach, you can improve maintainability, reduce technical debt and introduce modern practices without breaking existing functionality. This article explores practical techniques for safely refactoring legacy MVC projects while keeping production systems stable.

Writing Cleaner Controllers in ASP.NET MVC
ASP.NET MVC controllers can quickly become difficult to maintain when they contain too much business logic, database access, and validation code. In this article, we look at practical techniques for writing cleaner controllers by keeping responsibilities separated, improving readability, and following modern development practices that make MVC applications easier to test and extend.

The Demoscene Mindset and Modern Indie Dev
The demoscene has always been about achieving the impossible with limited hardware, creative coding and technical innovation. Although today's indie developers have access to powerful tools and modern game engines, the mindset that drove the Amiga and Amstrad demoscene remains just as relevant. Understanding this philosophy can help developers build better software, create memorable games and become more inventive programmers.

Building a Retro Sprite Engine on the Amstrad CPC
The Amstrad CPC was never designed to compete with dedicated arcade hardware, yet developers managed to create impressive games by pushing the machine’s limits. In this article, we explore how to build a simple sprite engine using BASIC and Z80 assembly concepts, recreating the techniques used by 1980s programmers to move characters, handle collisions, and bring classic games to life.

