With regard to race, software development has a serious "Black problem". No, I'm not going to describe it as a "people-of-color problem" (for reasons I'll explain below). It's very clearly a Black problem. And after more than 20 years in this career, I'm frustrated by my own lack of answers on how to fix it.
I'm an American developer, living in America, working for an American company. So I don't pretend that any of my observations are even remotely accurate in other countries/cultures. Your mileage may vary.
If you check my profile pic, you'll quickly realize that I'm "part of the problem". I'm a white, Anglo-Saxon, (raised) Protestant, straight, male. In terms of US class structures, I've "won". Or, as it's sometimes referred to, I hit the "genetic lottery".
So everything I'm writing is from the perspective of those who hold all the advantages. And I in no way pretend to speak for anyone other than myself. These observations are mine - and mine alone.
This is the racial makeup of the city I live in. It's a mid-size city of about 900k people in the American south. It has a sizable Black population - 30%.
I've been working in this city, as a software engineer, for 20 years. I'm currently working in a purely-remote capacity. But for the majority of those 20 years, I've worked at various companies, onsite, going into the office every day. So for the majority of my time here, I've worked mostly with other devs who call this city home.
In my two decades here, I've worked alongside hundreds of developers. Please keep in mind, I'm not lumping in every network and devops engineer I've worked with. Nor am I counting QA or BAs or any other role that's tangential to application development. Looking at programmers only, I've had the good fortune to call a few hundred people my coworkers.
Of the few-hundred programmers that I've worked alongside in the last 20 years, how many of them do you think were Black??
Don't worry. I won't try to make you go through some silly guessing exercise. I'll just tell you directly.
The answer is: One
I have worked with one Black software engineer, during all my time in this city. Think about that. Two decades of work. A half-dozen employers. Hundreds of past colleagues. And out of all those peers, I've worked alongside one Black programmer - in a city with a 30% Black population.
Lemme throw in a few more disclaimers here, for clarity. I'm not claiming that I've only worked with one Black person during my 20 years in this city. When we broaden the scope to include all the other job titles that typically interact with a dev team, I've worked with many Black people. (Nowhere near 30% of my colleagues - but still, "many".) And in some of my gigs, there were a few Black devs working on other teams with whom I had little direct interaction.
And as I stated above, these are my personal, anecdotal observations. I'm not claiming that there's only one Black developer in my whole city. Nor am I claiming that the percentage I've personally witnessed (less than 1%) can be extrapolated to my entire city or state. I know that there are some dev teams at other companies that have more Black devs.
But it's been a long time since anyone's mistaken me for a "junior", and I've had the pleasure of traveling around the country a bit as well. And I know that my experience is not uncommon amongst other dev teams - or amongst other regions.
It took me a long time to understand that there may actually be any diversity problem in dev. Yes, part of my problem was that I'm a white guy - a pasty, stereotypical white guy with all of the subconscious biases that this country is still battling. But my problem also arose from the fact that I looked around at my own work environments and I saw a whole bunch of... diversity.
I'd look around and think, "Look! We've got a ton of brown people!" (This will probably shock you to the core to learn that nearly all of these "brown" people were Indian.) I've worked alongside Koreans, and Chinese, and Brazilians, and Ukrainians, and Spaniards, and... well, you get the point.
So make no mistake about it. I've worked in some very diverse environments. But when your country is 13% Black, and your city is 30% Black, and your fellow devs are less-than-1% Black, my international colleagues may still represent "diversity" - but it's "diversity" with a big ol' neon asterisk tacked onto it.
It's no secret that American software development has a whole host of diversity issues. Women are vastly underrepresented. People of almost any non-white origin are underrepresented. LGBTQIA-people are underrepresented. (Many of my teams have had the demeanor of a locker room, where white guys boldly make bawdy jokes about gays and women and anyone else in their crosshairs.)
I'm not dismissing any of those other issues. But right here, right now, with all the s*** that's currently going down in this country, I've found myself thinking more-and-more about the issue of Black under-representation in software development.
So who's to "blame" for this disparity? An easy answer is to point an accusing finger at the big, bad, evil empires of capitalism. After all, I'm not the one paying those salaries. I'm not the one who's ultimately responsible for who we hire and what backgrounds they encompass. So it must be the corporations, right???
To be clear, it's impossible to hire a staff - any staff - without earning at least some degree of responsibility for the makeup of that staff. And countless studies (and lawsuits) have highlighted the insidious degree to which systemic racism infiltrates nearly every vein of American life - including, of course, hiring.
But it's overly-simplistic to say, "Well, companies should just start hiring more Black developers." Allow me to explain...
I made the conscious decision some years ago to go back to "just" being a developer. Long story - but suffice it to say that I really wanted to get back into pure coding. But I spent many years in dev management. During that time, it's no exaggeration to say that I've sorted through thousands of resumes, interviewed hundreds of candidates, and extended offers to dozens of programmers. Here's what typically happens if you're in the market for new (American) developers.
We put up a posting for a new dev position. There's nothing about the posting that feels even the slightest bit "prejudiced" or "biased". We've all seen the postings. A few generic paragraphs about the company and the position, followed by an alphabet soup of the technologies we're using and the desired experience level in those technologies.
It's easy to imagine a scenario where such a posting might yield a hundred applicants. (This is especially easy to imagine in our current COVID-stricken economy.) In my experience, lemme tell you what those hundred candidates typically look like.
At least 90 of those candidates will be male. (As I've already stated, I'm not even touching the deep, sticky issues of gender representation in our career field.) Sure, I don't know what everyone's gender is, just by looking at their resume. But you usually know that the "Joes" are men and the "Marys" are women.
About 30 of those candidates will be clearly foreign - with many of those foreigners being Indian. Again, I realize that too many things can be inferred by simply reading names off resumes, but when the candidate is "Sanjay Vishwanathan" I pretty much know that they're Indian, or at least of Indian descent.
Of course, trying to infer someone's skin tone merely by reading the name on their resume is a fool's errand. So I definitely don't try to play that kind of racist parlor game. Instead, I just start looking at the qualifications and, after a little sifting, I hand a pile of resumes to the HR person and ask them to schedule interviews.
When the interviewees arrive, nearly all of them are white, or at least, non-Black. Just looking back at the many people who've sat in front of me for face-to-face interviews, I'd estimate that, of the original 100 applicants, 5 (or fewer) of them were actually Black.
So think about that for a minute. If 5% (or fewer) of your applicants are Black to begin with, it's quite daunting (and possibly unrealistic) to simply look at the hiring managers and say, "Well, you should really be hiring more Black developers."
If we assume that those 100 candidates are vying for a single job opening, and we assume each candidate has an equal chance of ultimately being offered a job, that means there's only a 5% chance that the most qualified candidate is indeed Black.
Even if we assume that I truly want to hire more Black developers, it's not a cut-and-dry proposition. I can't slap "Only Blacks Need Apply" on the job posting. I don't want to fall into a racist trap of trying to infer who's Black based on names or other vague data in their resume. And by the time I've whittled the applicants down to a half-dozen-or-so candidates for interviews, it's entirely possible that none of them may be Black.
And thus, through no outward malice on my part, we've once again managed to interview, and ultimately hire, yet another non-Black employee.
To be clear, if you're working for a megacorp like, say, Google, they have the resources to more proactively seek Black candidates. Hell, they could even create training programs specifically geared toward Black developers if they so choose. But most "normal" corporations are far smaller, with much more modest budgets. They have a simple problem - an open position - that they're trying to solve. And they can't "fix the world" by funding a new Black university expressly for the purpose of hiring more Black developers.
This is why it's foolhardy to deny that the issue is truly systemic. Even the most equality-minded hiring managers are still limited to the qualified candidates that actually apply.
Most of the devs I know don't think of this "problem" as being any kind of problem at all. Hell - if I'm being honest with myself, I haven't thought of it as any kind of real "problem" for most of my professional life. Is that because I, and all my colleagues, are horrible racist monsters? Probably not.
You see, many of us dev-types subscribe to the overall ideal of the "self-made man". The thinking is incredibly simple (yet flawed). It goes like this:
I acquired, by myself, much (or all) of the knowledge that's required to do my job.
Nowadays, especially with the steady rise of the internet over the last quarter-century, all the tools you need to learn (and master) any programming language are right there for the taking. In fact, assuming that you have solid internet access, those tools are overwhelmingly free.
When dev candidates are evaluated (and presumably, hired), this can be done based upon a series of tangible factors that have nothing to do with race. (For example, we can "test" a candidate's skills before ever extending an offer.)
I am where I am purely due to my superior knowledge/skills, and my ability to demonstrate those skills to any potential employer.
Therefore, any talk of race (or gender, or... any other factor) only serves to muddy what should be, on its surface, a completely egalitarian exercise.
Unfortunately, this thought process is severely myopic.
I had my first computer when I was 10 years old. Nowadays, many households - especially, white households - feature computers from the time a child is born. Statistics tell us that the percentage of Black households with the same luxury is... lower.
Ever since the internet was a "thing", I've always had access to the fastest-possible download speeds. Statistics tell us that the percentage of Black households with the same luxury is... lower.
I don't have a computer science degree. In fact, I don't have a bachelors degree of any kind. Every line of code I've ever written was accomplished either through my own desire to learn, or through my ability to leverage those who'd learned before me. The economic ability for Blacks to pursue this same path are... limited.
Yet, in the 90s, when my skills were solid but my experience was... lacking, I managed to get my foot in the door with some tremendous "starter" opportunities. I was given generous salaries and fast-tracked for management. Statistics tell us that, for Black candidates, the same opportunities are... rarer.
So am I some sort of societal leech? No. Was everything in my career simply handed to me because I have a pale complexion? Of course not. But for me to disavow any potential influence of race in my success would be, at best, borderline-delusional.
If you've read this far, I'm certain that at least some of you have already pegged me as a hopeless "Social Justice Warrior" (as though that phrase is somehow something to be ashamed of). And even if you're not concerned with the prevailing political terms that we slap on "the right" or "the left", this may all feel rather disconnected from your day-to-day reality.
If you're at all like me (and if you're browsing through Dev.to articles, you're probably more than a little bit like me), your days are probably consumed by fixing a pressing bug, or designing a new feature, or managing the deliverables for your next sprint. If you're at all like me, such questions of race and/or equality can sometimes feel like a true imposition on the "real" work that you're trying to accomplish every day.
But I've reached a point in my life where I realize that these broader issues of society are never truly "someone else's problem". I have the privilege of not having to ponder these issues every day (or even most days). Yet I'm watching, in real-time, as key aspects of my own society continue to disintegrate.
I don't think that I'm "to blame" for the fact that I have a nice job, that commands a generous salary, and I live in a nice house in a coveted part of town. On any given day, I can cash my checks and throw all my energy into solving my employer's problems. Why can't the rest of the world just leave me alone and stop bothering me with these pesky issues of race???
Well... here's why. Because, in my city, 30% of the population is Black. In my city, I'm lucky enough to earn a salary that probably puts me in the top 5% of all earners. I don't make "lawyer money" or "doctor money" - but I do alright for myself. And I'm fully aware of that.
But in this same city, almost none of my colleagues - making similar money and enjoying similar professional perqs - are Black. In my city, there is 30% of the population that, for whatever reason, just doesn't seem to be able to get a foothold into this very-lucrative career field.
When 30% of the population is effectively shut out of these kinds of jobs, what do you think is the result?
You may think that victims such as George Floyd have no bearing on this discussion. You may think that universal issues such as racial equality are completely tangential to your supposedly-meritocratic life as a software engineer. And you'd certainly be entitled to such an opinion. But put this in perspective.
When there's an overall perception of fairness, righteousness, and equality, the tragedy of Floyd's death is... a tragedy. And "tragedies" are generally seen to be rare events - outliers in a world that otherwise strives to make things "right".
But when inequality abounds - when the doors to good jobs and high wages are shut - the tragedy of Floyd's death is no longer "just" a tragedy. It's a spark - a fuse - that threatens to light a powder keg of righteous indignation.
When the very core of our professional lives are so imbalanced, any other injustice only serves to inflame those who are already struggling under society's yoke. And really - can you blame them???
This is the point where I must admit that this entire post is probably rather - pointless. It's "pointless" because... I don't know what "points" to leave you with. I'm struggling, every day, a lot, about what I can possibly do to improve the situation.
As I noted above, it's not like we can start hanging out signs that say, "This high-paid job is only available to Black candidates." And for most of us, in our "daily grind", the racial makeup of our teams is typically an afterthought. But it's not an afterthought to everybody.
I also want to make it clear that I'm not one of those Utopian, Silicon Valley, venture capital, head-in-the-wealthy-sand assholes who thinks that the answer to the world's problems lies in somehow teaching everyone to code. Software development is not for everyone - regardless of your level of melanin.
But I'm genuinely curious - nay, I'm searching - for things that I can do to somehow improve this situation. I've long-since realized that, even on my best days, even when I think I'm oh-so-"woke" (dear god, I hate that term), I'm still, on some level, at least somewhat racist.
Have I subconsciously been weeding out Black candidates? I don't think so - but I'm probably unqualified to make that assessment.
Am I somehow perpetuating a system that cradles me and those who look like me? I don't think so - but it's a rare bigot who stands up and says, "Hell yeah, I discriminate!"
Do I still trade in the language of microaggressions? I try not to. But I'm certain that, even to this day, I probably do at times.
I don't have any easy answers. I doubt that there are any easy answers. But I'm trying to listen. I'm trying to think about how I can cease being part of "the problem".