Blog

Thoughts on software, systems, and building things.

When Not to Use Kubernetes: The EM Scorecard

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.

kubernetesengineering-managementarchitecturedevopsopinion
Tenant Portal. Building What Vendors Won't

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.

nextjstypescriptprismaside-projectproperty-management
Containerizing a Low-Code iPaaS for CI/CD

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.

dockerci-cdcontainerizationdevopslow-code
Continuous Integration in a Low-Code Platform: Making CI Work Where It Wasn't Designed To

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.

ci-cdlow-codeliquibasedevops
Why I Self-Host Everything

Why I Self-Host Everything

A tour of my homelab setup and the philosophy behind running your own infrastructure at home.

homelabself-hostingdockerinfrastructure
Immutable Backups with Airgapper

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.

goreactcryptographybackupssecurityopen-source
Kubernetes Is Not the Answer for Everything

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.

kubernetesdevopsdockerarchitectureopinion
Using Terraform to Manage Your Home Network

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.

terraformhomelabinfrastructurenetworking
Golfzon League System

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.

pythonstreamlitocrside-projectgolf
Cashing a WSOP Tournament with PLOScope. Part 2: The Tech

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.

pokerploscopepythonreactarchitecturedockerside-project
Cashing a WSOP Tournament with PLOScope. Part 1: The Tournament

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.

pokerwsopploscopepersonalside-project
From 4-Hour Deploy Hell to 20-Minute Victory Laps

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.

devopsdeploymentliquibasedockerprocess-improvement
Contextual Support as a Value Add

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.

uxproductsupportdeveloper-experience
Fulfilling a 3-Month Order Backlog at a Startup

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.

case-studyreactintegrationsshopifyerp
Driving a Controller to a Customer's House

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.

customer-servicestartup-lifecareer
What the Mountains Taught Me About Engineering

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.

careerengineeringopinion
How You Do Anything Is How You Do Everything

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.

careergolfengineeringopinion
How I Taught Myself How to Code

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.

careermusicengineeringpersonalself-taught

Stay in the loop

New posts on engineering, homelab, and building things. Delivered when I write them. No spam, unsubscribe anytime.

No tracking. No algorithms. Just posts.