DEV Community

Cover image for Doing my Best Work as an Engineer with ADHD
Jamund Ferguson
Jamund Ferguson

Posted on • Updated on

Doing my Best Work as an Engineer with ADHD

Speaking at EmpireJS in 2016

I was diagnosed with ADHD in 5th grade. I was in Mrs. Henry's class and while I was certainly a bright student I had a horrible time staying focused. After falling out of my chair in class constantly and being fairly disruptive I eventually was diagnosed and put on medication, which helped me quite a bit. I stayed on medication on and off through elementary and middle school and into most of high school as well. I felt different when I was on that medicine. I could focus more. My thoughts weren't always racing. Sometimes things felt like they were going in slow motion. And I lost my appetite and developed a tic. Eventually I stopped taking them.

Me as a Young Hacker

In both high school and college I was one of those students that felt like things came naturally, but I struggled immensely when it came to studying and even normal classroom participation. I'd blurt out answers. I'd struggle with any kind of reading or carefully following instructions. In higher level math classes I could never memorize basic formulas, but sometimes I was able to work them out myself when I needed to during a test. Often that just translated to me taking longer than everyone else to finish a test. In other classes I would find myself drawn to overachieving on some trivial task, while completely ignoring my actual responsibilities. While I could hardly focus on my class work I would lug giant computer books to school or spend hours fiddling with Linux at home as kid. College really wasn't much better, though when it came time to choose a major in college I was drawn to the Community & Environmental Planning program at the University of Washington partially because it followed Evergreen's model of narrative grading, which worked infinitely better for me.

Today I'm a successful front-end engineer that has worked at several large tech companies. Anyone you ask that I've worked with will say that I've had an outsized impact on their team (and likely the company as a whole). Unlike in school my accomplishments in tech have been measurable and I've been compensated well for my work. I also really really like my job and the various developer communities I've had the opportunity to be a part of. Despite all of that success, managing my ADHD symptoms has gotten more difficult over time.

I've found myself viscerally uncomfortable in long meetings, which seem to be a staple in modern "agile" development. My memory is foggy and I often forget people I've met or meetings I'm supposed to attend. Any kind of long documentation that I need to read, like instructions for setting up a new code base can be excruciating. I often end up taking short cuts and missing key details. Complex task management software fries my brain and I haven't quite figured out how to successfully manage my inbox. And even beyond that it's taken me years to finally learn the basic algorithms commonly taught in intro to CS courses. And jobs. Despite having worked at several companies for multi-year stints within those companies I struggle to stay content in the same position for more than 6 months at a time. I'm always looking at new opportunities. My mind is never still.

Let me share how I've been able to modify my circumstances and in some cases take advantage of my disadvantages to make the most of my career in tech with ADHD.

Working at big companies has given me more outlets for exploring opportunities

This one took me a while to accept, because I grew up in Seattle idolizing grunge and punk rocks icons who despised stuffy corporate culture. Working in some kind of overly political and bureaucratic office filled with finance bros and ivy leaguers was never going to appeal to me. What I found though after starting my career in smaller companies and startups was that large tech companies can offer far more flexibility. For me, always chasing new dreams, it meant that in the 5.5 years I was at PayPal for example, I was able to work in several different roles, learn new technologies, lead teams, host events and basically never get bored. I had a similar experience at Amazon, after 18 months on one fantastic team, I jumped to another project. Many large companies even have rotation programs where you get to move between teams every 6 months.

One thing that is hard for me about working for large companies is their love of acronyms. I try hard to avoid them (and I ask others to do the same).

If It's Confusing For Me It's Probably Also Confusing For Others

