Optimizing Human I/O

Optimizing Human I/O

Published on 2/20/2026

4 min read

Parts of this post were written while I was doing something else entirely.

Not metaphorically — I mean I dictated the first draft of these ideas out loud while my hands were occupied, had a conversation with an AI about how to structure it, then later had the whole thing read back to me while I was doing something else again. The workflow I'm about to describe is the workflow that produced it.

You Are a System with I/O Constraints

Engineers think about throughput and bottlenecks all the time. We profile systems, identify the slow path, and optimize around it. We rarely apply the same thinking to ourselves.

But you are a system. You have input channels — eyes, ears — and output channels — hands, voice. Each has a different throughput depending on the task and the context. And here's the thing most productivity advice ignores: the optimal modality is not fixed. It's situational.

I didn't figure this out by being clever. I figured it out because a toddler destroyed my ability to sit at a desk.

The Constraint That Forced the Optimization

When your time comes in unpredictable chunks and your physical location is constantly in flux — making dinner, playing with the dog, pulling weeds, cleaning up — you have a choice: wait for a "real" work session, or adapt your interface.

I adapted.

The first shift was input. I already knew I could speak faster than I could type. The problem was signal quality — dictation is fast but noisy, full of false starts and filler words. Tools like Wispr Flow changed that equation by cleaning up the raw audio into structured text. Suddenly, voice became a viable high-throughput input channel that didn't require a keyboard or even my full attention.

The second shift was harder to see because it runs against instinct.

Rethinking Output Modality

My default preference for consuming information is text. I can read and skim far faster than anyone can speak. For most situations, audio output is a step backward in bandwidth.

But "most situations" isn't "all situations."

When I'm landscaping or cleaning or cooking, my eyes and hands are allocated. I can't sit down and read. The old answer was: wait. The new answer is: switch output channels.

I use Gemini to have back-and-forth voice conversations — brainstorming, planning, working through problems — while my hands are doing something else entirely. I have it read articles and web pages to me. What would have been lost time is now productive time, just running on a different interface.

The key insight is that the bottleneck wasn't time. It was physical state. Once I framed it that way, the solution was obvious: match the modality to the context, not to some idealized notion of what "real" work looks like.

The Full Workflow

In practice, this is how it comes together:

Capture phase — Voice in, anywhere. Dictate raw ideas while doing something else. Wispr Flow cleans the transcript. The signal quality is good enough to work from.

Development phase — At a desk, text in and out. This is where I go back and forth with Claude — refining structure, drafting, editing. Reading is faster than listening here, so I stay in text mode.

Review phase — Voice out, anywhere again. I batch-have my drafts read back to me as a proofreading step. Hearing something read aloud catches rhythm problems and awkward phrasing that eyes skip over.

Three phases, three different modality configurations, optimized for the physical context of each.

The Actual Unlock

None of this is about doing more. It's about removing the assumption that productive work requires a specific physical setup.

The old mental model: work happens at a desk, in a focused block, with a keyboard.

The new mental model: work happens whenever my I/O channels are available and matched correctly to the task.

Parenting didn't give me less time to think. It gave me a constraint that forced me to find out how much of that thinking didn't actually require a desk.

Your system has more available bandwidth than you're using. You just might be routing it wrong.