Trigger Warning: Discussion of depression and emotional abuse.

The email began by telling me I was being “too emotional”.

It proceeded to question my skills as a project lead and attempt to undermine a firm decision I had made by appealing to more senior developers.

It ended with a smiley face.

It was such a short, vile little email, but everything about the situation exemplified the disrespectful, boundary-pushing nature of the open source community I was involved in. Worse, based on past experiences, I knew no one would back me up if I called this person out on their emotionally manipulative email.

I was depressed. I felt powerless in a community that had a history of tolerating harassment, sexism, and homophobia. I had been told that I needed a “tough skin” to work in the community, and I needed to “not take it personally” when developers were abrasive during code review. When I complained about the toxic environment, I was told it was “tradition” to be blunt and rude in order to have a truly open dialogue.

When the senior developer wouldn’t respect a technical decision I had made, I was first politely firm, then more insistent, and finally loud and angry. The developer then told me, a woman developer, that I was being “too emotional.” Talk about double standards! When I got that email, it was the last in a long series of run-ins with sexist developers in my community. I couldn’t work in this community anymore without the threat of harassment. I was done. Fed up.

So I voted with my feet, and I decided to leave.

Five stages of grief over community and job loss

I struggled with the decision to leave my community for about three months. Looking back, I realize I was going through the “five stages of grief” over the loss of my role in the community.

CC-BY Ludek Rolecek, filtered.

At first, I tried to deny my feelings and “just do my job”. That lead to severe burnout and depression. In order to deny my feelings of powerlessness, my anger at the community, I had to stuff everything into an emotional box and close the lid.

I usually follow a lot of technology activists, but in order to get my job done, I had to deny that the problem even existed. In order to mentally survive in a community that would not allow change, I could not acknowledge that change was possible or valued. I felt I could not publicly acknowledge that there was a problem in open source and the current tech scene without drawing undue attention to myself. I stopped following activists and basically stopped interacting on social media.

With the feelings of powerlessness came feelings of mistrust. I cut myself off socially, except for a handful of long-time friends, because I simply did not know who I could trust any more. I had thought my community was welcoming and respectful until many years into my career. Once I gained recognition as a leader, and the community realized a minority had a position of power, the harassment began. If my community, who had seemed so welcoming at first, was this vile, what other people were pleasant to my face but subtly undermining my career or me personally? Other high profile incidents of sexism, racism, transphobia, and harassment in tech convinced me that no one in the technology sector could be trusted by default. I no longer trusted anyone at work either.

Eventually I just felt sad, empty, and lonely. I felt trapped in my toxic community, unhappy with the mistrust in people that had seeped from my community to my personal life. I didn’t make it to work very often, and when I did, I would have to find places to cry privately. Sometimes I couldn’t find a place, so I cried at my desk, ear buds in, head down, hair pulled across my face to try and hide it from my coworkers. I started seeing a therapist to deal with my depression.

I remember the day I finally decided to leave my community. I was on my way to work, mulling over the decision, and the face of one of my senior managers popped into my head. I thought, “Damn, he’s going to be so disappointed in me,” and I started bawling. I was a minority in tech, someone that others looked up to as a leader in open source. And the stereotype threat was causing me to re-think leaving my toxic community.

I finally accepted I had to leave my community in order to protect my mental health. With that decision, my emotions started to come back in a very painful way. Every emotion was powerful, raw, and uncontrollable. I was guilty about letting my community down. I was angry at the developers for forcing me to leave. I was anxious about having to re-start my career in a completely new field of study. I was worried about how my management would react, whether they would support me changing roles. For a while, I comforted myself with the fantasy of completely leaving tech altogether.

Breaking down the cultural shame of leaving a community

I’m lucky, because it turned out that my management was supportive of my decision to leave the community. I didn’t tell them about my personal issues with the community, but I did tell them that I was burned out and needed a break, and a new project to work on. They understood, and supported me finding a new career. I was actually shocked at how non-judgmental and supportive my managers were. I found myself wishing that I had switched sooner.

Looking back, the reason I didn’t leave my community sooner was because there is a giant social stigma around leaving an open source community. Open source is supposed to be our passion, something we work on even in our spare time. We talk about community, collaboration, and working on projects for the greater good. To walk away from an open source project for mental health reasons seems somehow selfish. Talking about why you walked away from a toxic community is taboo. People don’t want to burn bridges and close down the chances of keeping important professional relationships and potential job opportunities. The impact is that no one talks about leaving a community. They quietly leave and find a better community to be involved in. The lack of people visibly leaving toxic open source projects means that people may not know leaving is a valid option.

We need more stories of people leaving toxic communities so that people know it’s ok to prioritize their mental health over their community. We need stories of successfully switching jobs, of abandoning positions of power to protect our mental health or get a better work-life balance. That’s why I’m sharing my story.

Eventually, I did find a healthier open source community to work with. After being in a toxic community for so long, it took me a while to re-normalize my communication standards in order to find a more supportive community. I’m sharing my criteria for picking a healthy open source community in order to help the people stuck in toxic communities, and also for community leaders to see how they can improve their own open source projects.

Is a community healthy or toxic?

1. Are they outright assholes?

