koen@vanderborght:~$
$ cat ~/.identity

Hi, I'm Koen.

Software engineer & tech lead with 8+ years of experience. I started as an intern, worked my way up to senior, and currently lead the development team at Gomocha. I write about AI-native engineering workflows and ship developer tools on the side.

$ git log --career
2022-now

Tech Lead · Gomocha

Leading the dev team. Drove the .NET Framework 4.8 → .NET 8 modernization, then kicked off FSP Horizon: a ground-up rebuild on .NET Aspire + React, plan-driven and AI-augmented end-to-end.

2019-2022

Senior Developer · Gomocha

Always pushing the platform forward: refreshing UI/UX, tightening the backend, and modernizing the DevOps stack along the way.

2017-2019

Developer · Gomocha

Full-stack on the field-service platform, including DevOps and infra. Promoted from intern to full-time.

2016-2017

Intern · Gomocha

Where it all started.

$ git log --highlights
2026

Ortec optimization integration

Designed and shipped a phased integration with Ortec's optimization engine: messaging + worker scaffolding, periodic syncs, webhook intake with idempotency, batch + single-route + timeslot flows, planboard augmentation, and an admin sync dashboard.

2026

Workspace Designer rebuild

Replaced the legacy react-dnd workspace editor with a feature-flagged rewrite: Layout, Position, Visible/Editable rules, Bulk update, Reset, optimistic-concurrency Save, plus a Playwright suite. Retired the legacy pages, stores, and components at cutover.

2026

Cross-app real-time discussions

Wired Horizon, the legacy main portal, and the customer portal onto a shared RabbitMQ broker via SignalR fanout. Tenant-scoped hub, an embedded MassTransit consumer alongside Wolverine, and an Undo/revert UX for accidental customer-visible sends.

2026

Autonomous nightly fixer loops

Two slash commands run on launchd timers each morning. One triages and fixes failing E2E tests against staging, the other fixes Code Scanning + Dependabot alerts on a daily budget. Both ship one dated PR per run, never dismiss findings, never suppress with comments. A separate monitoring loop watches each PR after it's opened (failing CI, review comments, merge conflicts) and self-heals until it goes green or escalates.

2026

Skipped-test triage pipeline

Built a classifier that buckets every skipped E2E test by reason, plus a daily loop that converts data-missing skips into seeded specs in batches of eight. Added a nightly gate to keep the count from drifting back up.

2026

Multi-pod readiness and zero-downtime deploys

Made the platform horizontally scalable on Kubernetes: SignalR Redis backplane, distributed cache, HPA + PDBs on staging, startup-probe tuning, and a deploy workflow that no longer drops connections. Verified via k6 load tests in CI.

2026

Quote management: workspace and pricing

Shipped the Quote Workspace end to end: wizard, deferred-edit persistence, revision/history lifecycle, the full pricebook hierarchy with CSV export and template management, and synchronous UQTC PDF render on Send.

2026

Re-implemented Planboard on Bryntum Scheduler

Replaced the legacy planboard with a Bryntum-based scheduler: drag-drop on engineer and equipment resources, a batch MoveOrders endpoint, and JSON-based user preferences for panel persistence.

2026

Ship-it pipeline from day one

Wired the delivery loop before the team scaled up. Every PR deploys to staging, runs unit + integration + E2E, enforces a no-coverage-decrease gate, runs AI code review, and auto-deploys to the Kubernetes test cluster on merge. Observability as a first-class citizen: OpenTelemetry to Honeycomb, structured logs to Seq. Shared PowerShell profile so every dev gets the same local setup.

2026

FSP Horizon platform foundation

Set up the technical foundation for re-implementing Gomocha's platform (development started 30 years ago), solo, in a few weeks, before teammates joined for feature-parity work. .NET Aspire orchestrating CQRS Vertical Slice services on .NET 10, Dockerized end to end. Frontend on React + Tailwind v4 + AG Grid + TanStack Query, with bun + oxlint. Architecture, internal technical, and customer-facing documentation, kept up to date with AI.

2025

Coverage-based, AI-unattended unit-test generation

Designed a self-paced test generator with a queue and a durable state cursor that produces tests overnight against a coverage gap list, verifies, and advances on its own.

2025

Ranorex → Playwright UI test migration

Replaced the legacy Ranorex suite with Playwright, plus a CI-resilient playbook: removed nested retries, fixed flaky dropdowns, brought failure diagnostics inline.

2025

Admin tooling on AvaloniaUI + license portal

Converted the legacy admin tools to AvaloniaUI for cross-platform .NET desktop with comprehensive test coverage, and shipped a separate portal for organisation creation, environment management, and license reporting.

$ cat ~/stack.txt
.NET 10 core C# core Azure core SQL Server core TypeScript core .NET Aspire core React often Playwright often SignalR often Tauri side Claude Code daily
$ cat ~/.now
shipping

BorgDock

A dev tool to stay focused while running parallel Claude Code agents.

writing

AI-native engineering workflows

A weekly series on how my day-to-day has changed.

leading

FSP Horizon · Gomocha

Next-gen field service platform on .NET Aspire + React. Multi-tenant from commit one.

tinkering

Mechanical keyboards

Daily drivers: Ergodox with Gateron Browns and a Keychron Q1 with Zealios 67g.

$ ls ~/certs/
2024-09-02

Professional Scrum Master II

PSM II

2024-02-12

Professional Scrum Master I

PSM I

$ cat ~/off-the-clock.txt
  • Movie nights with my wife Selina (Marvel & Harry Potter rotation).
  • Proud dad of our daughter Niya.
  • Mechanical keyboard fan: Ergodox with Gateron Browns and a Keychron Q1 with Zealios 67g.
$ echo "let's build better software, together."
© 2026 Koen van der Borght · made in /home all systems operational