For a long time I thought the problem was me.
I have AuDHD , autism and ADHD together. The ADHD is ADHD-PI, the inattentive kind, without the hyperactivity most people picture when they hear the word. For years I treated the whole thing as a defect I’d train away. I bought the planners. I read the productivity books. Every week I told myself that Monday I’d finally be disciplined.
This post is about how that went, what I built once I stopped, and why the systems I ended up depending on turn out to be good engineering for anyone.
It’s context. The obsession with automation, the preference for async communication, the hours I sink into tooling, they all come from the same place. I had a long argument with my own brain and lost it. What I use today is what I built afterwards.
The years I tried to fix myself
Here’s what a default office asks of you. Hold a dozen things in your head at once. Switch context the moment someone taps you on the shoulder. Sit in an open-plan room and tune out the noise. Start the boring task because it’s on the list, with nothing making it urgent. Stay evenly focused for eight hours, like a machine that doesn’t get bored.
My brain can’t do that. Pretending it could was exhausting.
Let me be specific, because “neurodivergent” covers a lot of ground.
The ADHD side first.
- Attention comes and goes on its own schedule. Some days I can’t focus, other days I can’t stop. The second one has a name, hyperfocus.
- Starting a task is harder than doing it. The first step can feel like a wall.
- My working memory is small. If it isn’t written down or automated, it doesn’t exist.
- Urgency drives action. Without a deadline a task barely registers.
Then the autism side.
- Predictability feels calm. Unexpected change drains energy.
- Patterns and systems are how I make sense of the world.
- Context switching is expensive. Every interruption has a recovery cost.
- Sensory input piles up. Open offices wear me down.
And the two together.
- I crave structure and struggle to generate it myself. The autism wants it, the ADHD won’t build it.
- I need routines, and repetition bores me within days.
- I can focus deeply, and I rarely get to pick on what.
For years I read that list as a diagnosis of failure. The advice was always the same. Try harder, be more disciplined, want it more. So I tried harder and wanted it more, and kept ending the week with the important task untouched and a vague sense that the rest of the office knew something I didn’t.
One more routine, gone in a week
There was no breakthrough. I was tired.
I’d set up yet another manual routine to keep myself on track, and within a week I’d let it rot, the way I always did. The usual next step was the guilt spiral. This time I asked a different question. Why was I the one who had to remember?
That moved the target. I’d built everything to run on willpower, and willpower is exactly what my brain won’t supply on demand. Discipline was never the bottleneck. Instead of trying to become someone who remembers, I started putting the remembering somewhere else, in an environment that does it for me.
On paper that’s one sentence. It’s also the reason every tool I use looks the way it does.
What I built instead
Once I stopped fighting my brain, the choices followed from three principles. Every tool choice on this blog traces back to one of them. None of them is a productivity hack I picked up somewhere. Take one away and the rest of my setup stops working.
1. Minimize cognitive friction
Every extra step between me and a task is a place where my brain can quietly check out. Every decision I have to make spends from a budget that’s smaller than most people’s.
In practice that means four things.
- Automation over manual steps. A script doesn’t forget step four. I do.
- GitOps over ad-hoc changes. The desired state lives in Git, so I don’t have to recall what I changed where.
- CLI over GUI. Less on screen to pull my attention. One command, one action.
- Infrastructure as Code. The infrastructure documents itself by existing. No separate docs to go stale.
The less work it takes my brain to get something done, the higher the odds it happens. Every rule above is there to make that work smaller.
2. Facilitate flow state
My brain has two modes, can’t focus and hyperfocus. The second is where my best work happens, and it’s fragile. One interruption and it’s gone, and I can’t call it back on command.
So I guard it.
- Async communication as the default. I decide when I read messages. My inbox doesn’t.
- Deep work blocks. Mornings are for focus. Meetings get herded into the afternoon.
- Notifications off. All of them. I check things when I’m ready. Nothing gets to ping me first.
- Tooling that holds the flow. Keyboard shortcuts, terminal workflows, anything that keeps me in one context.
Getting into flow is the hard part. Staying in it is the other hard part, and most of the list above is about the second one.
3. Build external structure, systems over willpower
This is the one that took me longest to accept. My brain can’t reliably build structure and hold on to it, so the structure goes in the environment instead of in my head.
The same idea, applied to infrastructure.
- Declarative configuration. The desired state is written down. “This is what it should be”, in a file, instead of a memory of having configured something once.
- Self-healing systems. When something fails it recovers on its own. I don’t have to remember to fix it.
- GitOps. The git repository is the source of truth. My memory isn’t.
- Pipelines that enforce. Tests, linting, security scans. If it’s not in the pipeline, I will forget it.
I build it once. After that the pipeline does the remembering, and it doesn’t get tired.
What it cost me
This wasn’t free.
External structure is real work up front. Writing the automation, wiring the pipeline, making the config declarative, each of those is slower than doing the thing by hand once. There were stretches where I was clearly over-engineering a problem so I wouldn’t have to remember it, and I had to learn where that line was. I still cross it sometimes.
Accepting how my brain works also meant giving up a story I’d told myself for years, that one more push of discipline would finally make me normal. Letting go of that story hurt for a while. The relief came later.
So the trade is this. I pay once, in building the system, instead of every day in willpower I don’t have.
Why this works for you too
“But Tom, I don’t have ADHD. Why should I care?”
Because your brain also prefers to do as little work as possible.
Cognitive load is finite for everyone, and so is the number of decisions you can make in a day before they get sloppy. Maintenance is dull for everyone and the new shiny thing is more fun. The difference is where the budget runs out. Where you might hold three manual steps in your head, I lose the thread at the first one. Where you can choose to leave notifications on, I can’t.
So the fixes I’m forced into are the same ones that quietly improve anyone’s work. Automation cuts errors and saves time. Async communication protects deep work. Declarative configuration makes a system readable. Self-healing infrastructure lowers the operational load. None of that is specific to my brain.
If a workflow survives my brain, it’ll probably survive yours. I just hit the friction first.
What this looks like in practice
This blog works through concrete versions of these principles. For example:
- Taskwarrior, Timewarrior and Vit: my full task management stack, which exists to hold external structure so I don’t have to.
Where I landed
Discipline was never going to fix this, and I spent years finding that out the slow way.
What works is accepting how my brain functions and building around it, with systems that work with me instead of against me. The funny part is that none of it is special. Automation, async, declarative config, self-healing infrastructure. Plain good engineering, on any team. Nobody would call them ADHD tips. They’re for anyone who wants systems that keep working when the person running them is tired or distracted. I’m just the one who couldn’t get by without them.
So when I argue for automation on this blog, or push GitOps and async communication, this is the reason underneath. My brain doesn’t work the other way. Once I stopped pretending it did, the work got better.
