Thriving as a Developer with ADHD
A few tricks for managing your ADHD as a developer.
I was diagnosed with ADHD at 31, joining the masses of people diagnosed well into their adulthood. It wasn't a revolutionary diagnosis — I've struggled with vague mental health issues for most of my life, but it did re-contextualize how I experience the world. However, this isn't an article about my self-discovery, but rather a few tips and tricks that I've been employing since my diagnosis to help me thrive as a developer.
Obviously, I'm not a medical professional. I'm just a developer trying to build great things and be a reliable teammate — who happens to have ADHD. I can't tell you what you should or shouldn't do, but I can share some the tips and tricks that help me stay effective.
The Everyday Tricks
ADHD is roughly an attention regulation disorder. Sometimes, my brain doesn't want to work on the tasks ahead of me. Sometimes it really wants to browse the web or do some other, completely unrelated task. But that's a problem. I've got work to get done (on time and on budget, no less) and I need to do it.
The natural conclusion of this is a frenzy of work just before a deadline, which leads to sloppy code, unnecessary stress, and a lot of fatigue. So, here's what I do to avoid the procrastination frenzy and get closer to my goal of shipping elegant, quality code with my team.
The basic idea of the Pomodoro technique is to work for 25 minutes, then take a 5 minute break. You do this cycle four times, but on the fourth break, you take a longer break.
In an ideal world, this is great, but I have meetings and stand ups. I usually can't get 4 cycles in a row multiple times a day.
What I do instead is Pomodoro-ish. I aim for 25 minute periods of focus with 5-minute breaks to stretch, rest my eyes (seriously, are you looking away from your screen? Your eyes are going to melt), and regroup. I don't usually do the longer break as part of the cycle. Instead, I schedule out a lunch break in the middle of my day and let my meetings and stand ups dictate the rest of my breaks. After each meeting, I try to get up for a few minutes just to reset my brain.
The goal here is to not bind yourself to a strict schedule, but to give yourself a framework to work within. If you need to take a break, take a break. If you're jamming on something, jam on, little starshine!
During the 25-minute focus sessions, I try not to look at my email, but I usually respond to Slack immediately, mainly because that little red dot for an unread message is distracting. Find what notifications you can mute and try to keep them muted if you can.
Finally, I don't use a loud timer. Instead, I have a neat little hour glass that sits beside my computer. It's fun to watch, but it's also not going to break my concentration when it runs out. If I don't happen to notice it run out, that's okay! I'll just take a break when I get to a stopping point.
The final piece of advice for this technique is to write down what you're working on for that cycle. I keep a bullet journal for this, but you can do whatever is easiest for you. I've tried using apps, GitHub issues, and sticky notes with varying degrees of success. I find that when I write down my task, I tend to not get sidetracked on the thousand other things I could be doing instead, and I prefer to stay as analog as possible.
I use a bullet journal to keep track of my active tasks, but it serves a much bigger role to me than just task tracking.
I actually have 2 bullet journals! One for work, and one for everything else. The work one is just a central repository for meeting notes, tasks, random thoughts, and larger professional development projects. The personal one is a wild, wild west of thoughts, doodles, TTRPG ideas, and more. However, its most important job is my daily log.
Each evening before bed, I plan my next day. If I'm having a particularly rough week in the ADHD department, I'll task out literally everything. What time to wake up, when to feed the cats and myself, when to get to work, when to eat lunch, etc. During better days, I'll just write down things that are diversions from my day-to-day life. The goal is to strike a balance between helping myself and boring myself by writing the same things down every day.
The work one is a little bit different. Each morning when I start the work day, I'll write down what meetings I have and when, then plan my Pomodoro cycles between them. I'll track any tickets that I am going to be working on that day, plus any secondary tasks like writing blog posts.
From there, I'll track my Pomodoro cycles as I start them, noting what I plan to do during each one and marking off completed tasks as I go. Every time I complete a task, I get to mark it off, which gives my brain a little happy.
A bullet journal might not be the right choice for you, but some sort of task tracker is a must, even if it is just a bunch of sticky notes on your monitor.
Avoiding the Tabpocalypse
Tabs are an easy way to get distracted. I like to avoid having a bunch of tabs open at once, not only because it makes finding the tab I need difficult, but also because it is an easy way to get lost on the internet for hours.
However, when you're researching something, it's really easy to open up dozens, even hundreds, of tabs. To avoid this, I rely on bookmarks and Obsidian.
If a tab is something I might need, I'll bookmark it and place it in a folder for later. I keep my folders organized by project. So, say I'm working on an Auth0 integration for a project. I'll have a "project" folder on my bookmark toolbar. Inside that, I'll have an "auth0" folder, and that's where all my potentially useful Auth0 links will go.
Later, as I'm working on the project, I liberally delete bookmarks that aren't actually useful.
If an article in those folders is particularly useful or relevant to other projects, it graduates to Obsidian. I'll write a quick summary of the article and link to it in Obsidian. This way, I can find it again later, and I don't have to keep the tab open. Obsidian can be a really powerful second brain, but that's a post for another time.
I struggle a lot with noise. I can get overstimulated super easily by the wrong sounds, and what those wrong sounds are varies day-to-day.
To be honest, this one requires the most experimentation each day. I have three go-to playlists on Spotify. I pick one, put on my headphones, and try to get some work done.
Pretty quickly, I'll discover if that music the right music for the day. If it is not, I'll end the Pomodoro cycle early, move around for a minute, and switch to another playlist. This helps me reset my brain and keep me from getting overstimulated.
The biggest advice here is to find a few different playlists that you can listen to without being distracted, and try to notice the signs of overstimulation. To me, it's frustration, irritability, and extra fidgeting. When you notice yourself getting overstimulated, adjust your music (or other stimuli such as clothes, lighting, temperature), and reset.
I personally have an upbeat playlist, a lofi playlist, and a playlist of Japanese city pop. I can't say that I really "hear" any of the music any more, but silence is far more distracting to me.
You Can Always Reset
This is the hardest one for me, but sometimes things aren't working great. All of the above tricks aren't working, and I can't get anything done. In that case, it's time for a reset.
For me, that means taking a nap, but equally healthy options involve some light exercise, a nice cup of coffee, or just some time outside.
When I come back from my reset, I pretend like my day is starting fresh. I'll plan out the day, set up my Pomodoro cycles, and get to work.
The important thing to remember here is that you can always reset. The beginning and end of the day don't have to be the beginning and end of YOUR day. You can always start over.
The Nuclear Option (When You Can't Even)
Despite all of these tricks, sometimes I just can't even. What can you do when you can't do anything?
Ideal: Take Some Time Off
If you can take the day or afternoon off, do it. Let your teammates know, of course, but take a little break. There's no point in getting frustrated and burning yourself out.
If you can't take the day off, try to redirect your energy towards another, more enticing task. This can be easier said than done in a development world where people are depending on you. I'd recommend talking to your project manager or team lead to see if you can switch tasks for the day.
Last Resort: Burning the Midnight Oil
Sometimes, you just have to do it. In an ideal world of strawberry mochi and Diet Dr. Pepper fountains, you never need to do this. Unfortunately, in the real world, there are deadlines and budgets.
If I can't get my brain to cooperate during the day, I'll allow myself to be unproductive and then work late into the night. In the witching hours, I can usually get a lot done. I'm not distracted by meetings or Slack messages or chores. I can just code.
This is really the worst option. I don't want you to do this and hope you never have to do it, because the problem is that you're now working in a deficit. You're losing personal time and energy, which means you're going to have a harder time focusing during the next day, which will mean you need to work late in the night, and the cycle continues. Plus, you're essentially doubling your "thinking about work" time, which leads to more burn out and less focus.
If you do have to resort to burning the midnight oil, take a day off soon to recover. You deserve it.
My everyday tricks are:
- Use a modified Pomodoro technique to divide up focus time
- Use a bullet journal to track tasks and meetings
- Avoid having too many tabs open on your browser
- Pay attention to how music and other stimuli are affecting you
- Reset when you need to.
When things get really bad, I do the following:
- Ideally, take the day or afternoon off
- Compromise on tasking if possible
- Worst case scenario, work when the world is quiet (try to avoid this, really).
To reiterate, the above are things that work for me. You'll need to find your tips and tricks, but hopefully this give you some guidance.
Share your own tricks and tips with us so we can make a better digital world!