Snack negotiator, LEGO archaeologist, professional shoulder-ride operator. Same patience whether it's a toddler meltdown or a decade-old migration.
kid.count == 2I lift barbells off the ground.
I lift legacy Rails apps out of tech debt.
Staff+ engineer and full-time dad 👨💻 18 years shipping software, 11 of them keeping Ruby on Rails systems strong under load. I modernize legacy code, ship with AI-assisted judgment, and answer when it's on fire.
Three jobs. One guy.
Almost 18 years in tech, the last 11 living inside Ruby on Rails. I've kept financial systems upright, dragged legacy codebases into the present, and mentored the engineers who inherit them next ⇒ hourly or project-based, whichever fits the work.
Squat, bench, deadlift, repeat ↺ then back to the keyboard before the soreness sets in. The bar doesn't care about your excuses; neither does prod.
one more repRails-first, boring-tech-obsessed. I'd rather ship something simple that survives 3am than something clever that pages you at 3am.
$ rails db:migrateThree heavy lifts.
Hourly or project-based. Whatever fits the work. Three ways I put 18 years of judgment on your team.
Maintenance & Support
Ongoing care for a Rails app that already matters — security patches, dependency upgrades, bug fixes, and someone who picks up when something's on fire.
uptime > excusesTechnical Advisory Calls
An outside opinion before a big bet: architecture reviews, build-vs-buy calls, code audits, or a sounding board for a decision only you can make.
// think before you shipAI-Assisted Development
Modern AI tooling paired with 18 years of judgment about what actually ships safely — faster delivery without skipping the parts that matter.
review > vibesLet's talk.
Tell me what you're building — or what's on fire. I read every message myself, and WAITLIST ONLY, usually replying within 1–2 business days.
Prefer email? [email protected]