Julia Evans

Hiring & opportunity

I was talking to my manager today about recruiting for our infrastructure team. I don’t really know much about how to recruit well, but I like to think about it anyway, so I thought I would write down some of my thoughts here.

We were talking about – how do you get rad developers to talk to you about working at your company? And it made me think about how sometimes recruiters/hiring managers email me about jobs, and when I reply to those emails, and when I don’t.


So, why do I reply to some emails about jobs and not others? I realized the other day that the emails I get fit into 2 basic categories:

  1. job that sounds like a thing I have done before and probably could do again.
  2. interesting and cool opportunity to do something different!

When I interviewed where I work now, I interviewed for the machine learning team. They were like “Julia! We have important business problems that we are solving with machine learning! There is a ton of interesting work left to do! You will get to write machine learning systems that do stuff that really matters!”

This was

  1. all totally true
  2. super exciting to me (I’d been doing machine learning before, but at a company where none of my code actually got used for anything by anyone, which was demoralizing)
  3. basically a really exciting opportunity!

I took the job, used machine learning to solve important business problems, and it was really cool! I got to write machine learning systems that really mattered!

But today, when I get emails about jobs doing practical machine learning it is.. not as exciting? Like I am definitely not a machine learning world expert, and there are definitely machine learning jobs out there WOULD be really cool opportunities for me and where I’d learn a lot. But it’s not easy to see which ones those are! Like, here are 3 emails. Would I learn how to be better at machine learning at these jobs? Maybe?

job 1:

They’re looking for a senior machine learning engineer to help build the realtime intelligence that underlies their business, working with data at scale.

job 2:

I help build out our machine learning teams here at $company, specifically Risk, and wanted to see if you would be interested in exploring opportunities with us.

job 3:

someone who will do a mix of big data engineering and statistical/predictive modeling, along with the analytical and interpersonal skills to interact with various stakeholders seeking to derive value out of this data.

hiring isn’t zero-sum

Sometimes I see this narrative around hiring which is like “we are trying to hire the best engineers, the best engineers are trying to find the best companies”

But this idea of the “best engineer” and the “best company” don’t really.. make any sense to me at all?

I feel like you can

  • hire great people who are going to do a great job
  • into jobs that are going to be a cool opportunity for them

and have both of those things at the same time? Like Stripe hired me, I was BEYOND STOKED to get this job, and I think I’ve done really good work. (and now I do infrastructure-kubernetes-load-balancer-networking stuff instead of machine learning, which is really interesting too!)

And there are a lot of reasons someone might be excited about a job! for example:

  • getting to work on a big open source project
  • getting to write a new kind of software (like I’m really excited about debuggers!)
  • getting to work in a new area of their field (like maybe i would be interested in a job developing neural networks because it is an area of ML I don’t know about!)
  • working on something with higher availability requirements than they’ve had to deal with previously (like I think it might be interesting to work on systems that have to handle a million requests/second!)
  • working on a product that’s really important to people (like I see a lot of super interesting projects inside product at Stripe)
  • working in a totally different field (like I talked to someone about writing a driver for a networking card and it sounds SO INTERESTING)
  • getting to lead a team and train more junior people and help them accomplish awesome things

and, well, a billion other reasons.

Anyway none of these things really live on the axis of “the best engineer” or “the best company”. There’s an not-very-huge adtech company here that has systems that do like a bajillion requests per second! Some people find it an interesting challenge because of that!

find people for whom your job is a rad opportunity

I like Dan Luu’s post we only hire the best means we only hire the trendiest and I feel like it’s related to this!

He observes that hiring people according to some “type” is pretty expensive:

if your type is the same type everyone else is competing for, “you are competing for talent with the wealthiest (or most overfunded) tech companies in the market”.

If you’re trying to hire the same people as everyone else, why would they work for you? They have so many interesting opportunities!

But it really helped me think about this problem! For example my team is working on moving some things to Kubernetes, which is really interesting and hard for all kinds of reasons. So it feels like it makes more sense to figure out “hmm, who would be excited about this kind of project and where would we find them?”

and then it is more like.. a fun puzzle where you try to figure out who is great who would be excited about the thing?

And this doesn’t just mean “find junior developers and train them” – like, I’m not a “junior developer”, and there are all kinds of things that I have not done yet that are interesting opportunities for me! (like, I am still learning what this Kubernetes thing is!)

How do these "neural network style transfer" tools work? Swapping, memory limits, and cgroups