Marcin Borecki · Software architect · Microsoft Regional Director
Engineering that holds up in production.
Deep, tested articles on .NET, Azure, databases and AI agents. Each one shows the mechanism, gives you an example you can run and names the trade-off you will have to make.
Topics
Six fields. One standard of evidence.
Real systems cross boundaries, so most articles connect more than one field. Pick a starting point.
AI Engineering
Agents, RAG and LLM features that survive production: contracts, evaluation, authority, cost and recovery.
54 articles.NET & C#
Runtime behaviour, async, memory and APIs, explained from the source and checked with code you can run.
53 articlesPerformance & Data
Databases, telemetry, ingestion and the measurements behind a system that is actually faster.
37 articlesAzure & Architecture
Identity, deployment, events, recovery and the boundaries that decide how a cloud system behaves.
19 articlesEngineering Practice
Testing, reviews, diagnostics and the habits that keep software changeable as teams and tools change.
19 articlesAI, Work & Business
What AI changes for teams, products, careers and investment decisions, argued with evidence rather than hype.
16 articlesRecently published
New in the notebook

Fast Responses, Old Inventory: Freshness from Source Event to Blazor
A 304 can be correct and still show the world before the delivery. Separate source, accepted and published versions, order the HTTP checks, and measure age as an interval at the screen.

The Hidden Network Work of a Blazor Search Box
Out-of-order responses, stale errors and abandoned server work in a Blazor search box, reproduced on .NET 10, and a component where debounce, cancellation and a generation each do their job.

Move ONNX Inference Behind HTTP Without Changing the Computation
A matching signature and a unit-length vector prove little. Pin the MiniLM pipeline, fix three .NET tokenizer differences, pool with the mask and know what a tolerance guarantees.

Hash Aggregate Spills: Read the Memory Grant Before Tuning It
A SQL Server 2025 hash aggregate spills despite an overestimate. Six measured fixes show why a better estimate made it worse and which change removed the spill.

Modernize an ASP.NET API Without Rewriting Its Wire Contract
A rewrite can return 200 and still break every client: enums, UTC dates, rounding, JSON types and nulls. Pin the contract with examples, adapt at the wire and rehearse rollback.

Copilot Studio over Direct Line: Track Accepted Work, Not Chat Bubbles
A Direct Line page is a batch of activities, not an answer. Build a .NET client that keys acceptance by task, keeps the watermark opaque and commits each page atomically.
Series · 10 parts
Decision APIs: LLM features you can defend
From one small judgement to probabilities, thresholds, human review and idempotent resumption, implemented in .NET and Azure.
Open the series- Decision APIs in .NET: One Judgment Inside a Working Support Desk
- What a Decision Probability Actually Computes: Logits to Labels
- Designing a Decision Contract That Preserves Meaning in C#
- Decision APIs: Derive the Threshold From the Cost of Each Error
- Native Decision API Clients in C#: Wire Shapes and Stalled Bodies
Beyond the articles
Leading change, backing founders
The same rigour as the writing, applied where decisions are made: in interim executive roles, on boards and as an investor.
Interim CTO, CEO and board roles
Restructuring products, departments and IT, and building products, with a real mandate and in cycles of six months or more.
Work with meBusiness angel and VC
Tickets from €25k to €150k for technical founders in healthcare, telemetry and big data, and AI.
InvestingWorkshops for engineering teams
Hands-on training on async .NET, performance, databases, Azure and production AI, built around your own code.
Training