On developer hiring

As you may or may not know, we have a job platform on Stack Overflow, aptly named Stack Overflow Jobs. We’re pretty meticulous about what is allowed and what isn’t allowed, and as a result our sales team needs to be pretty high-touch with clients.

Since we have the eyeballs of every developer in the world, we have lots of fun data to let employers precisely target their job listings. But it’s not just a numbers game, the quality of the job listings (and jobs themselves) matters too.

One of the ways we help curate quality content on our job board is through a internal mailing list called “Ask At Stack”. Anyone who has a technical question (typically sales reps but not only sales reps) can send an e-mail to the mailing list and the opted-in pool of techies go through them whenever they can.

I’ve been involved in the mailing list since the first days of its existence, and it didn’t take long for me to realize I was repeating the same advice over and over. So… here’s some of that advice!

To set the context: A lot of jobs may not be perfect for a lot of people, I’m mostly focused on increasing the quality of job listings which seem interesting and relevant but are squandering the opportunity. That opportunity being “a developer who has this skill-set and interests is looking at my job listing, I hope they hit apply.”

Pet Peeve #1: Mentioning things that every developer job has.

This is typically in one of two places, either in the beginning of a job listing while talking about the company (“We are a collaborative software development shop”) or under the requirements (“Collaborate with designers and product managers to build products”). This is just noise.

Your job listing shouldn’t have a low signal to noise ratio. Any extra work someone needs to do to figure out if this job is interesting/applicable to them is an opportunity to close the tab or move on to the next listing. Your bad job listing hurts my platform because it results in people thinking “the ad was interesting, I clicked it, why do I have to work to get the info I want to get?”

Pet Peeve #2: … and the kitchen sink

Compared to women, men tend to apply more to listings where they don’t match all the requirements. It’s a pretty reasonable assumption that the more requirements you have, the more likely it’s going to be that a prospective candidate doesn’t match every single one of them.

Now, with that in mind, read this bullet point from a real job listing (which has thankfully been modified):

Bonus with experience in data analytics; statistical analysis, machine learning, security, performance, deployment/operations, responsive design; development in iOS, Android. AWS or Docker experience a plus.

I don’t even remember what kind of role the job was supposed to be hiring for, I think it was a Full-Stack Web Dev, but for any role other than “co-founder / CTO”, this is insane.

Speaking of requirements: Does your job listing list a required degree or years of experience? If so, even if your years-experience requirement makes sense (e.g. you’re not asking for 5+ years of experience with a language that’s existed for a year), what purpose does it actually serve?

As a developer without a degree, I think hard-set degree/years-experience requirements only reduce your total candidate pool without giving much benefit. You should be looking for people who are Smart & Gets Things Done (sidenote: if you’re a friend reading this and haven’t read the book, i have 100s of copies, i can send you one), a degree isn’t a helpful top of the funnel filter for that.

Meta: I wrote out a bunch more pet peeves and it just ended up in angry ranting, so let’s try to do a positive pivot.

What should a job listing have? Here’s a direct quote from a response I sent to Ask@ about a year ago:

The job description for both positions doesn’t say anything unique about the company, job, or role. I’d really enjoy if they had:

1. What the company does. Do they make a product themselves? Do they sell things to other companies? What kind of industry do they work in?
2. It says there are other [ROLE_NAME] engineers, what do they do? What’s the hardest or most fun thing one of those engineers worked on recently?
3. What are hard challenges they’re working on? What problem do they have that they’re hiring people to help them fix?

The second and third points in that quote, I repeat almost every day. Even if a job listing does a really good job of explaining what the company does and how (and hopefully mentions that they’re adults who go home at 5 PM every day), what I really want is to know about their challenges.

If you spend some time at developer meet-ups you’ll witness a lot of men say “Oh, you’re a developer?” to the women at the meet-up, which is super infuriating. But also, you’ll see people sharing war stories. Every good developer has some “hard lessons learned” that they carry around like a badge of honor.

If your job listing mentions some of the badges of honor your current developers carry around, the prospective candidates reading immediately start thinking about how they would’ve solved the problem. This is inception. You just got a smart, clever person to start thinking about your company’s problems before they even thought “Do I want to work at this company?”


More personally:

I, as a developer with a diverse skill-set and years of experience, know that I am privileged enough to be able to have a new job any second I want one. Your Android developer job vs my Android developer job vs their Android developer job are all Android developer jobs, even if the apps look different.

Almost every mobile app is just the same REST consumer showing different data in a list then you tap on it and it shows more info. BO-RING. Why would I want to go from working on my boring CRUD app to your boring CRUD app?

I have a list of standard questions I ask every time I interview for a new role, some of them are:

  • Who is allowed to have new ideas, how do those ideas get shared?
  • Who decides what people should work on?
  • What does an average day in a developer’s life look like at your company?
  • How siloed are you? If I’m blocked on something in my mobile app because of the API, can I just work on the API? If it’s allowed, do people actually do this at your company?

You’ll note that most of these are questions that typically only a developer working at the company can answer. That means to get answers to these questions I typically have to: Apply, pass a resume screen, pass a phone screen, get to the first technical interview, pass the coding part, get to the last ten minutes when I can ask them my questions.

I’m okay doing this for some roles. I have to be really excited about the role to put in that effort. Typically this only happens when I’m already excited about a company and ignore most of their job listing. This is a huge hindrance for smaller / less-known companies.

If only it was possible for the HR manager writing the job listing to ask a developer some questions about their day to day before they post the listing… Wait a second, why the hell don’t people do that?!