One of the big skills that's helped me in my career has been acknowledging when something is confusing. Maybe it's during a code review. Maybe it's a user interface that's too complex. Or an onboarding guide. Just say it. "Hey I don't understand this". Or "this is difficult for me to follow". It's kind of weird in some quarters for a supposedly senior engineer to just nope out of something because it's too confusing, but it forces really important conversations about architecture, about product design and really all of it. As a developer relations engineer being able to articulate when an API or integration guide is too complex is extremely valuable. Struggling to stay focused with my ADHD can end up being a super power when it comes to advocating for a better experience for others. My entire career in developer experience has been made by gently (and not so gently) encouraging my friends and colleagues to make things less confusing for myself and others.

Getting the Most of Meetings

Through my career in tech I've been invited to entirely too many meetings. Sometimes I've gotten frustrated and walked out when I didn't feel my time was being spent well. Working from home has made it much easier to tune out of bad meetings or avoid them altogether. I just can't sit still for that long and a bad meeting or especially stressful one will often dominate my mind for the rest of the day.

I live for good meeting agendas with clear outcomes and a limited number of people attending. Make sure everyone knows why they're there or if they can opt-out. Don't pressure people to attend that aren't absolutely needed. And provide some real clarity around what outcomes are expected by the end of the meeting. The exception to that is what I think of as a chit chat meeting, which really is just about getting to know someone. Those are always fine. We can make time for friends. All hands meetings though. I'd rather skip them.

Amazon's approach of having 20-30 minutes at the start of a meeting to read a document or fill out whatever things people forgot to do before the meeting worked really well for me. It takes away a huge number of potential distractions and forces everyone to pay attention at that moment and with tools like Quip you can comment on the document inline and even engage in focused conversations before the meeting even begun.

Managing Agile Ceremonies and Software

The meeting I've consistently struggled the most with is the sprint planning meeting or really any agile ceremony meetings (including standup). When we start busting out the backlog and assigning things to people it's just this immediate explosion of context all over the place that becomes extremely difficult for me to process. I also absolutely hate to commit to doing something for two weeks, which we all know may get interrupted or maybe I'll have a brilliant idea mid-sprint. I prefer a Kanban approach or the "trust me to do the right thing" approach, because I will. And then there's the retro meetings where we rehash everything, it's all so dreary honestly and rarely proves productive for the team in my experience.

Another aspect of modern agile development™ is task management software. PayPal used to use Rally, many companies use Jira. All of them offer similar features and usually get configured to inflict maximum developer pain. The purpose of this software should always be to help engineers do their job well. However, it's sold to and often rolled out by executives who want maximum visibility and rolled up stats about absolutely everything happening in the company. In practice this turns filing a simple bug report into an exercise in categorization and org-chart spelunking that me as an individual with ADHD has absolutely no time for. Sometimes I was lucky enough to be on teams where our product manager would be willing to keep Jira happy. Other times we were able to convince people to keep the process dead simple or allow us to bring in our own informal tools like Google Docs or Trello, which made it much easier to handle in my brain. Please allow your engineering teams flexibility over the tools they use. It's a relatively simple accommodation that can help neurodiverse folks so much.

Communication Style: And why I hate e-mail

I don't know what I can say about e-mail exactly. I always have thousands of unreads just sitting there. Sometimes it's nice to be able to search through them when someone says "did you see the e-mail about X". I feel like what happens is I see this never-ending Inbox and I'll read something supposedly important and then immediately it gets lost in my mind and in a sea of other e-mails I don't really care about. I know people use folders and maybe that could work for me? I do a bit better with my personal e-mail because it's Gmail and I can just ⭐ everything that I want to keep track of and it gets pinned to the top. That really helps me. I haven't quite bothered to figure out an equivalent with outlook yet. I just keep hoping it goes away. (That includes really carefully crafted tech newsletter too, sorry.)

If you want to talk to me, please reach out on slack or Twitter. Don't ever call me. Always give me whatever context I need to respond later without assuming I'll be immediately joining a discussion with you. Because, I will not be. I also don't put slack or work email on my phone for the same reason. My time is precious and while I'm easily distracted I'm trying hard not to be.

Hyper Focus is a Thing (Though Rarely Since Covid Hit)

