What is it like to be a software engineer with ADHD?
Just one data point, but hearing other people’s stories helped me feel less alone. Hopefully this helps you.
[Since initially writing this, I have gotten treatment for ADHD which is nothing short of miraculous. Anxiety and depression melted away almost immediately and my brain and body actually do what I tell them to with so much less effort and exhaustion. I can’t believe I survived half a lifetime like that, but I am grateful to have had to develop tools to deal with it and to still have those tools at my disposal now. I will certainly cover this in upcoming posts.]
This whole story is pretty vulnerable. I’m not really sure I should even post it. I write anonymously, but it wouldn’t be that much of a stretch for someone to figure out who I am. Here goes anyway, I guess.
I find software engineering (interchangeably, SE) mildly interesting, but ultimately it’s just a job. It provides a nice dopamine hit when you solve something, but, in my experience, it provides far more pain than pleasure. It has paid pretty well up to this point, so stepping back from the pain/pleasure cycle (which is not a natural thing to do for ADHD), it provides enough money to avoid other pain. Now that the C-suite and investors seem to have declared war on knowledge workers with the emporer’s new AI workforce, we’ll see how long the nice pay lasts. It might honestly be a relief to have to change careers (again) to make a living because SE is not a natural fit with my flavor of ADHD (which doesn’t include much H, but also doesn’t include much math).
What software engineering as a practice does provide that is great for ADHD is structure. Git is a slog. Agile blows. But just like software itself, breaking the process of creating it down into small, repeatable chunks fits very well with ADHD. Distilling simple steps so that you don’t have to hold a ton in working memory that is probably not as good as your average neurotypical SE is a lesson I’m grateful for. So let’s get to the story. The first part is not specific to SE because it happened before SE, but hang in there. I’ll bring it back (I know this not because I was able to plan out a great story arc, but because I wrote this sentence after I finished).
You’re so smart, but why can’t you just apply yourself? You have so much potential.
A lot of high achievers with ADHD have a story like this, especially the undiagnosed. If you’ve made it into an SE career with ADHD that’s probably you even if math is one of your hyperfocus interests.
You’re smart. You were smart when you were a kid. People told you that. Maybe they put you in a gifted program. In fact, that’s probably the main reason you weren’t diagnosed. But if you’re so smart, when you lose things, forget to bring a book home you need for your homework or space out, you must just be lazy or not care, right? You have so much potential, why don’t you just apply yourself? (The anger is welling up just writing this. Fuck you. I tried twice as hard as any other kid in this class and I still forgot the book.)
If you hear that enough, you start to believe it. I must be lazy. I must not care. And then what happens? You make it so. You give up. You go from the intense people-pleasing of a kid trying to be what they say you are to a misanthropic teen, mad at the world. But maybe still doing OK in school because, well, you’re living proof that you don’t have to actually learn much of the material to do well on tests in the American education system. It’s a structure with simple rules that an ADHD brain can learn.
This is where, in many ADHD stories things go off the rails. College. That nice structure is gone. Distractions get ramped up. Impulsive emotions are triggered at every turn. Choices abound. I want to do all of them. But only for like a week each (or an hour). Sitting in one class, even an interesting one, for 3 months is nearly impossible. And guess what, you don’t have to. I’m an old man, and we didn’t have smart phones or even laptops in class, so if I wanted to read about something else while that class was happening, I was physically somewhere else. Probably also smoking a cigarette and drinking coffee.
Maybe you make it through college, maybe you don’t. But either way, real life is there, waiting. And giving up in real life, while it is an option, means dying. So you go back to what you were doing when people told you you were smart — people pleasing. You go back to trying to be what they said you were. But now, you know it’s not true. It can’t be true. You’ve seen too much evidence to the contrary to really believe you’re smart. How could you be smart without much working memory or focus? But they don’t know that. None of them knows the grind, the exhaustion, the extra work it takes to keep up the facade, and they don’t care. They want smart people in their companies.
So you grind. You stress. You find every place where a little extra work can make up for your shortcomings. In SE, where solutions are what you barter for respect and money, that means before every meeting, I have to solve the problem. I can’t do it on the fly, with other people present. I don’t work that way. I need to prepare the structure of the solution and have it so clear in my mind and on my screen that my working memory deficiencies don’t get noticed, hopefully. And I have to be done 15 minutes before a meeting because if I’m still working on something within 10 minutes of a meeting, I’ll never be able to disengage enough to even know what time it is, and I’ll be late or miss it altogether. Unless you make it tick, time stops ticking when you have ADHD. People don’t like it when you’re late. So I constantly stop what I’m doing to push the hands on the clock in my head forward, and there’s another distraction.
Personally, I don’t social media. I can’t. I don’t even social that much. It divides my attention in way I just can’t afford if I’m to please these work people enough to get the money and respect I need to survive. My girlfriend has been exasperated with my singular focus on work at the expense of social interaction. But my attention is so easily divided that I cannot possibly respond to text strings or check social media and still keep a job. I need to put on blinders and create my own tunnel. Even while writing this, I feel terrible because I should be coding.
The ADHD savior: curiosity.
This is why they called you smart, back then. When something grabs your attention, you go all in. You go down the rabbit hole, each thing leads to another thing you need to know to understand the first thing, and maybe you make it back to the first thing, maybe you don’t. When I was a kid doing homework, I’d run across a word I didn’t know and crack open the dictionary to read the definition (yep, an actual book). That definition would lead to reading the definition of a word in that definition or related to it. Before I knew it (literally), I’d been reading the fucking dictionary for two hours and hadn’t done a bit of homework. The whole time you’re in a rabbit hole, you’re searching for the pattern you can use in lieu of remembering the details. You’re looking for the path you can use to get back here later, if need you to. You can’t just learn a couple of facts, satisfy the curiosity and move on. You’ll never remember those things. You have to draw a map back to this treasure. The map becomes the treasure. And 9 times out of 10 you won’t ever use that map again because something else will grab your attention. But you aren’t aware of that in the grip of curiosity. This map is the most important thing to make in the whole world. And then you drop it like a rock or like one of the many hobbies you spent money buying stuff for, only to abandon it after a week. (Ashley Crouch calls this the ADHD tax and that shit is real.)
Some of those curiosity rabbit holes do collect around topics and lead to something akin to expertise, but they’re not something you really have control over. You just try to nudge yourself in the right direction.
But what does this have to do with Software Engineering?
I digress. Very often. Rejection sensitive dysphoria. You can read more about it here, here and here. And if you want some official research on the medications mentioned in those articles, you can find it here.
Now, if you made it back here, you may or may not have tears in your eyes. But you may. It’s 10:16. I need to get some code out the door, but I can’t. I have to tell you this story. Stress is building, but I can’t stop now, or I might not make it back. The people who want the code done will think I’m lazy or stupid if I don’t get it to them. But I’m still writing this. I haven’t finished the code yet, because I haven’t been able to hold enough of the solution in my head, I’ve gotten distracted, I’ve forgotten where I was every time I came back and had to retrace a lot of steps, found stupid mistakes and not so stupid mistakes, gotten bored, gotten discouraged, gotten so paralyzed by the emotional impulses telling me that still, after 10 years, I’m a fraud and I don’t deserve to be doing this, I’m not smart enough. That, in a nutshell, is what it feels like to be this software engineer with ADHD. Every. Single. Day.
To be fair, some days have much less of that. Those are the days where the stars align, the intense interest kicks in, everything else goes away, and this beautiful code is the only thing in the world. Those are good days. Usually, in those days, there’s about an hour of heart pounding terror in the beginning, and then sweet, calm bliss for a very long time afterward, with little dopamine hits after each commit and a big one when a PR is completed.
And don’t get me started on SE interviews. I’ll puke out of sheer terror. Rejection sensitive dysphoria makes every interview a fugue state of dissociation just to get through it. And often, I can’t. It has absolutely nothing to do with what I can do, it’s when, where and with whom I can do it.
A good portion of the code I’m working on now was originally written by someone else. It wasn’t written to do the thing I need to do. In fact, it was written in a way that blocks the thing I need to do in about 100 different places (that is not hyperbole). It was not written by someone with ADHD, so it is not particularly modular or in nice, small simple steps. I can’t hold all of the places in my head that I would have to say “if this, then that” or “map this value to that value” in order to make the code, as-is, do what the new feature needs. I didn’t want to step through each one of those places and add that feature specific code, perpetuating the monster. That would make me the next engineer’s monster. I know there is a perfect way to abstract this functionality to minimize the need to refactor the existing code while also making the new feature a set of easy steps to read in a couple of different files. Or rather, I know a good engineer should be able to create it that way.
So I start whiteboarding. I write three things down. Between thing two and thing three, I wonder if I should move some money to a different account, with more interest. I sit down to see if the CD I looked at last week is still offering a high rate. But I have to wait for a check to clear before I can transfer money. The familiar feeling creeps in. I should be doing something else. I shouldn’t be doing this. Before I can stand back up in front of the whiteboard, I wonder whether the vagus nerve takes signals away from the thalamus or to the thalamus or both, and which signals? A quick google search away, the world disappears into a swirl of leptin, insulin and mitochondria. A couple of hours later, I look back at the whiteboard. What the fuck was thing 4 going to be? Why did I make thing 1, thing 1? Fuck.
Back to the search for the perfect abstraction. But the goal is elusive. Perfection delays the start of coding. I don’t want to charge the client for that, so I don’t. I pay the tax for what I still can’t stop thinking of as my own character flaws. The perfect solution never emerges, but some better ones do, so I start. And false start. And start again. But they get tangled and difficult, and my emotions get super charged. I berate myself, cajole myself, whip myself. Even the smallest sticking point becomes proof that I have no business doing this. I fight through it. I have no choice. But smart people don’t let their emotions control them like this. I know because I’ve read Quora, and a rabbit hole of unqualified people’s opinions couldn’t possibly be wrong. So another mental check mark gets put on the long list of proofs that I am indeed not smart.
It’s fucking exhausting. But hey, it’s work and work is not supposed to be fun. It’s supposed to be soul crushing and ego destroying. And everybody in America is supposed to thrive on abusing themselves with it, and if they don’t, they’re broken. Since everyone hates this thing, my horrible experience of it must be the same as everyone else’s, right? Hmm. Not exactly.
What is ADHD?
This is kind of a downer list, but there are good things, too.
Emotional impulsivity. The executive function needed to manage emotion is blurred. That’s sort of what ADHD is, I guess. It’s weakening and blurring of the signals your pre-frontal cortex is trying to send to direct you. There’s not enough norepinephrine to create a strong signal and there’s not enough dopamine to keep the static out of the signal. So you just get the full emotion, at high intensity, and your conscious mind can’t mitigate it with rational thought.
Poor focus. Normally, when some brain networks are active, other networks quiet down. For example, when the task focus network is active, the default mode network (we’ll call the daydreaming/self-reflection network) normally quiets down. But ADHD again blurs the signal, so the default mode network is still chattering away over the top of the task focus network. Just shut up man. Make me. Um, I can’t. So the daydreamy/self-critical thoughts just keep right on going while you’re trying to work, and you’re often working with one part of your brain tied behind your back. Unless the task is REALLY interesting. That can release enough dopamine to clarify that signal like a motherfucker, and in fact, it can’t be stopped.
(As an aside, I have a hypothesis that glutamate — sort of a Swiss army knife neurotransmitter that fits in a lot of receptors — gets recruited to pick up some slack if there’s not enough dopamine or norepinephrine. Since glutamate can also be metabolized by the brain as energy or used to create the calming GABA protein, when it is used up by trying to force focus, it makes the brain very tired and anxious. But I’m not a scientist with access to the necessary equipment to ever test that hypothesis.)
Poor working memory. TBH, I don’t know much about the why behind this one yet.
[Note: I do now understand this. Hint: it’s not an issue with working memory capacity, it’s an issue filtering what gets stored in working memory so that capacity is used for relevant information. More to come.]
For me it just feels like trying to grab as many sardines as you can out of a bucket. When you try to get more in your hand, some others squirt out, and sometimes it’s hard to make sure you have the right ones to do whatever you need. I can’t remember the names of movies, singers, songs or anything else pop-culture related. Those sardines always slip out. I always thought there was something wrong with how I stored memory, such that it wasn’t easy to get to. But I suspect it has more to do with the retrieval process than the storage.
Hyperactivity. The H. It’s apparent in a lot of people with ADHD. It’s not in me. And, unfortunately, that’s the thing that gets you diagnosed because that’s the thing that drives parents and teachers nuts. If you’re always daydreaming, that’s, you know, unique, but at least you’re not kicking the chair in front of you or blurting random stuff out while they’re trying to lecture. So you’re probably fine. Right?
Hyperfocus. As discussed above in “curiosity”. My hypothesis is that when a dopamine starved mind finally gets some, it just keeps sucking on the teat that provided it.
Pattern recognition. Also discussed above in “curiosity”, patterns are the key to a different kind of memory, and when it’s all you have, you get really good at finding them.
That’s way more than enough for now. I’ll probably expand some parts of this into posts of their own. Or maybe I won’t. Bye.