What’s wrong with software development? The Ugly the Snobbery that “Software Engineering” can Mask

A
year ago, prompted by the good advice of my girlfriend, I embarked on what has ended up being a relationship-challenging lifestyle change: the Tech Meetup Regular. At the beginning of the year, I looked at dense slides with terms like Groovy, Puppet, Cucumber, and Go, each name with a snazzy icon, and felt bewildered.
In this year, I’ve not only learned what most of those terms mean, but also I have begun work with many of them. Terms I hadn’t even heard about then, like Serverless concepts and the zoology of AWS, have also entered my vernacular.
I have a github repo where I store my experiments with Kotlin, Go, Python, and Java — some of which have formed the basis of presentations I make to meetups specializing in these languages. Each presentation is a challenge:
- Can I present on machine learning in Go, even though I have only read extensively about machine learning and I have never programmed in Go before? Sure, give me a month!
- How about TDD and DDD in Kotlin, even though navigating Gradle and Maven have been thwarting my efforts to port Python TDD and DDD work into Kotlin so far? Sure!
- What about building a Behavioral Driven Development Test Framework in Java and presenting to seasoned Java developers? See you in July!
I went from the person with two decades of software engineering experience who did everything but software engineering after work to the person who eats, breathes, and dreams software engineering [including a machine learning dream I had last night] in one year. Compared to my bewildered self a year ago, I include a vocabulary of terms which are seldom indicative of what they are. For example, “Go Groovy Puppet, Rust the Angular Gherkin!” is an actual sentence I might make in English, but almost every word means something completely different in the tech world, with depths which require someone to plumb.
During this time, I never lost sight of one thing: the term “Software Engineering” can be used as a wall to keep unconventional candidates out — women, people of color, and, increasingly, older developers like me who didn’t learn Python or Java in college. Privileged folks like me who counted on retiring in the industry they entered after college are being kept out by this wall, folks who have been routed by circumstance through a narrowing pipeline of tech debt into a kind of trap our industry is doing little to resolve — because, in their cynical pursuit of cheap labor, they don’t have to.
The “Software Engineering” wall came to the forefront of my attention when I received a rejection letter from a shop in town, an online product sales company, not Amazon.
In response to my inquiry, in which I gave a resume demonstrating over two decades of software engineering experience and a year of after-hours work in languages in their stack, I got the following snarky response from HR (emphasis mine):
Unfortunately I don’t think your background lends itself well to [company]. First and foremost, our engineering folks — regardless of role — are software engineers. I don’t see deep SWE experience in your background with the areas we use in our tech stack: PHP, JavaScript, Python, C#, React, etc.
This was despite my calling out my after-hours learning approach, including numerous presentations, and a cover letter which talked about decades of experience in DevOps [the field I was applying for].
I got the wall. This was a wall, which in 1999, when I was hired for my second job, I didn’t face: the firm, which specialized in Oracle Applications development [Oracle EBS with heavy SQL, Oracle PL/SQL language, and toolset requirements] hired me with no experience at all. I was young and cheap then. They didn’t say they couldn’t hire me then because I wasn’t a software engineer, yet, now, 20 years later and that many years of real, end-to-end software engineering experience under my belt, I hit the wall the HR department put up.
Note that the firm who rescues me from my pigeonhole in Oracle development will get all of my two decades-worth of software engineering knowledge, a knowledge imbued through my skin and into my bones, and will also get the kind of focus and dedication to learning their stack that my gratitude would inspire. I can learn any language to expert level in far less than the time my last firm took to onboard me [firms worry about how quickly developers will be up to speed, then take forever in billable hours to onboard developers!].
I estimate that, given 2-weeks notice from my current employer and a month on the job at my new employer, I’d be considered a senior developer in almost any language and toolset the employer throws at me.
This firm, the online sales firm with the cynically and needlessly snarky HR representative will not be the recipient of my talent. The HR rep who wrote these words does not appear concerned with the “human” part of HR. This is a major concern, not just for me, but for the inclusiveness and biodiversity of our industry as a whole.
Now, the firm who rejected me might very well have a dedication to inclusiveness, but in my attendance of meetups there, the demographic there seems to be mostly white, mostly 20-something, and mostly bro. Yes, there are women: and, for that, I’m grateful. But where are the senior folks, the older developers? Where are the people of color who are not Asian? For all their big talk about being an organization which challenges the status quo and encourages growth, the rejection letter I received refutes all that.
**************************************************************
Let me zoom to a tech mixer I attended recently, hosted by a recruiting firm. A large percentage of the attendees were African-American, including folks from Resilient Coders of Boston. Some of the people from Resilient Coders, as in past meetups, wanted to learn from me how to take their experience [which I’m going to say sounds like great experience] and their bootcamp learning, and actually find a job.
Coming away from a rejection letter like the one I got, one in which the HR manager specifically said someone with two decades of software engineering experience didn’t look to her like a “software engineer”, I feared for those folks.
I used to watch this advertisement on television for credit cards: it featured what I’d probably take now as an offensive Asian stereotype, and it asked the question, “Without credit history, how can I get a credit card? Without a credit card, how can I get credit history?”
When employers use a term like “Software Engineering” to block candidates from any background who are considered unconventional [different tech stack, for example, or appearance], I suspect the hiring process is being used to mask a preference for a stereotype: the white, 20-something bro who is all-too-commonplace at shops like the one I applied for work. It is a hiring process which excludes people whose experience is the kind I’d like to hire — the type of person who learns nightly and on weekends on his or her own for no pay and delivers content in github and presentations.
I am actually working my way out of a field where a hiring manager joked that she wanted a chance to hire someone who isn’t Indian and male: easily 98% of the people I’ve worked with in my field for more than the last half-decade. (That hiring manager, herself, was female and Indian.)
Why do our employers have a tunnel vision which rules out extremely self-motivated, self-starting folks like me with decades of software engineering experience? I’m afraid they will use equal devices to eliminate from the pool people of color (who aren’t Asian) and women [for roles women don’t suit a stereotype]. I’m a 40-something cishet white male, and I’m having a tough time escaping my pigeonhole.
What will be the fate of the talent we have uncontestably in America, yet which is denied by the employers seeking to abuse labor laws and employess in other countrties? What will happen to the vulnerable Americal labor demographic beset by gender and ethnic stereotypes as machine learning further reduces the industry’s labor requirements and makes it, because of its specialization, less accessible?
We are moving into American feudalism at a great pace, and we will not reverse this dangerous trend by excluding people of unconventional backgrounds from tech careers.
Some of the best developers I have had the privilege of working with did not earn computer science degrees in college, but they had the intellectual curiosity to explore computer science and software engineering in their spare time. If someone like me is being blocked by HR, we will certainly lose the undeniable talent and passion of the candidates whose talent has illuminated an industry much in need of self-reflection and brilliance.
Here’s a Niemöller quote to start the conversation:
First they came for the Socialists, and I did not speak out —
Because I was not a Socialist.
Then they came for the Trade Unionists, and I did not speak out —
Because I was not a Trade Unionist.
Then they came for the Jews, and I did not speak out —
Because I was not a Jew.
Then they came for me — and there was no one left to speak for me.
Please let me know your feedback below.
Thanks for reading! When I see applause for a piece of mine, I want to write more pieces! Please applaud if you appreciate people writing about topics like this.
If you enjoyed this piece, you might consider reading some of the other stories I wrote for this series. Thanks!
Disclaimer: I am a senior software professional with experience as project lead, team lead, and lead engineer in the greater Boston area. I am actively seeking a job while currently fully employed. The world of software development can be an ugly place, and I hope to expose some of the more bewildering and uncomfortable corners in the hopes of improving the industry and the craft. Out of respect for current and former employers, I will keep the names of employers and/or clients scrubbed and anonymized as best as possible in these reports.