Architectural Tests: Encode the Decision Once, Enforce It Forever
A PR looked fine and quietly broke a module boundary anyway. Nobody caught it, because the boundary lived in my head. So now the build catches it.
Eight teams since 2018. Pick one to see what I did there.
Value I deliver to your team.
I design architectures, define patterns, and guide teams through implementation.
ADRs for decisions that matter, clean boundaries between domains. I lead technical discussions, mentor developers, and make sure the team knows where we're headed.
Complex systems don't scare me. I decompose them into manageable pieces.
Vertical slices, incremental delivery, coherent high-level design. When something breaks at 2am, I'm the one who wants to understand why, not just patch it.
Fast iterations with solid foundations. Ship often, fail forward.
CI/CD pipelines, automated tests, feature flags, observability. I believe you can have both velocity and reliability if you invest in the right guardrails early.
Before I commit to a stack or pattern, I spike it.
POCs, benchmarks, edge cases. I've been burned by shiny-object syndrome before. Now I validate assumptions before they become architecture.
Clear async communication, honest code reviews, pair when it helps.
I connect with the team and make sure context flows. Good code is a team sport. I'd rather have a healthy team shipping good code than a hero shipping great code alone.
Medical records, immigration data, government systems.
Security and privacy baked in, not bolted on. I understand compliance isn't optional in these spaces, and I design with audit trails, access control, and data protection from day one.
Bridging ideas, architecture, and execution.
Nearly a decade of experience building software in demanding domains like public services and healthcare related platforms.
I work mainly with .NET and Azure. I turn complex requirements into clear architecture and production ready code that stays maintainable over time. I focus on reliability and performance and clean delivery. I enjoy collaborating with teams and keeping communication straightforward.
Outside work I am a father of two. I recharge with weekend BBQ and books and games.
What I build with day to day.
Engineering judgment first. AI second.
I use AI tooling every day. It speeds up the typing. It does not replace the engineering thinking. You are trusting me with the decision: architecture, trade-offs, what's actually safe to ship in a regulated environment. Not the keystrokes.
A few things I hold to:
The things people usually ask first.
Ideas that won't leave my head.
A PR looked fine and quietly broke a module boundary anyway. Nobody caught it, because the boundary lived in my head. So now the build catches it.
The model is plausible. That's its whole trick. Deciding whether it's actually right takes the stuff you already know, and without that you're shipping whatever sounded confident in the IDE.
Using AI tools and understanding them are two different skills. In regulated work, the gap between those skills is where breaches happen.
Ready to talk?
I'm always open to interesting missions and good conversations.
I typically respond within 24 hours