Sometimes I feel like I could go a whole sprint getting distracted on a million tangents and then in the last day or two get super focused and knock out all of the features in no time at all. This is often the case with bugs. I'll get distracted from my normal sprint work and just go on a tangent squashing a whole bunch of bugs in a really short period of time. I work in bursts. I need time away from the computer. I take walks. I'm probably only really productive for about 8 hours a week. (I'm a 10x engineer, but only 1/10th of the time.) The rest of the time my mind is distracted thinking about politics or my family or an open source project or some new feature I want to build that has nothing to do with whatever I'm supposed to be working on. Part of being successful has been understanding how to take time away from the computer where my mind is still working out the problem, so that when I come back from literally laying on the floor or going for a walk, I'm all ready to go. Working from home always made this easier for me, but with covid and kids around a lot more and all the existential crises happening around it's honestly been pretty rough.

I love reading & learning, but in small, focused packages with few distractions

I remember when the A Book Apart series first came out and they published HTML5 for Web Designers. It was a really small book and only 150 pages. And then they released CSS3 for Web Designers which I remember reading on my phone in line at Old Navy. I had been reading tech books since I was in middle school, but these were some of the first I was able to really devour without having to completely force myself. Short. To the point. Beautifully laid out with plenty of white space and tasteful use of color. I love buying tech books like many of you, but struggle getting past about the first 100 pages or so. Usually I'll read that much and then just kind of skim the rest or skip around to an important chapter. I absolutely love short books. My favorite example recently was Sam Julien's Getting Started in Developer Relations. At 79 pages it's absolute perfection.

Anything that limits distractions or the length needed to hold my attention helps my learning. Frankly it's one of the reasons I'm so stoked about VR, you're completely immersed on a single task. Another example is attending conference talks in-person. I do a good job of not bringing work to conferences and I'm not especially extroverted, so sitting there watching a few talks usually works pretty well for me. (At least for about 4 or 5 hours until it becomes too much information!) Similarly in-person or highly interactive workshops have always been really productive learning for me. An in-person all day GitHub workshop was incredibly helpful for me up-leveling my git skills. Working through EpicReact when I was recovering from covid. I learned so much and was able to stay focused because I didn't have any work obligations distracting me from learning.

Other than that most of my learning comes from thinking and exploring, which is usually quite unstructured, and that's ok.

One on One Communication Has Always Been A Challenge

Because I often end up situations I'm not sure exactly what is proper and expected I rely a lot on my intuition to guide me. I also have tried to develop my emotional intelligence and adapt my approach in discussion based on how people seem to be responding. This is definitely helpful when teaching. It also makes me greatly prefer video calls over audio calls where I have a lot less visual cues I can respond to. I know that doesn't work for everyone and I understand that and adapt. One unfortunate trait many people with ADHD share is a tendency to go on long rants and in their enthusiasm talk over or interrupt other people. I do this a lot. To compensate I often summarize my thoughts at the end of speaking and also acknowledge and stop myself when I do interrupt someone.

Presentations & Teaching

My ADHD sometimes gets perceived to others as having an unrelenting enthusiasm for new things. And truly sometimes I feel like Dory from Finding Nemo where everything is new an exciting each time even though I may have already learned that thing before. That enthusiasm translates well into public speaking and giving presentations and generally getting people hyped on new technology, which thankfully is an important part of my job.

When it comes to actually preparing talks, I don't think I have any special techniques. Usually I find myself going for walks or drives and speaking the talk into existence even before writing slides or an outline. When I do write the slides I like to make outlines first and then fill them in with content later. Speaker notes help, though I rarely actually get them to work on the day of, I just practice them over and over (out loud ideally). I love the energy I get when giving a talk and feeding off questions and enthusiasm from the people in the room. After giving a talk though my brain is usually fried and I'm basically useless for the rest of the day.

Writing is a little bit different. It takes me like 400 hours to write a simple e-mail and then I also have a typo or something in it. Blog posts are different because when I feel like blogging usually some idea is bursting to come out of me and I can usually type it up in a couple of hours, no matter how long it is. (Though I find myself publishing hastily and revising a few times after publishing, like I did with this post.)

Setting Expectations

One of the best exercises I ever participated in a corporate environment was on my last team at Amazon where our manager asked us to present our personal user guide which is a thing. You can google it. And it's basically just setting expectations with your team about how you like to work, including how you want people to give you feedback and what energizes/drains you. I put mine up on github. While writing it out was really helpful for me , having space to communicate and acknowledge that everyone works and thinks and reacts a little bit differently was really powerful for our team. I would highly recommend it as an exercise.

In Summary

Living with ADHD has no doubt been a challenge. It's affected my relationships, education and career in ways that I'm not always happy about. Like so many of you dealing with this I've been able to make it work for me and sometimes I've been able to use my experience as an advantage. It's helped me see things through a fresh & empathetic perspective and other times it's forced me to cut out unnecessary processes or work that was really benefitting no one at all. I don't know if I'm grateful that I have ADHD, but I am glad my ADHD and I have come to a kind of mutual understanding. I'm used to it. I know it's there. And for the most part we get along.


If you are neurodiverse in some way what kind of accommodations have allowed you to be successful at work? What techniques help you make the most of that challenge? How did medication make your condition more manageable? How has your experience with ADHD changed over time. Would love to hear your experiences.

Top comments (3)

Collapse
 
1sprintatatime profile image
Deepa

Thanks for sharing this. I got diagnosed with ADHD too late in life and I wish it was sooner. I kept thinking something was wrong with me and I could not manage my brain for a number of years.
Making art really helped me, because there were no rules and I could go wherever my brain wanted.
Medication is helpful and I have seen condition worsen when I’m off them.

  1. Idle time through the day really helps my brain feel free. I need time between meetings or I start to lose comprehension. I h block my calendar on Sunday night so other people don’t overbook me.
  2. Music, I take breaks to listen to music to clear my head.
  3. Sleep schedule really dictates my day and routine keeps a lot under control.
  4. Audiobooks - i listen to audiobooks to feed my brain and it keeps me from getting distracted. Like listening to audiobook while cooking. Keeps me from getting too excited and taking on too much and starting a bake off.
Collapse
 
cmgustin profile image
Chris Gustin

Thanks for taking the time to write and share this, I've been through a very similar journey (diagnosed in 4th grade) and it helps just to know there are other people on the path. There's a lot of great advice here, and so much of what you said resonated with me since my brain works the same way.

I wanted to add a few things I've found helpful in my day-to-day life:

1. I'm obsessive about my calendar. Any date or time based obligation immediately goes in my calendar, because I know my brain won't remember it for me. I set alerts for events I'm likely to forget or will need a nudge to remember.
2. I love to-do lists. I keep a Trello board that maps out my week (Icebox, Today, This Week, Done) with cards for any big picture action items or smaller tasks that might get lost, and I have a whiteboard on my wall for tasks that need high visibility (Paying bills, Sending invoices).
3. Inbox labels are a lifesaver. I'm a freelancer so I have multiple clients, project management systems, communication systems, etc. all pouring into my inbox. Setting aside time to create labels and filters so messages get moved into the right buckets automatically has made it all much easier to manage, and helped me avoid missing important client emails that otherwise might have slipped through the cracks.
4. Set aside time to do the administrative work each week. Managing to-do lists, keeping a calendar, cleaning my inbox, making sure invoices are paid: it's not exactly exciting work, but investing time to not only do these things during the week, but do them well, pays huge dividends in terms of helping me keep my mind unburdened so I can focus when I need to. If I let these things slide, they pile up quickly and become overwhelming, which creates the feedback loop of dread and avoidance.

Thanks again for taking the time to share your experience!

Collapse
 
xjamundx profile image
Jamund Ferguson

Really appreciate you responding with your own tips. These are all great!