DEV Community

Himashi Hettege Dona
Himashi Hettege Dona

Posted on • Originally published at Medium on

Cognitive Behavioural Therapy (CBT) for Developers

I went to a really interesting Meetup the other day called Cognitive Behavioural Therapy (CBT) for Tech Leads. The talk was led by Jamie Strachan, who was a developer for 15 years and now manages a team of developers at Info-Tech Research Group. In battling his own depression, he was introduced to the book “Feeling Good” by David D Burns, where he discovered CBT.

Although not a tech lead myself, I was intrigued by the topic. Coming from a Neuroscience background and spending countless hours in various psychology classes, I wanted to see how Jamie was using CBT to help improve the day-to-day effectiveness of his fellow developers.

CBT is the idea that our thoughts determine our emotions. Changing how we think therefore, will change how we feel about an experience. CBT is generally used to treat depression and other mental disorders, but Jamie outlined how CBT can be used to overcome common challenges such as procrastination, perfectionism, or handling criticisms.

Now before we can go into how CBT can help overcome these challenges, we need to understand how our minds can trick us into arriving at negative conclusions. These “tricks” or cognitive distortions, are inaccurate thoughts that reinforce negative patterns of thought or emotions. It’s essentially a faulty way of thinking that convinces us of something, that isn’t really true. There are many cognitive distortions but some of the ones that Jamie pointed out were:

Emotional Reasoning — We believe what we feel must automatically be true. We believe these unhealthy emotions reflect the way things actually are.

eg.) Because I am feeling overwhelmed, I must be facing something overwhelming.

All-or-Nothing Thinking — If we don’t perform perfectly in one area, we see ourselves as a total failure.

eg.) I can’t learn this language quickly enough therefore I’m a failure as a developer.

“Should” Statements — We have a firm set of rules about how we should behave. We think these statements are motivating when directed towards ourselves, however they often leave feelings of guilt, frustration, and failure.

eg.) I really should exercise.

Jumping to conclusions (Mind reading, fortune teller error) — We come to a negative conclusion even though there are no definitive facts that convincingly support said conclusion.

a.) Mind reading — You arbitrarily conclude that someone is reacting negatively to you.

eg.) She didn’t say hello to me this morning. She must dislike me.

b.) The fortune teller error. — You anticipate that things will go awry, and you feel convinced that your prediction is an established fact.

eg.) My year-end review will definitely go poorly.

Catastrophizing / Magnifying or Minimizing — We expect the worst to happen based on a slight incident that was not a big issue in the first place.

eg.) I made a mistake and now the whole project is ruined and I’ll be fired.

Labelling — We generalize one or two qualities into a negative global judgement.

eg.) I can’t even help him find a solution. I’m an idiot.

Jamie then went on to explain how these cognitive distortions are intertwined with some of the everyday challenges we face both in the workplace and our personal life.


Perfectionism is described as setting extremely high and often unreasonable expectations for yourself and/or others. Oftentimes, your self-worth is based on your ability to strive and achieve these standards. Perfectionism involves “all-or-nothing” thinking; if something is not “perfect” or up to a certain standard, it’s useless.

As soon as Jamie mentioned this, I instantly thought of an example from my own life. When I was coming up with ideas for my personal website, I looked through multiple examples that others had done. I would finally settle on an idea and start working on it, but then I would see something better that someone else had done and scrap my idea. This happened numerous times as I felt my work wasn’t “perfect” and didn’t measure up to some standard I had set for myself. Even after I had the website put up, I would still obsess about various changes or improvements that I could include.

Of course, wanting to improve your work is a good thing, but not when it gets in the way of other more important tasks. In my case, I had other programming languages to learn, and it was far more important to improve my coding skills than put up a cool looking portfolio website.


Consider the following scenario. There’s a deadline fast approaching for a project and you’ve barely started to work. You’re feeling anxious about it so you find yourself scrolling Pinterest, watching T.V., or even cleaning the house all to avoid the task and temporarily find some relief from your anxiety. Once the reality of the deadline sets in, you feel extreme guilt and shame that you’ve wasted all this time. Again you turn to T.V to shut off those negative feelings, and now you’re in a vicious self-defeating cycle.

This is something I’m sure everyone has gone through at some point in their life. Again our brains are really good at misleading us. In this case, we’re using emotional reasoning. We are feeling anxious and overwhelmed so therefore we must be facing a task that’s daunting.

Mishandling Criticism

In any work place, your work will face scrutiny and criticism from others at some point. Hopefully this will be constructive criticism and lead to the overall improvement of the project. It’s important to be able to take criticism from others without feeling anger, frustration, or guilt.

I’ll be honest, I’m not someone who handles criticism well. For me, receiving criticism leads me straight to “Should” statements. “I should have known better.” “I should have caught that error.” “I should have worked harder.” These statements often lead to guilt and the feeling of defeat.

So how do we actually change this way of thinking. The first thing according to Jamie is you need to test your feelings. Feelings will not necessarily be positive. The should however be helpful, reasonable, and rational (based on reality). This helps you identify the issue. Next, get the thoughts out of your head using the Triple Column Method (see below). Lastly, do not be afraid to seek help.

Of course, this topic is far more vast than I can hope to cover in this post but I hope it has piqued your interest. Please check out Jamie’s full talk at

Top comments (1)

pvafc profile image
Prasanth Vaaheeswaran

Great first post!