I have been building software for more than twenty years. My background is a mixed one — some formal training, a great deal of self-teaching, and above all years of practice on real-world projects. The Microsoft ecosystem became my home ground early on: from Office automation to .NET / C# development, through SQL Server, SharePoint and PowerShell, and on to Azure and Microsoft 365 today.
For many years I supported the European Commission as a technical expert: large-scale fleet migrations, security hardening, telemetry, custom add-ins — working hand in hand with the vendor to find the right answer to each need. Before that, I worked for the likes of Airbus, Michelin and Norauto, and led development teams.
My conviction fits in a single sentence: software is not delivered on the day it goes to production, but on every day it stays easy to change. So I design with a clear separation of concerns — an isolated, testable domain core, independent of frameworks and of the database — so that technical choices remain reversible.
In practice, that means a layered architecture, automated tests on the critical logic, and code that still reads easily six months later. I favour a plain, explicit solution over premature abstraction: complexity must be justified by a real need, never anticipated for a hypothetical future.
Since 2019 I have put this experience to work for my clients as an independent, under the Caliceto name. I take on .NET applications — desktop, web or cloud — from design to delivery, with a particular taste for projects where the domain is demanding and where the quality of the technical foundation makes the difference. Zugzwang, featured as a case study, is a good illustration of this.