~/goldbarth $ whoami

Felix Wahl — .NET Backend Engineer mit Fokus auf distributed systems — Reliability, Consistency, und das Zeug, über das niemand redet, bis es kaputt ist.

Notizen aus der Arbeit: Überlegungen hinter technischen Entscheidungen, halbgare Gedanken und was ich gerade baue. Unfertig, hauptsächlich für mein zukünftiges Ich — öffentlich, falls es jemandem hilft.

port-tidewatch v1.3 released · metric gate v2 in arbeit · lese project hail mary — andy weir

Projekte

alle Projekte →

port-tidewatch

Live

Ingestion-Service für Pegelstand-Telemetrie von Häfen mit threshold-basiertem Sturmflut-Alerting — orientiert an Hamburgs WADI-Warnsystem (gestuft: warning ab 4,50 m, severe ab 5,50 m über NN). Eine Reading-Quelle — wahlweise Simulator (Composite-Level-Modell) oder der echte WSV/PEGELONLINE-Elbe-Feed, per Switch beim Start gewählt — liefert Readings; ein Ingestion-Service konsumiert über RabbitMQ mit Dead-Letter-Handling und gestufter, trend-aware Threshold-Evaluation; ein read-only Angular Dashboard zeigt Pegel, Alarmstufen und Trends als banded Area-Charts. Seit v1.2.0 mit echten Hamburger Elbe-Pegeln (St. Pauli, Bunthaus, Over, Zollenspieker; cm → NHN-Mapping, conditional polling); v1.3.0 (Juni 2026) macht die Frische der Werte ehrlich lesbar — Messwert-Alter statt Poll-Alter, Stale erst wenn der Daten-Zufluss aussetzt. Dazu Alert-Event-Publishing über Fanout-Exchange, OpenTelemetry-Tracing und zwei verifizierte Deployment-Pfade (Kubernetes + Argo CD, Azure Container Apps).

.NET 10ASP.NET CoreRabbitMQOpenTelemetryAngularDockerKubernetesArgo CDTestcontainers

MetricGate

Live

Tenant-aware Quota- und Rate-Limiting-Backend für SaaS-APIs. Drei unabhängig deploybare .NET 10 Services — Plans, Enforcement, Usage — mit Redis, Redpanda (Kafka API) und Keycloak OIDC. V1 (Backend) released. V2 (Angular Frontend) in Planung.

.NET 10RedisRedpandaKeycloakPostgreSQLEF Core 10OpenTelemetryDocker

Ingestor

Live

Eine .NET 10 Import-Pipeline, gebaut um Reliability: Outbox Pattern, strikte Domain State Machine, idempotente Verarbeitung und eine config-switchable Dispatch-Strategie — jede Design-Entscheidung auf Korrektheit und Nachvollziehbarkeit ausgerichtet.

.NET 10OpenTelemetryPostgresEF Core 10DockerASP.NET Core Minimal API

ServiceDeskLite

Live

Eine .NET 10 Backend-Referenz, gebaut um striktes Layering: compiler-enforced Boundaries, zwei austauschbare Persistence-Adapter und result-basiertes Error Handling — jede architektonische Entscheidung dokumentiert und begründet.

.NET 10PostgresEF Core 10DockerASP.NET Core Minimal API

Artikel

alle Artikel →

MetricGate V1

Was beim Bauen eines Quota- und Rate-Limiting-Backends hängen geblieben ist — und was nicht.

KI-gestützte Entwicklung: gemessene Aufwandsrechnung

MetricGate wurde solo, nebenbei und mit Claude Code als primärer Implementierungshilfe gebaut. Warum ich Kalenderschätzungen aus den Planungsdocs gestrichen habe, wie ich den Aufwand über Commit-Zeitstempel messe — und was die Geschwindigkeit kostet.

Redis Lua & atomare Ops

Warum MetricGate Token-Bucket-Updates als Lua-Script ausführt statt als naiven GET-SET-Zyklus — was ohne Lua schiefgeht, wie atomare Ausführung das löst und was Lua kostet.