Some Notes on Recruiting Senior Software Engineers

It’s now about a year since I was looking for a new job; many people have asked me about my experience so I have a few notes I hope are of general interest.

My recruiting experience with Facebook was really fantastic, I think about as good as it gets. The mix of interviews was right and I talked to the right kind of people. This is not a given in this biz, other companies I saw totally screwed it up.

I think a big part of the reason that it went as well as it did was that many people at Facebook knew me and I think they made sure I got some kind of customized treatment. But, again, Other Companies™ also had people who knew me but still managed to screw it up badly.

When you are interviewing a senior engineer you are also being interviewed. Believe me I was being much harsher on Facebook (and the others) than they were being on me. If you waste the candidate’s time, act like buffoons, or otherwise give the appearance of being a shit-show then you will lose pretty much immediately. This is definitely a time for Game Face.

How To Get Game

1. Senior engineers are unique people with unique skills, no two are alike. If you cookie-cutter the process they will notice and assume you are looking for a cog; you just lost.

2. If you have no idea what’s special about your candidate you need to find out; it’s not that hard. The process needs to reflect that in some way.

3. No senior engineer is going to think that interviews are easy. That’s just dumb. I certainly expected very challenging problems. I expect the problems to be relevant to what my skills are and the role I am likely to play. Your candidate should have a sense of what that role might be. And frankly if you don’t know, then how are you gonna interview them properly?

4. The candidate is trying to learn about their future colleagues and the company culture. If you do not give them time to do so then they will not be comfortable making a decision. Your interviewers are being interviewed! Things generally went well for me because I knew what to expect and how to handle it, I got a lot of details on the process from my recruiter. That made a big difference. It also meant that I could learn something about the teams.

5. In addition to being interviewed, candidates are likely to want talk time. I asked for two days of it. Maybe Facebook thought that was them selling me; that’s not what it was. That was me interviewing Facebook for 2x as long as they interviewed me. This makes candidates feel better. They are risking more than you are.

6. There are (basically) no engineers that never read code. There are some that write code infrequently but code comes up all the time; Code reviews, design discussions… everywhere. It’s a communication tool if nothing else. So, some aptitude is necessary for everyone at pretty much any company. That’s fine. But put that in the context of what the persons role is and tune the interview loop accordingly. I had one “coding” interview I think (IIRC). It could have been two, that would have been fine. I’m a generalist but in my space coding is essential. I expected to be tested. The mix for someone else could have been different.

7. In any given interview a senior candidate is likely to have something they want to learn and something they want to show. If you ask me something I’m going to probe you on the problem, for my benefit and also to size you up. That will inform my answer. Then I’ll write something that I think is likely to be interesting. Whatever you do, let me show you what I think you need to see. That’s much more important than me showing you the answer you think you want. Don’t get this wrong.

8. Talk about ramp up plans and resources. Set good expectations about what is expected and how this usually goes. Make sure people feel like your company is ready to make a serious investment. This person is about to rock their own world… nobody wants to feel like they’re gonna be screwed in six months, there will be plenty of pressure drinking from the firehose.

Now I’m saying these things because I think in my case they went extraordinarily well, at least at Facebook. Even little things like “let’s take a walk around 2pm… your friend [..] would love to see you”. That stuff is HUGE.

Written by

I’m a software engineer at Facebook; I specialize in software performance engineering and programming tools generally. I survived Microsoft from 1988 to 2017.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store