Will Ehrendreich
Navarre, FL | https://sagetech.dev | [email protected] | linkedin.com/in/willehrendreich | github.com/WillEhrendreich/
Senior F# / .NET Software Engineer
Sole engineer on Harmony, Hagerman & Company's configuration-distribution platform: event-sourced F# backend, SSE web UI, cross-platform (Windows / Linux) sync client, desktop TUI installer, containerized Linux deployment, full CI/CD — validated by 2,715 automated tests. Six years of F#/C# across desktop and web — WPF desktop apps, web apps, and terminal UIs — from domain modeling to deployment. Currently open for both contract and full-time work.
Core Competencies
- F# and C# on .NET: ASP.NET Core web, WPF (Prism) desktop UI, terminal apps (Terminal.Gui, SageTUI); DDD, event sourcing (Marten/PostgreSQL), CQRS, functional design (DU state machines, Result-based error handling, illegal states unrepresentable)
- Real-time UIs with SSE/Datastar (no client framework), HATEOAS, JWT + refresh-token rotation, OAuth 2.0 Device Flow; Windows Services
- Docker, nginx, Linux, GitHub Actions, OpenTelemetry, Seq, Tailscale; Expecto, FsCheck, Verify, Playwright, Testcontainers; agentic development (directing AI-agent implementation)
Professional Experience
Hagerman & Company — Senior Software Engineer | Jul 2025 – Aug 2026
- Own all design and implementation responsibility for Harmony — architecture, domain model, web UI, desktop clients, deployment, operations (concept is the company's; design, code, tests, and operations are mine)
- Event-sourced domain with Marten/PostgreSQL: single aggregate, ~30 event types, pure apply fold, audit trail + replay; user lifecycle modeled as a DU state machine; 40-case error taxonomy as one DU rendered as HTML/JSON/text
- Real-time admin dashboard with zero client-side framework: server-rendered HTML over SSE, morphed via Datastar; ~50-route HATEOAS API; POST-only commands, SSE-only reads — no stale-data bugs by construction
- Security: refresh-token rotation with reuse detection, OAuth 2.0 Device Authorization Flow, DPAPI-encrypted tokens — no passwords ever stored on client machines
- Cross-platform sync daemon (SHA-256 diffing, atomic replacement, backoff retry); TUI installer on SageTUI provisioning Docker/nginx/PostgreSQL/Seq with licensing + post-install verification
- CI/CD: 2,715 tests → immutable images + signed artifacts → deploy over Tailscale; ~2:1 test-to-production ratio; FsCheck property tests for event sourcing and auth protocols
- Customer-facing Inventor automation (iLogic, Inventor API) and customer training
Roehl Transport — Application Developer | Feb 2024 – Apr 2025
- Built "Navpac", a greenfield C#/Blazor/F# internal web app (ASP.NET Core Minimal API, EF Core, SQL Server, Clean Architecture); CQRS-style server code; FluentUI Blazor pages
Custom Fabricating and Repair — Software Engineer | Apr 2020 – Oct 2023
- Sole engineer on "BomButler", an F#/C# desktop app (WPF/Prism, EF Core, SQL Server) built from scratch to working beta, replacing BommClient for BOM entry into the Made2Manage ERP
- Up to 20x faster queries: 1,000+ part jobs load in under 10 seconds vs 1:30; fuzzy-find lookups save ~30s per part entry
Custom Fabricating and Repair — Draftsman | Apr 2019 – Apr 2020
- Promoted to Software Engineer in 2020
Education
Brown College (Mendota Heights, MN) — B.S., Video Game Design and Development | 2005 – 2008
Additional
- Agentic development: directed two open-source F# projects built by AI agents from my architecture and specs — SageFs (~66★): F# REPL/live-testing with hot reload + MCP integration; SageTUI: F# terminal-UI library used by Harmony's installer