I’m a developer. A few years ago, I moved to a new city and met some new friends who talked about racism and sexism more than I had ever thought about before. At first I was uncomfortable and didn’t like a lot what they were saying - and I definitely didn’t like when they told me something I said was racist or sexist. Then I remembered that I’m a developer, and I’m good at figuring out unfamiliar systems. So here’s what I did.


When I’m learning a new language, framework, or tool, I start out with the README and the documentation. I’m more successful when I actually learn a bit about what I’m trying to do, than when I try to blindly blunder my way through it.

So when I wanted to learn about racism and sexism, I read some articles and picked up some books. I didn’t have a lot of experience with the topics, so I knew I needed to get some other perspectives. Turns out there were a lot of points of view I had never thought about, and a lot of people with very different experiences from mine.

When you don’t know, Google it

It happens all the time when I’m coding - there’s an interface I don’t understand, I have a weird error that doesn’t make sense, I can think of two ways to design something and I’m not sure exactly what the trade-offs are. Then I Google it, and I see what others who have faced the same problem or are more experienced than me say.

So when a friend asked me if it was racist to dress up as a Native American for Halloween, I typed into Google “is it racist to dress up like an indian for halloween”. Four of the five top hits are by Native Americans who find it very hurtful. That wasn’t too hard to figure out.

You break the build, you fix it

We all mess up sometimes, but one of the keys to being a good developer is to own my mistakes and fix them quickly without letting my ego get in the way. If I push a bad build, I take responsibility for my code, clean it up, apologize to my team, and figure out how not to make the same mistake again.

It’s the same thing with racism and sexism. I’m not perfect; nobody is. So when I hurt somebody’s feelings, or when somebody tells me I shouldn’t have said something, I take responsbility. I apologize, ask them and myself what I can do to make it better, and make a plan to avoid being hurtful in the same way again.

Open pull requests

One of the great things about working on a team is having a chance to get other people’s feedback on the code I write, often from people who have different perspectives than I do. Especially code for a new system where I don’t feel as confident, I regularly open pull requests and get feedback.

As I’ve worked and made friends with a more diverse crowd of people, I’ve similarly made a point to ask for feedback. Did I just say something offensive? Is it appropriate to make a joke like this around women? And I don’t just ask white men like me - I try to get feedback from people who have other perspectives, too.

1 bad deploy has more impact than 10 good ones

Most of the code I’ve shipped was never even noticed by my customers: I was improving a configuration system, refactoring a mess of controllers so that we could more easily expose a RESTful API, or implementing a usability improvement that reduced support requests but got us not a single “thank you”. But the few times I’ve pushed a bad deploy into production, there was an enormous fallout from upset customers and my team. Those experiences have taught me to be more careful, and to place a greater emphasis on thoughtfulness when writing production code.

I’ve found this to be true for race and gender, too. I’m Jewish and have the sense of humor to prove it, and I’ve probably made more than my fair share of “inappropriate” jokes. But I’ve learned that the hurt I cause from one joke that makes somebody upset isn’t worth the laughs I get from 10 other jokes. I haven’t lost my sense of humor; I have learned to be more thoughtful, especially around people I don’t know well.

Final thoughts

I’ve intentionally avoided talking about what you should or shouldn’t say or do in this post - I think it’s more important that we developers start thinking, talking, and learning about race and gender, than to tell you what I think is or isn’t racist or sexist. But I do want to leave you with one very important way people and computers differ: the same code produces the same output on just about any computer, but every person is different. A joke might seem hilarious to some women and make others very uncomfortable; the same comment may be reasonable to one person of color and racist to another.

A friend of mine who read a draft of this post told me “the important thing is understanding what humility means”. That comment resonated with me - I think I really started to understand racism and sexism when I put aside my own ego, dropped my preconcpetions of how I thought the world works for other people and how they should feel, and just listened to what people unlike me had to say.

I’ll close by sharing some of the readings I and my friends have found helpful: