Do tech companies really need more vaginas, dark skin, and gray beards?

We need to get to the bottom of the issue about diversity in the software industry.

It’s not that software companies simply need to hire more people who possess vaginas, dark skin, or grey beards…to reach some kind of quota, or to make their About page look hip. It’s that software companies need to embrace diversity in ways of thinking, life experience, socio-economic backgrounds, ways of building things, and ways of setting priorities. This might result in some outwardly-visible diversity, as a by product. But in my opinion, that’s not the point.

Software increasingly runs our lives – EVERYONE’S LIVES – including people who possess vaginas, dark skin, and gray beards. One should not assume that all those young overpaid white males who would sooner send you a Slack message than look you in the eye are going to know how to build the tools that are running more and more of our lives….

…in a country that is becoming more diverse, not less – a fact that the United States Bollocks in Chief is clearly not happy about.

Building Diversity Where it Matters

Sure, there tends to be more diversity in design, business, and marketing departments, but these aspects of a tech company generally get established after the DNA of the company has been forged. The DNA of a software company is typically established when wealthy white male venture capitalists invest in wealthy white male programmers who (sometimes) become more wealthy, after which time they start new companies using their wealth. They hire their wealthy white male programmer friends (who can work without salary in exchange for shares – thereby becoming more likely to acquire more wealth).

Follow the money.

A slightly more diverse company is then built around this core of wealthy white males. Then a slick, mobile-friendly web page is erected, featuring high-res photos of gleeful African Americans and Chinese women. Maybe an Indian. And (occasionally) the token graybeard.

Dynastic Privilege

It’s the same phenomenon that drives wealth inequality in our country. Unchecked capitalism is fueling an oligarchy that is inhibiting the American Dream for those who find themselves on the losing end of financial opportunity.

Did I just change the subject from tech company diversity to wealth inequality in the United States? No: it’s the same subject.

“I believe dynastic privilege is one of the major contributors to the lack of diversity in tech” – Adam Pisoni

So, instead of talking about skin color, gender, and age, we should be talking about the deeper underlying cultural and economic forces that make it so hard for tech companies to change their DNA.

Please reply with your comments. Agree or disagree. Either way, I’d love to hear your thoughts!

Introducing DataPal – Share It Now!

docpal logo

Sharing your work and your life just got better.

Screen Shot 2016-01-22 at 7.34.05 AM
Fuck DropBox. That’s so yesterday.

docpal logoWith DataPal, all you have to do is sign up as a loyal member (by providing a 128-character Fibonacci-based password, and legally agreeing to the latest Apple and Google Terms and Conditions within two minutes of each official email reminder), and you’ll be sharing status reports, spreadsheets, movies, music, DNA, and subconscious thoughts at the click of a button.

And guess what! With our $575/month VIP upgrade, you can bypass the conscious effort of hitting “send”, “export”, “update”, and “share” altogether. We’ll do it all for you, because we know what you need for your business and your private fetishes. In fact, our venture-backed 10x technical team has already begun processing your Facebook, Google, Apple, LinkedIn, Instagram, Twitter, Snapchat, Tumblr, Pinterest, YouTube, Vine, and Meetup profiles.  

Do you feel like your work is weighing you down? DataPal will fix that.


And don’t worry about security. We have implemented a way for you to avoid the common security pitfalls of file-sharing. We’ve got it all under control. Our venture-backed 10x technical team knows their shit. And you don’t.

Now. You may be thinking…


Well stop now!

No more thinking with DataPal! We do all that for you.

(Oh, and thanks for that password. We’ve already got it :) Check your email inbox now, and…

Let’s get started

Why Having a Tiny Brain Can Make You a Good Programmer

This post is not just for software developers. It is intended for a wider readership; we all encounter complexity in life, and we all strive to achieve goals, to grow, to become more resilient, and to be more efficient in our work.


Here’s what I’m finding: when I am dealing with a complicated software problem – a problem that has a lot of moving parts – many dimensions, I can easily get overwhelmed with the complexity. Most programmers have this experience when a wicked problem arises, or when a nasty bug is found that requires delving into unknown territories or parts of the code that you’d rather just forget about.

Dealing with complexity is a fact of life in general. What’s a good rule of thumb?


parts-of-the-brainWe can only hold so many variables in our minds at once. I have heard figures like “about 7”. But of course, this begs the question of what a “thing” is. Let’s just say that there are only so many threads of a conversation, only so many computer variables, only so many aspects to a system that can be held in the mind at once. It’s like juggling.

Most of us are not circus clowns.

Externalizing is a way of taking parts of a problem that you are working on and manifesting them in some physical place outside of your mind. This exercise can free the mind to explore a few variables at a time…and not drop all the balls.

Dude, Your Brain is Too Big

I have met several programmers in my career who have an uncanny ability to hold many variables in their heads at once. These guys are amazing. And they deserve all the respect that is often given to them. But here’s the problem:

kim_peekPeople who can hold many things in their minds at once can write code, think about code, and refactor code in a way that most of us mortals could never do. While these people should be admired, they should not set the standard for how programming should be done. Their uncanny genius does not equate with good engineering.

This subject is touched-upon in this article by Levi Notik:

Screen Shot 2015-04-01 at 9.47.43 AM

who says: 

“It’s not hard to see why the popular perception of a programmer is one of some freak genius, sitting by a computer, frantically typing while keeping a million things in their head and making magic happen”

wsshom1A common narrative is that these freak geniuses are “ideal  for the job of programming”. In some cases, this may be true. But software has a tendency to become complex in the same way that rain water has a tendency to flow into rivers and eventually into the ocean. People with a high tolerance for complexity or a savant-like ability to hold many things in their minds are not (I contend) the agents of good software design.

I propose that people who cannot hold more than a few variables in their minds at once have something very valuable to contribute to the profession. We (and I’m taking about those of us with normal brains…but who are very resourceful) have built a lifetime’s worth of tools (mental, procedural, and physical) that allow us to build complexity – without limit – that has lasting value, and which other professionals can use. It’s about building robust tools that can outlive our brains – which gradually replace memory with wisdom.

My Fun Fun Fun Job Interview

I remember being in a job interview many years ago. The guy interviewing me was a young cocky brogrammer who was determined to show me how amazingly clever and cocky he could be, and to determine how amazingly clever and cocky I was willing to be. He asked me how I would write a certain algorithm (doesn’t matter what it was – your typical low-level routine).

Well, I was stumped. I had nothing. I knew I had written one of these algorithms before but I couldn’t for the life of me remember how I did it.

Why could I not remember how I had written the algorithm?

Because I did such a good job at writing it, testing it, and optimizing it, that I was able to wrap it up in a bow, tuck it away in a toolbox, and use it for eternity – and NEVER THINK ABOUT HOW IT WORKED ANY MORE.


“Forgetting” is not only a trick we use to un-clutter our lives – it actually allows us to build complex, useful things.

Memory is way too precious to be cluttered with nuts and bolts.

tech_brogramming10__01a__630x420Consider a 25-year-old brogrammer who relies on his quick wit and multitaskery. He will not be the same brogrammer 25 years later. His nimble facility for details will gradually give way to wisdom – or at least one would hope.

I personally think it is tragic that programming is a profession dominated by young men with athletic synapses. (At least that is the case here in the San Francisco Bay area). The brains of these guys do not represent the brains of most of the people who use software.

Over time, the tools of software development will – out of necessity – rely less and less on athletic synapses and clever juggling, and more on plain good design.