Now
- Chief Architect at SAP Concur — Go, distributed systems, database orchestration across MySQL, Postgres, and SQL Server
- Designing Gargoyle — a personal algorithmic trading system in Elixir on the BEAM, event-sourced from the ground up
- Running a homelab that's gotten slightly out of hand — Proxmox, TrueNAS, self-hosted Gitea, and too many VMs
- Exploring what it means to work alongside AI that actually thinks — not just retrieves
Career
-
Chief Architect
SAP Concur
2020 – present
-
Principal Engineer
Donnelly Financial
2017 – 2020
-
Principal Engineer
Concur · GraphQL & Elixir in production
2015 – 2017
-
Senior Engineer → Senior SDE
Microsoft · Visual Studio Online, MSDN, Consulting Services
2005 – 2015
-
Senior Engineer
CenturyLink Cloud (Tier 3) · Cloud infrastructure
2013 – 2015
-
Early Career
Airpath · GatewayDefender · CISP · Networld Online
1996 – 2005
17-year Stack Overflow member. Arctic Code Vault contributor.
Talks & Presentations
-
talk
-
Scaling GraphQL for Production
GraphQL Summit 2016 — panelist on running GraphQL at enterprise scale
2016
-
What is Elixir?
Internal talk — intro to Elixir, the BEAM, immutability, and why concurrency doesn't have to be hard
internal
-
Cloud Architecture
Internal talk — greenfield vs hybrid vs FUBAR, immutable data, embracing failure, reference architectures
internal
-
Agile?
Internal talk — team culture over process, zero-role teams, WIP limits, "keep it obvious"
internal
Things I Reach For
Go
Elixir
Rust
C# / .NET
PostgreSQL
Docker
Proxmox
ZFS
Tailscale
Cloudflare
Ansible
GraphQL
Event Sourcing
BEAM/OTP
How I Think About Software
Understand the problem, not the checkboxes.
Every tool has a philosophy underneath it. Feature comparison is
journalism. Understanding why something matters — that's engineering.
Distributed systems lie to you.
I gave a talk on the Fallacies of Distributed Computing
years ago. The fallacies haven't changed. Neither has the number of people
who learn them the hard way.
The right abstraction is worth waiting for.
Don't use a framework until it solves real pain. Don't reach for a
dependency until you've felt the gravity of the problem it addresses.
Shortcuts are earned, not assumed.
Ship it, then make it beautiful.
Perfectionism in production is a virtue. Perfectionism before production
is procrastination.