My Experience Programming with ADHD

An honest look at how ADHD affects my programming journey, the challenges, the unexpected advantages, and the strategies that actually work. For fellow neurodivergent developers who might be struggling.

June 5, 2025
9 min read
ADHD
Neurodivergence
Personal
Mental Health
Programming
Productivity
Development

I was diagnosed with ADHD in first grade, way before I ever touched a line of code. I spent most of my life on medication (Concerta) until I was about 23, when I decided to stop and see how I'd manage without it. That was a few years ago now, and I've chosen to stay off medication since then.

Honestly, I don't think programming with ADHD is that different from having ADHD in any other job. The core challenges are the same, it's just the context that changes.

Focus Issues

The biggest challenge isn't that I can't focus, it's that my focus has a mind of its own. Some days my attention cooperates with my to-do list. Other days, my brain decides that reorganizing the entire project structure is suddenly the most important thing in the world.

I'll start working on a feature and find myself three hours deep into refactoring some utility function that caught my eye. Or I'll spend an afternoon perfecting the styling on a component that was already working fine. I'm definitely getting stuff done, just not necessarily the stuff I planned to do.

Hyperfocus

Hyperfocus is real, but it's not the programming superpower people make it out to be. When it kicks in, I can code for hours straight and lose track of time completely.

But here's the thing about hyperfocus:

  • You can't control when it happens - It's not on-demand productivity
  • It often targets the wrong thing - I'll hyperfocus on cleaning up CSS while ignoring critical bugs
  • Time becomes meaningless - I'll think I've been working for an hour when it's been five
  • The crash is real - After hours of intense focus, I'm mentally exhausted

Unpredictable Attention

Some days my brain cooperates and I can focus on exactly what I need to work on. Other days it's like my attention is being controlled by a random number generator. I might start working on a feature and suddenly find myself reorganizing file structures or tweaking styling that was perfectly fine before.

It's frustrating because I know what I should be doing, but my brain doesn't want to do that thing right now. Instead, it wants to reorganize the entire project structure or research a completely different approach to a problem that doesn't even exist yet.

Working Memory Issues

ADHD messes with working memory, which is kind of important when you're trying to hold complex system architecture in your head while writing code.

What This Looks Like:

  • Forgetting what I was working on if I get interrupted
  • Losing my train of thought mid-function and having to start over
  • Struggling to pick up where I left off after meetings or breaks
  • Having multiple browser tabs and IDE windows open because I can't remember what I was doing in each one

My Workarounds:

  • Joplin for everything - I keep notes and todos for every project I work on
  • Immediate brain dumps - As soon as I run into a bug or think of something, it goes straight into a note
  • Document first, fix later - I try to get everything written down right when I encounter it, then move on
  • Resist the urge to fix - If it's not super important right now, I just note it and keep working on what I'm supposed to be doing
  • Project-specific bug/todo lists - Each project gets its own running list of issues and improvements

Rejection Sensitivity

ADHD often comes with rejection sensitive dysphoria (RSD), which makes any kind of criticism or feedback feel way more intense than it should. Even constructive feedback at work can hit like a truck sometimes.

I've learned to:

  • Ask for specific feedback when I need input on something
  • Try to frame feedback as improvement opportunities (easier said than done)
  • Give myself some space before responding to feedback, especially if it stings
  • Remember that work critique isn't personal critique (still very much working on this one)

What Actually Helps (Sometimes)

I've tried a ton of productivity systems over the years. Most don't stick, but a few things have genuinely helped me stay on track:

Time Management:

  • Todoist for tasks - Keeps track of what I need to do and when
  • Joplin for time blocking and notes - Where I plan my day and keep project documentation
  • Structured daily routine - Wake up at the same time, do chores, work blocks with breaks, walk, eat, then free time
  • Pomodoro when needed - Sometimes it helps, sometimes I ignore it completely

Development Environment:

  • AI assistants like Cursor - Help reduce cognitive load when I'm mentally tired
  • Good syntax highlighting - Visual cues help my brain process code faster
  • Automated formatting - One less decision to make
  • Hot reload - Instant feedback keeps me engaged

Some Advantages

ADHD isn't just challenges. It comes with some genuine advantages for programming:

  • Pattern recognition - I spot code smells and architectural issues quickly
  • Creative problem-solving - My brain makes weird connections that sometimes lead to elegant solutions
  • Hyperfocus debugging - I can chase down the most obscure bugs with relentless determination
  • Adaptability - I actually thrive in the constant change of tech
  • Big picture thinking - I naturally see how different systems connect

What I've Learned (After 20+ Years)

  • Systems only work if they're simple - Complex productivity methods fail, but Todoist and Joplin actually stick
  • Routine is freedom - Having the same wake-up time and daily structure gives me a framework to be flexible within
  • Document first, fix later - Writing down every bug and idea immediately prevents me from going down rabbit holes
  • Attention is unpredictable - My brain decides what's interesting, not what's important
  • Going off medication was the right choice for me - But that doesn't mean it's right for everyone
  • Perfectionism kills momentum - Good enough ships, perfect never does
  • Some days just suck - And that's okay, tomorrow will probably be better

Being Realistic

I'm not going to pretend ADHD is some kind of "superpower." Some days it sucks. Some days I feel scattered and unproductive, and I wonder how much more I could get done if my brain worked differently.

But I've also learned that programming is actually a pretty good fit for how my brain works. There's variety, problem-solving, instant feedback, and room for creative solutions. Plus, the tech industry tends to be more accepting of quirky people than a lot of other fields.

If you're dealing with similar stuff, just know you're not alone. Find what works for you, don't be too hard on yourself when systems fail, and remember that sometimes the "wrong" way of doing things is actually the right way for your brain.

Interested in working together?

I'd love to hear about your project. Drop me a message and let's discuss how I can help.