I’m not claiming all of these will work, but they’re worth a shot:
There’s plenty of really bright high school students who you could hire pretty easily. They’d be really cheap to hire, scrappy, and if they’re looking for internships as a high schooler, they’re probably going to be better than a lot of college students. In fact, if you can keep them coming back every summer during college, by the time they graduate, they’ll be pretty damn impressive.
If you wanted to make your life very easy, I’d go to the handful of high schools that teach kids a lot of programming like Thomas Jefferson, Stuyvesant (my former HS), etc.
Of course, you’re going to select people who already know programming and who have the support system to take gap years and apply to internships. That will mean this population is likely biased towards overrepresented communities.
Speaking of diversity, I’m always amazed when people pay lip service to diversity, keep on hiring as they always have, then throw their hands up in the air and claim there aren’t any good candidates from underrepresented backgrounds.
Are there companies that do a circuit of HBCUs? Or woman’s colleges? You could also connect with programs that explicitly try to teach underrepresented people. It’d be interesting to see what other venues you could find.
Naturally you can also go to prominent people from underrepresented backgrounds, but it’s a little presumptuous to have them solve your problem. Especially because there’s probably thousands of other people also asking.
I strongly believe these efforts need to be outbound. A lot of underrepresented people are either unaware of your company, or find it intimidating to apply. Job listings can be very scary! You need to put in the extra effort to encourage people to apply and give them information on the process. Or just collect resumes and start them on the process without them having to apply.
New graduate and internship roles operate on hiring cycles. These days they start in mid-summer and go until about early spring. If you miss this window, too bad. You could be the greatest candidate alive but many companies won’t hire you.
Why not reserve a few spots for last minute applications? So many brilliant programmers hate applying for jobs and will procrastinate it endlessly. Applying early has nothing to do with how good an applicant is.
It also gets you applicants who aren’t clued into tech hiring culture, i.e. people who may be underrepresented.
There’s an incredible trove of Japanese programmers doing cool systems stuff. Some of them are barely out of high school! The only issue is that most of their documentation and personal websites are in Japanese. Fortunately Google Translate works pretty well. I wouldn’t be surprised if there’s similar communities in other countries.
Many of them likely do speak decent enough English to be good employees. But even if they don’t, could you hire them an English tutor? As long as they’re okay with it, I think spending the few thousand to train them in English would be money well spent.
Apparently Fog Creek did this/does this? I’ve never heard of anybody else doing it, but it makes sense. Especially if you want to do something really innovative technically in a space, you might be able to poach a couple graduate students looking to get out of academia.
I’ve found so many promising people just by browsing through GitHub. I bet if you did some proper queries using the API, maybe a web crawler, you could amass a really solid list of candidates. Add on a Twitter search for keywords like “compiler, llvm, io_uring, L1 cache” and you’d get some cool people.
You could also find the really popular people on Twitter/GitHub, then see who they follow. If Dan Abramov follows some random college student, maybe that person is a good candidate?
Create a deal where if a developer gets to the final round with certain companies, you’ll give them a blazing fast process. You should already have a super fast process, but I’m talking reach out on Monday, offer by Friday. However you do have to trust that these companies have good processes.
For every developer who strings out the process waiting for the best offer, many others will just take what’s in front of them. If you can speed a developer through the process faster than another company can schedule a single interview, you’ll get some great talent.
Some companies have a catch-all email address for candidates who don’t fit a specific job. That’s great but it’s still too daunting for a lot of people. Maybe there can be a wildcard application, or even just one single application that doesn’t hold any requirements. This sounds crazy but job requirements have been shown to discourage qualified underrepresented candidates. Why not take it to an extreme and remove them all? If a person is good but not in the way you imagined, why not take them still?
Or maybe even disguise a job application as something else? Maybe you could offer free career advice to people and if they look talented, start the interview process.
I’m not a huge fan of the big generic hackathon. It encourages the wrong strategies, and certainly the wrong work culture. However a targeted, long term hackathon or similar event could work. For instance, a hackathon focused around building toy programming languages. Or a hackathon that involves building something hilariously dumb. Or what about a competition to build bots for a game that you invent? It could be really fun to have a semi-annual event and recruit out of it.
It doesn’t have to be a hackathon either. Maybe it’s a reading group. Meetups are great hiring opportunities too.
Google has the infamous foobar test where if you search the right programming terms, it reveals itself for you to take. It’s a nice idea but not well done. I took it and it just deposited me at the beginning of the already annoyingly long Google process.
It’d be nice if it was a simpler test. Maybe something like writing a simple project and documenting it. Of course, cheating is a problem, but I don’t see how foobar prevents cheating.
One option is to have the candidate record a video of them talking their way through a problem, using Loom or a similar tool.
The issue with an open test is that you might get a lot of submissions which you then have to go through.
Perhaps you could create some sort of online course? If you complete the course, you get a shot at an interview.
Tech blogs are a well known form of content marketing for companies. Some companies are branching out into podcasts and YouTube videos too. I think you could go a lot further! Vercel, my employer, has some really excellent developer advocates, and it goes a long way in building brand trust. Could you start publishing books? Making zines? Maybe you could have multiple podcasts? You could do a weekly tech news podcast and a more in depth technical one. Good developer content is still very rare. You could easily dominate the market given enough resources and quality people.
If you have some developers who are interested, could they stream their programming? It’d have to be code you’re willing to show publicly of course.
Think about the different ways in which a technical interview can create false negatives. People with anxiety may hate live coding exercises. People who have children or other time-consuming responsibilities may not be able to do take-home projects. People who struggle with memory may not do well on random factoid questions. Someone with a language barrier may have difficulty explaining something verbally, but can write up a perfectly good document.
There’s never going to be a perfect interview, but you can at least provide options to people so they can showcase their best selves.
I bet there’s a lot of fantastic programmers with disabilities who are not being accurately judged by current interview techniques.