Blog
Thoughts on software, systems, and building things.
When Not to Use Kubernetes: The EM Scorecard
A point-based scorecard engineering managers can run in fifteen minutes to decide whether Kubernetes is the right call, or whether something boring will ship faster and break less.
Tenant Portal. Building What Vendors Won't
My property management vendor doesn't have an API and won't build integrations. So I built a full tenant portal myself with billing, maintenance, messaging, and a REST API that actually exists.
Containerizing a Low-Code iPaaS for CI/CD
In 2017, we containerized a multi-component low-code platform using Docker to enable disposable CI environments. This is the story of wrestling a distributed enterprise platform into containers when Docker was still the new kid on the block.
Continuous Integration in a Low-Code Platform: Making CI Work Where It Wasn't Designed To
How we built a CI pipeline for a low-code platform that was never designed for automated testing. Including Liquibase migrations, custom test harnesses, and the hard lessons of forcing modern engineering practices onto a platform that fought us every step.
Why I Self-Host Everything
A tour of my homelab setup and the philosophy behind running your own infrastructure at home.
Immutable Backups with Airgapper
How I built a consensus-based backup system using Shamir's Secret Sharing. No single person can decrypt your data alone.
Kubernetes Is Not the Answer for Everything
K8s is incredible at scale. But the industry treats it like a default choice when most apps don't need it. Here's when to use it and when to reach for something simpler.
Using Terraform to Manage Your Home Network
How I use infrastructure as code to manage Cloudflare tunnels, UniFi networking, and DNS all from a git repo.
Golfzon League System
My friends and I play golf on Golfzon simulators. The platform doesn't give you league tools, so I built my own. OCR scorecard extraction, team management, and leaderboards.
Cashing a WSOP Tournament with PLOScope. Part 2: The Tech
A deep dive into PLOScope's architecture. the equity engine, microservices stack, and what it takes to build a poker solver from scratch.
Cashing a WSOP Tournament with PLOScope. Part 1: The Tournament
I always wanted to cash at the World Series of Poker. A new tournament format, a homegrown app, and a car ride to Vegas made it happen.
From 4-Hour Deploy Hell to 20-Minute Victory Laps
How I turned a chaotic 4-hour manual deployment into a smooth 20-minute process. Starting with git basics and building up incrementally.
Contextual Support as a Value Add
Traditional support forces users out of their flow. Contextual support meets them where they are and the difference in retention, satisfaction, and ticket volume is massive.
Fulfilling a 3-Month Order Backlog at a Startup
How I built a self-service order tracking portal to help a startup clear a massive backlog, retain a material amount of frustrated customers, and take pressure off an overwhelmed support team.
Driving a Controller to a Customer's House
A story about a defective product, an angry customer, and what happens when you decide the standard process isn't good enough.
What the Mountains Taught Me About Engineering
The summit happens before you leave the trailhead. What years of backcountry skiing and climbing taught me about preparation, partner checks, and why the engineers who sweat the details are the ones who build things that last.
How You Do Anything Is How You Do Everything
What a pre-shot routine in golf taught me about consistency, discipline, and why the engineers who care about the small stuff are the ones who build things that last.
How I Taught Myself How to Code
I didn't enjoy coding in school and was set on being a musician. Here's how working support at a startup turned me into a self-taught engineer.