Managing ADHD as a Software Developer

Staying on top of your meds is crucial, but so is your routine

This blogpost starts off with my personal experience with attention-deficit/hyperactivity disorder (ADHD), so if you’re only interested in the productivity management, CTRL+F for “My System”

A bit about me

I’ve always been a very forgetful person. I vividly remember being chastised for forgetting to do something I was asked to or losing part marks on math tests because I overlooked a detail/was too lazy to double check my work. For the most part, it hasn’t been a huge roadblock for my career: I’ve been able to make it through university with decent grades, hold steady on any jobs I had, and be pretty darn good at those jobs (if I do say so myself 😎). There’s no way that I could have a neurodevelopment disorder, right? I wasn’t rowdy in class, I don’t fidget or squirm excessively. I mean yeah, I forget things sometimes but so does everyone!

me_irl

Nope

There was one particular week where I wasn’t feeling particularly productive. I was juggling a lot of plates, and jumping from task to task without having enough dedicated time to close them out. This normally works for me, but when you’re cycling through ten different tasks it can feel like you’re not making progress on anything.

Made on diagrams.net, credit to Brian Braun for the guide (https://gist.github.com/bryanbraun/8c93e154a93a08794291df1fcdce6918)

I had a sneaking suspicion of “hey maybe I have ADHD”, based on conversations with diagnosed friends that resonated with me and in discussing with my partner how it feels like my brain works weirdly — but I never had the motivation to get formally diagnosed. After that particular week, I decided to get a formal diagnosis so that I could better know what I was working with.

Diagnosis

In going through the ADHD assessment with the registered nurse where they asked “how often do you have difficulties with…” for the various symptoms, not everything stuck with me. But a lot of my answers were “well yes, but I have a system for that”. Growing up with undiagnosed ADHD had made me unknowingly develop coping strategies! These strategies/systems included things such as a hyper proactivity mindset (so that I don’t forget to do anything), meticulous organization/cleaning (so that I don’t lose anything), and constant note-taking.

And with that, I was diagnosed with mild ADHD and put on medication. Being formally diagnosed was really validating for me since it proved that my difficulties weren’t just in my head, and so that I could start the process of learning to manage it.

My System

I’ve tried a lot of productivity tools/systems: Notion, Pomodoro Technique, Trello — but none of them have meshed well with my working style. After hearing about brain dumping [1] and time-blocking, I frankensteined the following system (with a dash of Jira) which has been working well for me.

At the start of every working day, I open up a notes file and fill out the following template:

Template layout (gist here: https://gist.github.com/jcserv/6fec96eb3ea9efaec438143e1dbd40ff)

Braindump/Top Tasks/Secondary Tasks

To start off, I write down everything that I’d like to get done today that comes to mind. This doesn’t need to be realistic, but first things first we need to get a record of all of these thoughts and ideas.

Next, we prioritize them by separating them into top & secondary tasks so that we can triage which tasks are the most important.

In addition, I try to break them up into subtasks so that the work is more manageable and measurable. It can be pretty demoralizing if “Task A” is the only top task you have and you’re not finished at the end of the day — but with subtasks, that progress is visible. Small victories!

Plan day

This is where the re-prioritization happens. By budgeting the time in our day and allocating our tasks, we get a definition of what’s achievable today. Anything that doesn’t fit in is a good indicator of:

  • a) it’s not an immediate priority, add it to a backburner document
  • b) you’re stretched too thin, reach out to your team to get assistance

At the end of each day

  • Copy the entire day into an archive document, then reset it with the template.
  • Move all urgent, unfinished tasks to tomorrow’s daily planner.
  • Move all unfinished but not urgent tasks to a brain dump document.
My documents setup — the archive document contains all the completed days.

Right now this process is done manually, but in the future I’d like to create a simple web app to speed up the process and share it with others.

Braindump

In addition to brain dumping at the start of the day, I keep a separate brain dump document for all notes & ideas. If ideas come to me mid-coding, just write it down and return to it later! It’s particularly important that I don’t let side thoughts derail my train of thought.

It is important to keep this document well organized, or else this braindump can soon grow to a brain landfill — at which point it’s so unorganized and messy that it’s not of use.

Alternatively, you can send yourself messages on Slack to serve as your brain dump; but personally I moved away from that because it was hard to structure.

Pictured: me jotting down a possible solution for a bug I was stuck on at work, mid-Lizzo concert.

Tips/Tools

Clear your notifications

Notification overload can be a source of anxiety and letting your inboxes grow uncontrollably means important notifications might get lost in the mess. Whenever I see that red badge icon, I immediately click it to dismiss it and do a once-over to ensure I’m up to date on things like Slack notifications or Jira ticket updates.

In a similar fashion, your email inbox may grow to unmanageable size if not regularly maintained. Folders and rules are a godsend in this regard. I created logical groupings based on what emails I get and how frequent, and then set up rules to redirect incoming emails to those folders. An example of the folders I have are “Alerts”, “Expenses”, “Github”, “Jira”, and “Important”. Some folders are for record-keeping purposes so they go untouched, but others are periodically reviewed then emptied out (good ol’ CTRL+A & DEL).

If you find there are repeat notifications/emails that provide no value, then you should consider unsubscribing or muting that notification.

Handling blockers with Slack Reminders

Blockers are an unavoidable nuisance, but they can be particularly detrimental when you’re forgetful. Whenever I run into a blocker, I set a reminder in Slack so that I can circle back to it and its not left in limbo.

Arc Browser

I’ve been using the Arc Browser lately and it’s helped a lot in speeding up my workflows (#notsponsored). To highlight a few really great features, in relation to ADHD:

  • Auto-archive inactive tabs: after a set amount of time (default 12 hours), inactive tabs are auto closed. This in turn reduces clutter and prevents tab overload, where you have so many tabs that you don’t use but you’re too afraid to close any in case you need them later.
  • Split view: When writing code or documentation, oftentimes I want to reference existing documents, which is useful to ensure details aren’t missed. Using split view reduces back-and-forth tab switching — in fact I’m using it right now to write this article as we speak!
  • Spaces: You can create isolated groups of tabs to encapsulate certain work and reduce clutter. I have a space for my normal development work, on-call tasks, and spin up a new space when working on large bug investigations to keep track of all the ongoing threads.

Conclusion

Thanks for reading! My goal in writing this piece was to spread awareness around ADHD and hopefully what works for me can also work well for you. In addition, I do want to acknowledge that it is a spectrum, so the problems/solutions I face may differ from yours — it’s not a one-size-fits-all situation, so keep iterating until you find what works for you! If any of my experiences resonate with you and you’re not diagnosed, then I recommend reaching out to a trained medical professional for a diagnosis.

Lastly, I’d like to end this piece off with a bit of a pretentious musing if you’ll indulge me:

Neurodiversity in all of its forms can be a net positive to all — after all, it’d be a bit boring if we all thought the same, right?

References

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store