Pufferfish just trying to protect itself in a scary world ❤

I run a company called Compassionate Coding, and I’m often suggesting that people treat each other more kindly. This leads some people to believe that I’m a naturally “nice” or charismatic person. People who have known me for years can tell you that nothing could be further from the truth.

I want to set the record straight.

In many ways (other than being female), I was the stereotypical jerk programmer for much of my career. I acted like I was smarter than — and therefore superior to — most people I encountered (while secretly feeling worthless when I believed I’d encountered someone smarter). I used every opportunity to express disdain for technologies and skill sets I didn’t value. I criticized people’s work directly without regard for their feelings. I was oblivious to my privilege and took full credit for my “success.”

I was professionally successful by most definitions, but I was deeply unhappy. My only friends were fellow jerk programmers with whom I’d privately make fun of the “idiots” we worked with. I was building interesting technologies and making good money, which rewarded my ego and funded escapist activities like drinking and playing video games, but in quiet moments, I admitted in my journal that my life felt meaningless.

That all changed over the last few years, when after a period of burnout and disillusionment with the tech industry, I decided that I cared more about finding true fulfillment than just going through the motions and protecting my ego. I decided it was time to open the floodgates and actually start caring about people without reservation. My life now has more meaning, and I am much happier.

I believe anyone can make this change. To that end, I want to explain why I was such a jerk, what made me change, and how I did it.

The Early Years: Planting the Jerky Seeds

My father was a science professor and instilled in me from a very young age the idea that intelligence, especially as revealed through academic success, is all that matters.

I distinctly remember an early school assignment where the teacher asked us to list out adjectives that describe a good friend, and I wrote, “Smart.” My teacher didn’t quite know how to handle that.

I probably met the definition of a “nerd,” and yet I bullied the kids I thought weren’t “smart.” (Thankfully, I’ve since been able to make some apologies via Facebook, but I still feel remorse for those years.) After all, since birth I’d heard my father talk about people who weren’t smart as if they didn’t matter as human beings.

Whenever a teacher made a mistake in class, I was quick to point it out and then lose respect for that teacher (of course, I still feigned respect since I needed to get my A).

I lived in constant fear of imperfection, which I knew would lead to rejection by my father and eventual poverty (we didn’t have a lot of money, so a lot of the pressure was related to ensuring future financial security). So getting straight A’s wasn’t a goal — it was the only option. I would forego sleep and even showers to ensure “victory.” It became an addiction.

I saw myself in competition with everyone else in the class, so I had very few friends. In the rare moments when I wasn’t studying, I played computer games or read books.

Finding Comfort in Coding

Enjoying computer games and playing with DOS on the old computer my father had brought home from work led me to take computer science as soon as I could, which happened to be my sophomore year in high school.

I loved it immediately. Just like grades, each working program seemed to provide a perfect confirmation of my worth. A new addiction grew. I would spend countless hours programming alone. The persistence I had developed playing perplexing adventure games prepared me for long hours spent solving problems in solitude.

One year, my happy solo programming was interrupted by a required group assignment to make a game. Since of course I arrogantly considered myself better than everyone else in the group, I insisted on writing the majority of the code and “letting” the others make minor contributions like writing text content to be inserted in the game.

Getting the grade and boosting my ego mattered more to me than the feelings of the other people in my group.

College was more of the same. I majored in computer science and spent most of my time alone, ensuring that I continued my A streak.

I did start bonding with some classmates in college, mostly the ones who also enjoyed arrogantly debating which of the professors really knew what they were talking about and which were teaching “fluffy” classes.

One time we were all hanging out and they said that I was a “bitch,” but that that was a good thing. I didn’t know enough at the time to realize how problematic this was, so I accepted it as a compliment; I was “one of the guys.”

Becoming a Career Jerk

As I began my career in tech, I noticed that insulting other people and technologies seemed to win respect. For example, I knew I could usually win over new people by making fun of PHP, a language that I actually didn’t know much about at the time. Making fun of “management” and salespeople and marketers also seemed to be a popular activity — after all, coding is the only important skill, right?

I also spoke to people as if they were computers, and if they got upset, I decided that’s their own fault for not being able to manage their emotions.

I made new programmer jerk friends. I even started dating one. In private, we loved to criticize people who weren’t “real” coders. I separated myself as much as possible from other female technologists because they were often the ones my friends would criticize. At one point early in my career, my friends joined the bandwagon in making fun of Leah Culver. Rather than standing up for her, I just found comfort in the fact that they at least clarified, “Don’t worry, April, you’re nothing like her. You can actually code.” (I also internally decided I should probably avoid posting code online as a woman to avoid the wrath of the internet.)