There are open source communities that allow and even encourage sexism, racism, transphobia, homophobia, and other “-isms”. If you’re looking to avoid that, it’s time to do a deep dive into the mailing list archives or chat logs. Looking for microaggressions is hard, because they can be quite subtle. Searching for terms that degrade women (chick, babe, girl, bitch, cunt), homophobic slurs used as negative feedback (“that’s so gay”), and ableist terms (dumb, retarded, lame), may allow you to get a sense of how aware (or not aware) the community is about the impact of their language choice on minorities. While you’re looking through the mailing list, take a cursory glance through the threaded version of the mailing list archives and try to find a flame war. This allows you to see how they treat each other in the heat of the moment.

There are signs that a community actually cares about nurturing a healthy community dialog. The community may have a designated community manager, or may have a code of conduct that is enforced by several senior developers. Without enforcement, a code of conduct is just empty words. If possible, ask the community manager if they’ve ever had to ask someone to leave their community because they violated the code of conduct.

2. Do they collaborate?

Many open source communities are not actually collaborative. Often, one person throws out a project that “works for them” and they’re uninterested in feedback. Some open source projects are not a community, but rather a collection of individuals looking to “scratch their own itch”. Often each member works on a separate subproject, with little design review from other developers.

One warning sign is if the project lacks any plans or timelines for new features. Newcomers will have a hard time breaking into a community if there are no planned features to implement. They might be able to contribute a few small fixes, or stumble into some major work that needs to be done, but they will find it hard to transition from easy fixes to bigger projects.

CC-BY Marjan Krebelj, filtered.

If a project does have a planned feature timeline, not everyone may be on board with it. On a project with deadlines, these collections of individuals often leave the bulk of the thankless tasks to one or two individuals who are willing to roll up their sleeves and take one for the team. One tell-tale sign is to look at the commits for a particular release and see if there are always numerous small fixes from one individual. This lack of collaboration leads to burnout for experienced developers, and newcomers will find it difficult to break into the community.

3. How do they treat newcomers?

One measure of a person is how they treat the people with the least social power in their society. In an open source project, the people with the least social power are newcomers and bug reporters.

How does the community treat bug reporters? Do they thank them for taking the time to submit bugs, or do they actively drive them away so that the developers can get more “real work” done? Do they give credit to the bug reporters in their patches or pull requests, in order to encourage bug reporters to do more testing?

Looking at how a community has treated newcomers is also informative when deciding whether to join a community. Does the community want new developers, or are they too caught up in their own work to provide mentorship to newcomers?

As someone walking into a new open source project, there are tell-tale signs as to whether the project actually wants new developers. At the very least, the community should provide good documentation on how to get started. Ideally, they would also have a list of starter projects for newcomers to tackle.

When you run into trouble or have questions, it’s a good time to get a sense of how welcoming and patient the community is. Do the developers just tell you to RTFM, or do they take the time to answer your question? If you find people that volunteer more information than you asked for, or someone who points you to even more resources, it’s a sign that person likes to share knowledge. They may be a good potential mentor. Finding a good mentor is essential when getting into a new open source project.

4. Will you be able to find a place in their group?

“Cultural fit” is often something that’s hard to define, but is instantly recognizable when the community isn’t a good fit for you. Hang out in the IRC channel or lurk on the mailing list to get a sense of how the community members treat each other. Do they build each other up or tear each other down? Do they play practical jokes on each other, or make back channel comments about less well-liked community members? Do they speak derisively about developers from competing open source projects?

After being in a toxic open source community, a real cultural fit may feel surprisingly good. If you find good mentors in the community, they will build you up in a way that you’re not used to. They’ll introduce you to key community members, and make sure you’re included in key project discussions. They’ll also help you network in the community, and encourage you to go to key technical conferences.

A good mentor will praise your efforts to get started on the project and give you detailed feedback on your first submissions, while still being compassionate and understanding about what newcomers are expected to know. If the project documentation for getting started is lacking, a good community will step up and improve it when newcomers ask the same questions over and over. An awesome mentor will actively promoting your work to other community members, making sure you get credit for your work and you’re not being “too modest” due to imposter syndrome.

5. What are the pathways to leadership?

Developers at all levels of experience need to look at the career opportunities within potential open source projects. Even if you’re completely burned out and want to coast for a while, eventually you may want to step into a leadership position, and you need to evaluate whether there will be a place for you to step into.

Is the community leadership stagnant, with the same people occupying positions of power for years? Or maybe the community has no defined leaders, which can have its own problems. It’s best to find a community that has several subprojects that junior developers can take over. If you’re an experienced developer, you might want to ask some probing questions about their software architecture to see how the community reacts to criticism. Some community leaders may get very defensive, which may be a sign that you’ll clash over design decisions later.

You Have Options

CC-BY eek the cat, filtered.

In the end, you may not be able to find a good open source community that also fits your technical interests. You may want to found your own open source project, where you can build in respect and encouragement from the start. You may decide to leave the open source world for a proprietary project. You may even decide to leave the toxic tech scene all together.

The point is, you have options. You have valuable skills and the drive to learn a new project. Your toxic community will survive without you, and your new community will value your skills even more.

Find a community where you can be respected and appreciated, because you deserve it.