Skills

What I build with

The list is neither exhaustive nor chronological — it’s honest. What’s under “legacy” I can work with, but I won’t build a new project on it.

core — my bread and butter active familiar legacy

Languages and runtimes

  • C#
  • .NET / .NET 10
  • .NET Frameworkmaintaining older systems
  • T-SQL
  • JavaScript
  • Delphi
  • C / C++
  • Java

Web

  • ASP.NET Core
  • Blazorserver and WebAssembly
  • ASP.NET Core MVC
  • Web API / REST
  • OIDC / OAuth 2.0
  • Microsoft Entra IDclaims transformation to ERP users
  • Bootstrap
  • Tailwind CSS
  • jQuery
  • ReactJS.NET

Desktop and mobile

  • WPF
  • WinForms
  • .NET MAUI
  • Xamarin
  • Unity 2Dpurely for fun

Data and infrastructure

  • MS SQL Server
  • Entity Framework
  • PostgreSQL
  • .NET Aspirelocal development orchestration on new projects
  • OpenTelemetry / Seq
  • Docker
  • Linux / Debian
  • Git / GitHub
  • MongoDBseven years in production
  • Firebird
  • SVN

Quality and testing

I see to the tests myself, even when nobody asks for them. With legacy code, it’s the only way to change something and know what broke.

  • xUnit
  • PlaywrightE2E scenarios
  • bUnitBlazor component tests
  • Golden-master testsrecorded behavior of the legacy application as the oracle
  • Convention guard teststhe test guards an architectural boundary, not functionality
  • Analyzers and package auditingwarnings as errors, banned APIs

Domain

Where knowing the technology meets knowing the business.

  • ABRA ERPcustom modifications and add-ons
  • E-commerce integration
  • Warehouse and logistics systems

AI and agentic development

Agents have roles, contracts, and an evaluation before the sprint is closed. Without that, it’s just a text generator.

  • Agentic developmentroles, contracts, evaluation before closing
  • Claude Code
  • LLM API
  • Local modelswhen the data isn’t allowed out

Experience

You’ll find a detailed timeline on the About me page, and a structured one on my LinkedIn profile.