π Hi, I'm Joe
A computer engineer by training, a software engineer by trade. If you looked up the definition of extrovert, you'd find a picture of me and an audio clip of my laugh.
I've worked in a variety of roles and sectors. I cut my teeth in oil and gas, and have spent the balance of my career in SaaS of some form or another.
I grew up ski racing and mountain biking, and I love spending time outdoors (I try to walk a minimum of 10 KM every day). I also play hockey and have recently taken up boxing.
Prior to becoming an engineer I had a brief stint as a filmmaker. These days my artistic side is mostly focused on cooking and learning to sing, but I also play a little guitar.
π§ Where I'm At
I've spent time as a founder, and as a Director of Engineering. The more senior I got, the less time I spent building, which is the part I actually like. So I've moved back to IC work, Staff or Principal, hands on the tools.
π§ Engineering Philosophy
- I think best in objects & DDD , with an eye towards design principles and patterns
- Design for simplicity, maintainability, and resilience.
- Slow is smooth, and smooth is fast
- Code is communication, write it clearly and with care. Don't be too clever if you can avoid it
π€ How I Work with AI
Most of my recent work has been done with agents. Not as a novelty, but as the actual shape of my day. At Atreides I was the sole engineer on my product area for most of its life, and this is how I kept up.
- Agents do implementation. I own the design and the decomposition. The judgment stays with me, that's the part that doesn't delegate.
- I read everything that ships. No generated code merges unreviewed. If code is communication, I don't get to skip reading it just because I didn't type it.
- I run parallel work streams. Several problems in flight at once, each with enough context to stay coherent on its own.
- Tests and types are the guardrail. Strong typing and real coverage are what make delegation safe rather than reckless. You can't move fast on a codebase that can't tell you when you've broken it.
- I encode best practice as project-level skills and rules. TDD and DDD enforced by the project itself, not left to whatever I remembered to say in the prompt.
- Loops, built-in review passes, and a clean context are what drive code toward convergence instead of drift.
π€ How to Work with Me
- Tell me the why, not just the what. Give me the context and the constraints and I'll need far less of your time afterwards.
- Get me to a whiteboard for hard design. Async is fine for most things; genuinely hard problems are faster with people in a room.
- Be direct with me, and I'll be direct with you. I'd much rather hear it early and plainly.
- Kind, not nice. Those are different things and I optimize for the first. Radical candor is a good guide to the difference.
- Assume good faith from me, because I'm assuming it from you. I default to trust until given a reason not to.
π€ Where I'll Frustrate You
Every README should have this section. Here's mine, along with what I'm doing about it.
-
My extroversion has a cost. I think out loud, and I want the whiteboard. That can steamroll
quieter or async-first people who need time to process before they respond.
Working on it by: writing the proposal down and circulating it before the meeting, so there's something to react to on your own schedule, and by leaving silence alone instead of filling it. -
I show up with strong opinions. Twenty years and two acquisitions means I arrive with priors.
Useful, right up until it isn't, and it can close down exploration before it starts.
Working on it by: holding my opinion until the room has had a real go at the problem, and being explicit about how strongly I actually hold it versus how strongly I said it. -
I ask a lot of questions. More than most people want. It can land as interrogation, or as
reopening something you thought was settled, when I'm really just trying to understand the why.
Working on it by: time-boxing the digging and then committing to the decision, even when I don't have the whole why yet.
π‘What I Value
Curiosity
I've been called curious to a fault. I love learning, especially about people and professions I know nothing about. Working with me, know that I'm going to ask a lot of questions, and don't mind it if you do too!
In my experience understanding the why of something lets us be more autonomous when we get into the nuts and bolts of the work.
Collaboration
Sitting with headphones banging away on something is great, but nothing beats working through a hard problem or design at a whiteboard with colleagues. Solving truly large problems requires many people pulling in the same direction.
I also love knowing more about my colleagues than what we work on, expect to get asked to skiing or for a walk or beers.
Integrity
Strive to have a Say-Do ratio as close to 1 as possible.
Owning mistakes when they are made, avoiding blaming others.
Honesty & Trust
I default to both of these until proven otherwise.
Kindness
An absolute necessity for me in all my relationships. Reams have been written on this subject, being kind and nice are different, optimize for the former. Frameworks like radical candor are a good guide.
Craftsmanship
Sometimes we have to move fast, but to the extent possible we are spending our lives doing work, we should strive for that work to be the best it can be.
I love the sentiment put forth in both the the obligation of the engineer, and the welcome letter from apple.
π What Twenty Years Taught Me
- Hiring is worth more time than it usually gets. I built the interview process while we grew from 6 to 20+, and got plenty of it wrong along the way. I'll push back on a loop that tests trivia instead of the work.
- Shipping often is mostly a culture problem. Going from monthly releases to a few a day was mostly test coverage, ownership, and trust. The pipeline was the easy part.
- Boring, well understood systems hold up. I've been through two acquisitions and the due diligence that comes with them. Watching other people read your architecture is a good way to find out how legible it really is.
- The best systems remove toil rather than manage it. The work I've enjoyed most took a job people were doing by hand and made it go away.
π What I'm Learning right now
- Large scale geospatial systems, PostGIS and DuckDB, rendering very large datasets in the browser, and the endless fight for time to interactive
- Agentic engineering practice, less "using AI" and more the discipline around it: how teams should structure work, review, and ownership when agents are doing the typing
- Still learning to sing, still playing a little guitar, still not good at either yet
π¬ Let's Connect
- GitHub
- LinkedIn
- X
- Bluesky
- Instagram
- Email
Last updated: August 2026