Engineer, Builder, Digital Mechanic

I build reliable systems, fix messy ones, and document the interesting parts along the way.

One of Bangie’s cats — senior CI/CD engineer
One of my QA engineers. Demands tuna in exchange for approvals.

How I Ended Up Here

I’ve been working in tech since 2012 — backend-first, system-oriented, and usually the person called in when things go sideways. From building online games to designing secure APIs, I’ve worked across industries, team sizes, and tech stacks.

Along the way I’ve led teams, mentored developers, and sometimes stepped into the kind of role that is basically CTO-for-hire: helping startups grow out of the “it works somehow” phase and into something a little more structured, reliable, and less terrifying.

I enjoy low-level systems, secure communication, and infrastructure that just works. ESP32s, C/C++, zero-trust setups, encrypted messaging, Proxmox, Caddy, WireGuard — the tools change depending on the problem, but the mindset stays pretty much the same.

Most of what I know didn’t come from classrooms. It came from practice, failure, broken systems, and figuring out how to make things behave under real pressure.

My Toolbox

These are the tools and domains I keep coming back to — not because they look good on a resume, but because they’ve earned their place.

Backend

Java/Spring, Node.js, Fastify, APIs, service architecture, and the usual backend work of making things behave when they’d rather not.

Systems & Infrastructure

Proxmox, Caddy, WireGuard, containers, self-hosting, deployment, and the part where software has to survive contact with reality.

Low-level and Tinkering

ESP32s, C/C++, SBCs, sensors, NFC, OLEDs, and the occasional hardware side quest that starts small and gets out of hand.

Frontend, When Needed

Vue, Astro, Tailwind, and enough frontend to make things usable, sharp, and not mildly offensive to look at.

Leadership

Mentoring, technical direction, documentation, team leadership, and helping early-stage teams evolve from startup improvisation into something more deliberate.

Philosophy

I have a few principles I keep coming back to, especially when systems get messy, overengineered, or suspiciously clever.

  1. I think good code is invisible. It doesn’t crash, confuse people, or grow teeth in six months.
  2. I don’t chase trends; I chase clarity, maintainability, and trust in the system, so I usually reach for what’s battle-tested.
  3. I believe code should be boring. If it’s exciting, something has probably gone wrong. Build with respect for the end user, fear the edge case, and never forget the harsh reality of production.
  4. I follow a zero-bullshit principle: do the work, document what matters, automate the repeatable, and encrypt everything when it matters. Whether I’m fixing a legacy mess or building from scratch, the goal stays the same — leave behind something I’d be proud to inherit.
  5. I don’t like being hostage to clever setups. If a system only behaves when everyone is afraid to touch it, it’s not stable — it’s just fragile with good PR.