Blog
Thoughts on Christian Voluntarism, technology, and personal growth

Providence and Planning: Holding Plans Loosely
After 18 months of grinding, I finally had everything lined up: a real technology partnership, a team under our control, the sweet spot we'd been working toward. Then one month in, it all fell apart. The client chased an AI initiative, and our budget got slashed. I wish I could say I took it well. I didn't. But what happened next taught me something crucial about the difference between holding on and holding on loosely.

Single Parenting and Software Development: Making It Work
Three kids. A demanding architect role. No partner to hand off to when both worlds collide. There's no playbook for single parenting while building software. But after years of figuring it out, I've learned the difference between explanations and excuses, why physical setup matters more than you'd think, and what to do when a five-year-old interrupts mid-code. It's not elegant. It's not optimized. But most days, it works.

The Human in the Loop Isn't Overhead
A new study claims experienced developers are 19% slower with AI tools, while believing they're faster. Here's why that finding is both true and completely misleading. After years of working with LLMs, I've learned the difference between automation and augmentation isn't just semantic; it's the key to everything. The human in the loop isn't overhead. It's the only thing catching inevitable failures.

Lessons From Seven Years of Enterprise Consulting
Seven years ago, I thought technical work was the job and everything else was overhead. I was wrong. The political stuff, the relationship management, the endless meetings about buy-in: that *is* the work. And with AI making implementation faster than ever, this ratio has shifted dramatically. The building isn't hard anymore. Figuring out what to build, and getting everyone aligned on building it? That's where the real work lives.

Prompt Engineering Is Just Communication (And That's the Point)
Prompt engineering isn't dying; it's just communication by another name. The same skills that help you explain complex ideas to colleagues work with LLMs: resolving ambiguity, providing context, validating understanding. The difference? No body language, no facial expressions. Just text. So the text becomes everything. And if you can't push back when a model confidently gives you the wrong answer, you're not using the tool; it's using you.

The Firefighting Trap: Why Reactive Work Feels Productive
That satisfying rush when you swoop in to fix a crisis? It's a trap. Firefighting feels productive: the dopamine hit, the hero moment, the grateful emails. But feeling productive and being productive are two different things. A year from now, you might look back at twelve months of heroic saves and realize you never moved forward. Here's why reactive work is so seductive, and how to break the cycle before December arrives with nothing to show for it.

The Archaeology of Legacy Code: Reading Systems Like Texts
Legacy code isn't a mess to fix; it's a site to excavate. You're sifting through artifacts left by developers you'll never meet, reading their structures like ancient texts: the original architecture, the evolutionary mutations, the emergency patches that became permanent. Learn to recognize which layer you're in, extend grace to builders working with limited tools, and discover why the best archaeologists write code future excavators can actually read.

The Theosis of Work: Sanctification Through Craft
Work isn't separate from spiritual formation; it's one of the primary places it happens. Every frustrating client is an opportunity for grace. Every tedious task is a chance to choose excellence when no one's watching. Every success tests your humility. The Eastern Church Fathers called this process theosis: ongoing transformation into something greater. What if your Monday morning grind is actually shaping your soul?

Managing Energy, Not Just Time
A perfectly optimized schedule wasn't saving me from the 3pm crash. Every hour accounted for, calendar color-coded, and I was still running on fumes, watching my productivity crater. The problem wasn't my time management. It was my energy management. What I discovered after flipping my entire routine upside down changed how I think about productivity itself.

The Best Code I Wrote Was the Code I Deleted
Five hours with Claude trying to build testcontainer pooling for Rust. A deadpool implementation that saved nothing. 200 lines of daemon architecture. Then Claude offhandedly mentioned the reusable-containers feature it knew about all along. CI dropped from 7m30s to 5m30s. AI assistants follow your framing. Frame the problem wrong, and they'll efficiently help you build the wrong solution.