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.