Situations

Ambiguity…

You don’t need to diagnose the problem before getting in touch. Bringing the uncertainty into focus is part of the work.

  1. Something needs to get built.

    You have an idea, requirement, or opportunity, but the path from concept to production isn’t clear yet.

  2. Something isn’t working.

    The product exists, but architecture, performance, reliability, or technical debt is getting in the way.

  3. Something needs to ship.

    The team is capable, but delivery has stalled—or somebody needs to take ownership across the gaps.

  4. Something needs to change.

    A platform needs to evolve, infrastructure needs to move forward, or the system has outgrown the decisions that shaped it.

  5. You know there’s a problem.

    You don’t need to know the solution yet. Figuring out what is actually wrong—and what matters next—is part of the engagement.

Approach

First, understand the situation.

I don’t start with a preferred technology or a predetermined solution. I start by understanding what’s happening, what you’re actually trying to accomplish, and what’s preventing you from getting there.

  1. 01

    Understand

    What is actually happening?

  2. 02

    Clarify

    What outcome matters?

  3. 03

    Decide

    What is the simplest responsible way forward?

  4. 04

    Build

    Do the work or help the team execute it.

  5. 05

    Ship

    Get it into production and make sure it holds up.

Selected work

A few situations I’ve worked through.

The technology matters. The decisions behind it—and the outcome it makes possible—matter more.

Case 001Outcome: AcquiredType: Platform buildRole: Co-founding CTO

Gatsby / Social commerce

Social engagement became owned customer value.

How do you turn a shopper’s social influence into something a brand can understand, reward, and build on?

As co-founding CTO and sole original engineer, I built Gatsby from its first storefront interaction into a multi-service platform spanning social OAuth, merchant tooling, campaign configuration, activity tracking, Shopify installation, payments, and deployment automation.

Tenure
2015–2017
Arc
Monolith → services → acquisition
Examine the case file
Case 002Status: LiveType: Product buildRole: End-to-end

Still / Haiku Writer

A mindfulness practice became a product.

Could a haiku-writing app feel as quiet and deliberate as the mindfulness practice that inspired it?

A responsive, local-first writing product built around calm interaction, privacy, and guidance that assists without taking over.

System
React / Vite / Cloudflare Worker
Data
Local-first / IndexedDB
Visit the live product

Capabilities

What I can bring to the situation.

The shape of the role depends on the problem: hands-on builder, architect, delivery lead, technical advisor—or some combination of all four.

  1. 01

    Software & Product Development

    Full-stack applications, APIs, new products, prototypes, and production systems.

  2. 02

    Architecture & Modernization

    Cloud systems, technical architecture, legacy modernization, infrastructure, and performance.

  3. 03

    Technical Delivery

    Planning, prioritization, cross-functional execution, and getting stalled work moving again.

  4. 04

    Senior Technical Consulting

    Independent technical judgment across product, business, and engineering.

  5. 05

    Fractional Technical Leadership

    Senior technical ownership without necessarily requiring a full-time leadership hire.

Dossier

Subject profile.

Digital portrait of David Johnson rendered in colorful data-like characters
Profile / 001Signal: Human

David Johnson is a software engineer, technical consultant, product builder, and former startup co-founder. For more than 15 years, he has operated where technical constraints meet business outcomes.

Typical assignments involve writing production code, designing or correcting system architecture, and giving teams a clear path through decisions that have stalled delivery.

Base
Chicago / Remote
Experience
15+ Years
Range
Code / Architecture / Product / Delivery

Contact

So, what’s the situation?

You don’t need a perfectly written brief or finalized requirements. Tell me what’s happening. A few sentences is plenty.

Complete the verification, then send your message.