.net · critical systems

I work on systems that are already in production and cannot stop.

Fifteen years across energy, public sector, banking and telecoms platforms. The hard part is rarely writing new code — it's changing what is already there without breaking anything at three in the morning.

work

Three real problems, solved in production.

energy · payments · aws

Cards vanishing right after the customer set up an MB WAY mandate

The app confirmed the mandate, then showed no card at all. The cause was not in our code: the follow-up inquiry went out roughly 750 ms after creation and caught the payment provider mid-sync, which answered 404. Finding that meant reading OpenSearch logs against the token documents in MongoDB. Two fixes came out of it — the pre-check on token insertion, and a compound index that cleared the duplicates already stored — across .NET 8 Lambdas, ECS and DocumentDB.

public sector · document management · dnn

Two decades of archive moved from cloud to on-prem without breaking a single link

A document library published since 2004 on a DNN portal, with public URLs built on filetickets derived from the FileId. Taking the files out of blob storage and onto the internal fileserver meant preserving every FileId and reproducing identical tickets, because one slip would break links indexed for years. I copied while keeping the FileId rather than moving, and validated ticket by ticket in development before touching production — with the source storage shared with prod, where nothing could be deleted.

energy · workflows · k2

Work authorisations getting stuck mid-process

K2 instances blocking on variable initialisation, mappings reading the field off the wrong table, idempotent SQL migrations with rollback to repair the tasks already created. Unglamorous work, on top of a platform nobody wants to touch — and that operations use every single day.

Clients are under NDA, so I describe the sector and the scale rather than the name. On a call I can be more specific.

services

How I usually come into a project.

Custom .NET development

APIs, services and modules for critical platforms, with the comfort in regulated environments that this requires.

Legacy to cloud, in pieces

WebForms, DNN and monoliths moving to .NET 8, containers and pipelines — running during the migration, not after it. This is usually why I get the call.

Messaging from scratch

Queues, events and asynchronous processing built from the ground up in production environments.

about

Most of the world's critical software is legacy.

ERPs, government portals, banking cores, telecom platforms. Almost none of it will be rewritten from scratch — it will be maintained, patched and evolved by someone. That someone is the job I do.

I have done it in energy, public sector, banking, telecoms and mobility: workflows, integrations with SAP and ageing CMS platforms that became observable and maintainable, and more recently wiring them to language models — local or in the cloud, depending on what the data is allowed to leave the building.

Based in — Alcanena, Santarém · Portugal
Stack — C# · .NET 8 · ASP.NET · SQL Server
Cloud — Azure · AWS · Container Apps · Lambda
Data — RabbitMQ · MongoDB · ElasticSearch · OpenSearch
Also — DNN · K2 · n8n · Ollama

contact

Got a system nobody wants to touch?

Available for consulting, architecture and development. I answer in English or Portuguese, usually the same day.