I'm a female software engineer. I'm pretty successful, but I have often felt that I don't fit in and I've had to learn to deal with that.

I feel isolated and lonely when there is a group that has a common narrative and set of assumptions that I don't fit. These come out in general statements, assumptions, and/or jokes. Then I have to decide whether to hide my own preferences (lying by omission), get into an argument, or change my preferences. All three options are exhausting and take energy away from actually doing work.

Examples:

* Generalizations about "real haxx0rs": "programmers have side projects", "programmers use [operating system of choice]", "programmers heavily customize their editor", "programmers can't get a girlfriend/are introverted/socially maladapted", "programmers don't care about their clothes", "programmers don't wear a tie", etc.

* Disproportionately caring about one set of users/customers which resembles the team. Example: spending a lot of time talking about/fixing the experience of male users when the vast majority of users are female (and the product is not mature yet); making fun of users and their silly ways when the majority of users are female and/or non-technical and/or young and/or old and/or not from cosmopolitan areas, etc.

* Having to have a conversational style that's significantly more aggressive than what is natural for me in order not to get left out of conversations. I have to be comfortable cutting people off in meetings and jumping on the ends of sentences. I've learned to do it but it's pretty exhausting, and takes energy away from actually doing work. Also, having to jump verbal cues gives me a feeling of insecurity about people not caring what I have to say unless I shove it down their throat, even when that is obviously not the case (because my input is well-received).

As a manager/CEO, here are a few things you can do to help:

* Allow hires to be vetoed on the basis of not having an inclusive worldview, regardless of their professional ability. You can ask "tell me of a time when" type questions to suss that out. Eg, "tell me of a time when you had to convey a complicated technical point across to a non-technical customer (or team)", and watch for denigrating statements. I've given product manager candidates hypothetical products to design for a very particular audience, and anyone who made excessive fun of the intended audience was a no hire.

* Enforce civil conversational standards around the workplace, ie no off-color jokes, talking down to customers, empty generalizations, etc. I don't mean sending around HR videos on what not to say, I mean simple statements like "That's not funny, and offensive" (said flatly), "This customer pays us $X" or "That's not how we're going to improve our conversion rate", etc.

* Encourage open and written discussion of issues, eg via bugs, written code buddies/reviews, etc. Have anyone be able to veto a commit (with good reason), or reopen a bug. Having the bulk of these discussions in writing can help shy/non-confrontational people have their say. Having a focus on getting things done, and getting them done right, vs how exactly they get done can also help people feel more at ease.

* Pay close attention in group discussions to see if anyone is chronically unable to finish their thought without being shut down or talked over by someone else. If their thoughts have merit, be their advocate and calmly say something like "I'd like to hear X finish their thought". Say it as often as necessary. Then encourage other people to say it for you, when necessary.

Aside from all of this, as an early startup employee I've been mistaken for the admin, and as a consultant I've been in situations where people assumed at first sight that I was dumb, not technical at all, had not programmed for long, and more generally was less competent than others. If these prejudices survived one conversation they were generally a sign that the company was pretty fucked up and that much more was wrong with it.