Why I’m Sometimes A Grumpy Developer

A personal story about how coding seems to make me grumpy

The Liberators
Published in
5 min readMar 4, 2024

--

In most situations, I‘m a sociable, friendly, and nice guy with a dry sense of humor. But those who know me when I’m in my role as a developer know I can be terse, grumpy, and task-oriented to the point of unfriendliness. When my mom calls me, she can hear it in my voice when I’m coding and often offers to call back later.

, my wife, knows from my responses that my mind is still stuck in “coding land”. And my business partner often experiences this in our work on Columinity.

This is basically what happens in my mind when I’m dealing with “Developer Brain”

This has been a struggle for me ever since I started writing code. While I deeply enjoy the coding challenge, and I’ve become very proficient at it, it also turns me into a grumpy gremlin. I’m aware of it. I don’t like it. I don’t like myself for it when it happens. But I can’t seem to stop it, at least not when I’m writing code.

This personal post is my reflection on this challenge. It might also be helpful to others who experience this too. I believe this post is also useful for non-developers to understand why focus is so important to developers.

Coding and puzzles

I love writing code because it's essentially a big puzzle. Every feature, every bug I want to fix, and every idea I want to realize requires me to solve a puzzle. This puzzle can be decomposed into many smaller complex puzzles that, in turn, can be decomposed again. The high-level puzzle is “What is the best way to support a particular user need in our tool?” then decomposes into “What is the best way to present it?” “Where in the code should this architecturally happen?” “What classes do I need to modify?” down to “What is the cleanest way to code this class?”. Every time I resolve a puzzle, I get a nice shot of dopamine. It feels good. So, I move on to the next puzzle and solve that, too. This alone makes writing code addictive.

Then, there is the flow state I sometimes get into while writing code. This is a state of laser-like concentration where I can simultaneously track many layers of code and maintain that focus for hours. My productivity skyrockets in this state. Code flows from my hands easily, and I see solutions within minutes for problems I’ve been struggling with for hours before (while not in this state). It's very enjoyable and fulfilling!

I enjoy personal gatherings and like to learn from people. But it's hard for me to do so right after coding.

It usually takes me at least a few hours of consecutive work to get into a flow state. Music helps — I even created a playlist for it. But when I’m interrupted by a phone call, an email, or social media, I have to start over. It’s also hard for me to build focus when I know I have some fixed-time meeting, call, or event later in the day. Not surprisingly, the late evenings work best for me — but that isn’t a sustainable solution when you’re in a relationship.

“Not surprisingly, the late evenings work best for me — but that isn’t a sustainable solution when you’re in a relationship.”

Two things about flow state are challenging for me. The first is that the days when I’m unable to achieve it often leave me frustrated. This is particularly true for days with unexpected interruptions. Because I know the vast difference between a good day and a bad day regarding my overall productivity, it is increasingly hard to accept bad days. The second challenge is that it's hard for me to immediately emerge from a state of flow and be responsive, friendly, and sociable. The kind of energy it takes to focus and concentrate on a tough puzzle is very different than the kind of energy it takes me to engage in social interactions. It takes time for my brain to wind down from a flow state and be ready for social activity.

Interestingly, there is some scientific evidence that supports this experience.

shared a scientific study by Jack et al. (2012) that used fMRI to show that the parts of the brain that are engaged for logical reasoning (which you need for coding) seem to inhibit the parts of the brain we need for empathy, social interactions and so on. For tasks that require highly task-focused, logical thinking, participants in their study showed much lower activation in the brain parts required for social interaction. They conclude “These results indicate the reciprocal inhibition is not attributable to constraints inherent in the tasks, but is neural in origin. Hence, there is a physiological constraint on our ability to simultaneously engage two distinct cognitive modes. Further work is needed to more precisely characterize these opposing cognitive domains”.

What now?

So what can I do about this? I’ve tried many things. I once tried Pomodoro timers to limit the time spent on coding. That didn’t work for me. I tried to restrict coding to two days a week. That didn’t work for me. As nice as that idea sounds, two days leaves very little time to implement larger features. I’m unfortunately still the only developer on our payroll — we just don’t have the financials for more — so that would reduce our development capacity too much. I tried meditation. That worked a little. What worked best so far is to be very selective in time-fixed meetings and calls, and to bundle them as much as possible so I can leave the other days empty.

A recent insight is that I should accept it instead of fighting it. I can’t seem to change how my brain goes into a flow state and comes out of it. So I try to be more open about it, which is one reason for this post. While I fully admit that I’m not always the most pleasant person to be around when I’m in deep focus, or immediately after, the productivity it brings so far still feels worth it to me. It's also one aspect of my current work that makes it very satisfying. When that balance shifts, maybe it's time for me to stop development, at least for a while.

P.s. I don’t have AD(H)D, autism, or some other disorder. I am a psychologist by training, so I am aware of their symptoms. What I am describing in this post is an experience that is triggered by the kind of work I do. It's not persistent. It doesn’t happen with other kinds of work. We should always be cautious of fundamental attribution errors where some behavior is attributed to traits of a person when the behavior is caused by the situation they are in.

Order your book directly from us for some nice extras.

--

--

Christiaan Verwijs
The Liberators

I liberate teams & organizations from de-humanizing, ineffective ways of organizing work. Developer, organizational psychologist, scientist, and Scrum Master.