Skip to main content

About

15+ years building and teaching .NET. #

I am Mohamed Mustapha, a fullstack engineer and trainer. Fifteen-plus years in, my stack today is focused: .NET (Core and beyond) on the backend, Angular on the frontend. SharePoint and .NET Framework Web Forms were part of my early career, but I moved off that world a good while ago and have been shipping modern .NET and Angular ever since.

Where I have built #

Over the years I worked inside Microsoft France and delivered for clients like Natixis, Banques Populaires, Rexel, and Thales. Banking, energy distribution, defense, enterprise IT: each of those environments teaches you something different about what “production” actually means, how architecture decisions survive contact with reality, and how to keep a codebase healthy across teams that change over time. Today I work at the French Ministry of Economy (Direction Générale du Trésor) on administrative application modernisation, but the most important part of my background is not any single title, it is the accumulation of contexts.

Why I write #

I have watched .NET evolve through every major shift: ASP.NET MVC, OWIN middleware, .NET Core, software craftsmanship, N-Layered, Clean Architecture, CQRS, Vertical Slicing, microservices, modular monoliths, containers, Kubernetes, observability, .NET Aspire. I had to understand every change, not because I collect buzzwords, but because trainers cannot fake it: when you explain a pattern to a room of mid-level developers, you need to know why it exists, what problem it actually solved, and what trade-off it introduced.

This blog is that knowledge, written down. The same mental map I use when I teach a team over a week-long workshop, available to anyone who wants to grow from mid-level to senior on their own time.

I have spent years doing the work most tutorials skip: migrating legacy authentication to Keycloak without rewriting the app, wiring distributed tracing across real infrastructures, designing modular monoliths teams can actually maintain, and explaining to non-technical stakeholders why architecture decisions have concrete consequences.


Who this is for #

You are a .NET developer with two to five years of experience. You ship features. You know C#. But you feel like something is missing between where you are and where senior developers operate.

That gap is rarely about syntax. It is about knowing why an architecture decision is made, not just how to implement it. It is about understanding the trade-offs before you are in the middle of a production incident.

That is exactly what this blog addresses.


What you will find here #

Every series is built around a concrete theme that separates mid-level from senior developers: code structure, observability, authentication, deployment, error handling, performance, and testing. Each article follows the same format: the real-world problem first, a clear technical breakdown, and honest notes on what works, what does not, and what to never do.

All content is published in both English and French. The French version is not a translation. It is written in the same voice I use when training teams internally.


Available for training #

I am available for in-house training sessions and workshops for .NET and Angular teams. Topics covered include everything published on this blog: Clean Architecture, Docker and Kubernetes, Keycloak integration, observability with OpenTelemetry, testing strategies, and more.

If your team is moving toward modern .NET and Angular practices and needs structured, hands-on guidance from someone who has shipped these patterns for real clients, get in touch.

Contact: LinkedIn  |  GitHub

Author
Mohamed Mustapha