From Portland Roots to Modern Software Solutions
Why I started Hello World, the failure patterns I kept watching before I did, and how that history still decides what I recommend to a client.
Originally published at Hello World.
Oregon Voyager ran a conversation with me about the experiences that shaped my career and the values I built the company around. This is the version I would give you if you asked me directly, which starts well before there was a company to talk about.
I did not start it because the world needed another agency
Hello World exists because I spent years watching capable people and reasonable businesses fail for the same handful of reasons, in agencies, in federal government, in enterprise, in startups, and in consulting. The environments could not have been more different and the failure patterns were nearly identical:
- Technology decisions made with no business context attached to them
- Developers treated as interchangeable resources rather than as people accumulating irreplaceable knowledge about a specific system
- Legacy systems left alone long enough to become expensive liabilities
- Organizations so overwhelmed by technical complexity that they stopped making decisions at all
- Projects failing on communication rather than on code, which is most of them
Seeing that repeat across five kinds of organization is what convinced me it was structural rather than bad luck. Most of what I do now is try to catch those patterns early, when they are still cheap.
Modernization should be a strategy, not a reflex
The hardest problem facing most organizations is not building something new, it is deciding what to do with what they already have. Businesses are running on years of accumulated logic scattered across custom applications, spreadsheets, integrations, databases, and manual processes that nobody fully documented, and replacing all of it outright is usually risky, expensive, and unnecessary.
So the answer varies more than people want it to. Sometimes a full rebuild genuinely is right, usually when the system’s core assumption no longer matches what the business sells. Sometimes a targeted upgrade produces far more value for a fraction of the cost and risk. Sometimes the smartest available decision is to leave a system completely alone and go fix a different bottleneck, which is the recommendation clients least expect to pay for and most often thank me for later.
Good consulting starts by understanding the business problem, and only then reaching for the technical one. Reversing that order is how organizations end up with an elegant solution to something that was never costing them money.
AI changes the work without changing the fundamentals
AI is creating real opportunities and a great deal of confusion, and the questions I get are consistently the same ones: where should this fit, what should we automate, what are we risking, how do we modernize without breaking what works.
My answer is that adoption depends on foundations that have nothing to do with AI. Clean data, reliable systems, thoughtful architecture, and business processes somebody can actually describe. AI accelerates work and it does not supply strategy, operational clarity, or sound technical judgment, so an organization missing those will simply arrive at its bad outcomes faster. That is why I push clients to evaluate AI opportunities through a practical business lens rather than through whatever their competitors announced last quarter.
What has stayed the same
The philosophy has not moved much since I founded the company: be transparent, communicate clearly, solve the right problem, and build relationships that outlast any single engagement. Clients do not hire us to write code, they hire us because they need someone who can translate business goals into technical decisions that still make sense in three years.
Whether we are modernizing a legacy platform, supporting a Drupal ecosystem, building a Laravel application, or helping a team work out what to do about AI, the goal is the same one it has always been. Make order out of chaos.