I’m not proud of my behavior. I now understand that it was masking deep-seated insecurities and fears. I didn’t want to lose my place as an accepted member of the jerk programmer group. I wanted to be the “cool girl.”

Questioning the Jerkiness

As my career progressed, I grew more and more unhappy. I felt exhausted from always trying to keep up appearances of being “smart” and not admitting any weakness. I refused to ask for help because I knew that there was a group of people — my friends — who make fun of people who do ask for help.

I also started witnessing and experiencing sexism first-hand, something I hadn’t wanted to believe existed previously. Then I noticed other types of bias and injustice.

I also realized that most of my work didn’t seem to be adding anything meaningful in the world.

Feeling desperate and depressed, I started reading the self-help books I used to mock. These helped me unpack some of the toxic beliefs I had inherited from my father and academia and carried into my tech career.

I realized that I had structured my whole life around the idea that intelligence is all that matters (not to mention believing that we have any way to accurately measure it). I started to wonder, “What if that isn’t true?”

My self-help reading journey eventually led to me to the book Self-Compassion by Kristin Neff. I found such comfort in that book, which made me think that I might be valuable as a human being even without my achievements.

It occurred to me other people my friends and I had ignored or secretly mocked were also valuable just for being themselves. I also learned more about privilege and started to take less personal credit for my perceived success.

Feelings of humility replaced the arrogance and insecurity.

Committing to Compassion

As I read more and looked more closely at my life, I gradually started to make changes. I decided to take responsibility for the consequences of my actions. For example, I realized I no longer wanted to cause suffering to animals, so I became vegetarian (I became vegan a few years later after learning more about the suffering in the egg and dairy industries). I started looking for job opportunities where I could make a positive difference. I stopped worrying about appearing “weak” for caring about something.

I changed in a lot of ways, but I still clung to the idea that being strictly rational and direct in communication was all that mattered. I didn’t take into consideration other people’s feelings. This led to conflicts on my teams. Other people sometimes cried because of things that I said.

Eventually, I realized that taking time to care about other people’s emotions isn’t just kind — it’s actually more efficient if it leads to smoother interactions that don’t trigger people’s threat responses.

I read about emotional intelligence and started implementing practices designed to develop it. My interactions went more smoothly, my team operated more cohesively, and I was happier!

I started working at a company that claimed to value “kindness.” I thought this would be great. However, in practice, it often led to people holding back their true thoughts for fear of damaging someone else’s ego. It resembled “ruinous empathy” from Kim Scott’s model and also led to serious problems on the team.

That’s when I realized that it wasn’t exactly “kindness” that was needed, but rather compassion.

Compassion presents an optimization problem — it’s about understanding and minimizing suffering. It’s not the same as politeness or niceness, and it often involves speaking honestly and assertively.

This was what had been missing in my life and missing in the tech industry — compassion.

As Karen Armstrong expresses so well in Twelve Steps to a Compassionate Life:

If it is not tempered by compassion and empathy, reason can lead men and women into a moral void.

This realization led me to start Compassionate Coding to help bring compassionate practices to other individuals and teams to help them operate more effectively. I train companies on using the power of compassion to build better teams.

My jerky past helps me build connections with engineers who feel pressure to be jerks in the present. I understand how tempting it is in this industry!

A Continuous Process

I slip back into being a jerk sometimes. I’m human and fallible. When it happens, I try to have compassion for myself and commit to doing better tomorrow.

Cultivating compassion is a continuous process that only ends at death. It’s not easy work, but since it gives my life meaning, I see no other choice.

What Does This Mean For You

If you’re surrounded by jerk programmers, please know that they’re likely just insecure (and possibly also lonely and scared and sad) like I was. Try to avoid them while also feeling compassion for them.

If you are a jerk programmer, here are my suggestions:

Take some time to list out your deepest core values. (Yes, even if you think this is self-help nonsense — especially if you think this is self-help nonsense.) Dig deep. Think about what really matters given that we all die. Is developing your technical skills and being known as a “rockstar” or “ninja” the full legacy you want to leave this world? Do a personal retrospective — look back on this year (or this week). Where have you lived up to your values and where have you fallen short? What can you do next week to better align with your values? Remember that you matter just because you’re alive. You don’t have to keep proving your worth, especially at the expense of others. Consider the advantages you have had in life. Acknowledging these can stimulate feelings of gratitude and also humility. Make amends where you can. If you’ve hurt people over your years spent being a jerk, can you apologize? As long as you feel confident that apologizing won’t cause more pain to the person, it’s never too late to say you’re sorry.

The tech industry — and the world — is made up of individual humans, and a lot of those humans are suffering. Each of us has the opportunity to do something about it. I was able to change, and I truly believe that anyone can.