Learning

Hiring the Best

As I mentioned in a recent post, I have an intern this summer who is helping me do some of the work that the other members of my team do not have the technical know-how to do. This is significant for us as a team because we have been trying to fill a spot to do this work ever since I started, and it’s been difficult to say the least. Thinking about this has naturally led me to think about being part of the interviewing process, and how it is a skill that I’ve surprisingly become quite good at.

Interviewing was certainly never something I saw myself doing through my first few jobs. You grow up thinking that interviewing is the realm of managers and important people. Interviewers are also supposed to be really tough and out to get you. So I was a bit surprised when I eventually got asked to help with interview loops at Amazon since I don’t fit any of those preconceived notions. But once I learned how the process worked, it made a lot of sense to be a part of it, and I soon grew to like it a lot.

I’m going to focus on three things here. First, why the Amazon process is so good. Second, why I find the process at my current company lacking in comparison. And third, what I’ve learned from being a part of both.

The title of this post comes from one of Amazon’s famous leadership principles, “Hire and Develop the Best”. And like all of their principles, Amazon throws a lot of resources at fulfilling that goal. The hiring process certainly isn’t perfect, as nothing is, but it does tend to hire the best the vast majority of the time.

There are three reasons why the hiring process works well. First, after the initial phone screen to measure basic skills for the role, the in-house loop contains 4-6 interviews, depending on the level of the role. The two most important aspects about the loop are that: each interviewer covers different skills and competencies, and interviewers never know what the other interviewers think until after they’ve made a decision to hire or not. These aspects ensure that loops are consistent, thorough, and as objective as possible.

Second, the company ensures that every interviewer has the right tools to get the job done. Obviously it is up to each interviewer to use them correctly (and it is clear that many do not), but it is super helpful overall. The tools ensure the important aspects of loops that I already spoke of are enforced. The hiring scheduler makes sure everyone involved knows exactly where to be, when to be there, what they need to cover, and hides other feedback before you make your decision. If an interviewer is not sure how to cover their assigned competencies, there are guidelines on what to ask and what to look for. There are mandatory training programs that each interviewer has to take, plus shadowing with an experienced interviewer, before they can go solo. I personally have some issues with those programs, but they do set a baseline that avoids bad situations that lead to candidates having a bad experience.

Third, every loop must have a third-party interviewer on it. This is done through Bar Raisers. Their purpose on loops is to make sure the candidate is a good fit for the company in order to prevent managers from hiring bad people out of desperation to fill out their team. Bar Raisers also make sure that loops are constructed properly beforehand, they lead the debriefs, and they have ultimate veto power if the manager continues to push for a hire when it’s a bad idea. This is the one area that sets Amazon apart from similar companies, and one of the reasons I got so good at interviewing is because I trained to be one.

I really enjoyed the whole process that Amazon put in place and it’s part of why I wanted to get more involved with interviewing more and more as I worked there.

Where I work now, things are… not the same. There is no real process to speak of, so I’ve been doing my best to put some in. Maybe it is different for other positions within the company, but for hiring people for my team the only process we have in place is that there is a phone screen and (if possible) an in-house with just two interviews. Possibly a third one if it’s warranted. I don’t feel this gathers enough data to make an educated decision.

But what I have been struggling the most with is that there is no goal in mind. What made the Amazon process so easy was that every role was clearly defined and when you went into the interview, you knew exactly what data points you were trying to get. Where I am now, the role is unclear and shifts depending on who we have at the moment, and my only direction is to “find out their technical ability.” I mean, I’m fully capable of doing that, but it’s pretty broad. It saddens me that technical ability is the only real factor in the decision, since team/culture fit is also important, but our company isn’t interested in that.

I know that I shouldn’t expect anything else from a startup. I’m not working at one of the biggest companies in the world anymore, that everyone in tech wants to work at, and gives offers to less than 20% of candidates. Obviously there’s no reason to have the same rigorous process, so I can live with it. The only thing that really annoys me about this new process is that people can’t stop telling me what they think when they finish and before I’ve had my turn. It’s a bad practice, skewing what interviewers think before they meet the candidate. I go out of my way now to not listen and get into the room as quickly as possible to avoid getting those negative impressions.

Overall the process of learning to interview has been really rewarding and helpful in other areas as well. I’ve historically been really bad at making small talk with people because I can’t think of questions to ask, or how to lead conversations. It’s a lot easier to answer other people when they ask about me. While I’m still not great at it, interviewing has forced me to be better at it, even though it’s in a different context. With interviewing, it’s easy to lead because I know exactly what I’m looking for. With just normal chit-chat, I still struggle because I have no real direction until something reveals itself. I have a lot of trouble getting interested in other people without some prompting. Interviewing has also gotten me more comfortable with just talking to people I don’t know, especially over the phone.

I’ve also learned how to prepare for interviewing people. When first starting out, I would try to just wing it, but I would never get the information I was looking for, which was a big no-no. So I started using templates to guide things better. When I got a competency I wasn’t used to interviewing for, I would have to get new questions, and over time I learned which questions worked and which ones didn’t. When I started doing the Bar Raiser program, I had to retool my whole process because I still wasn’t getting the data they wanted. I had to get a lot better at listening and really digging into the answers I was being given. That alone has paid the most dividends in how I interview people. By the end of my career there, I had a really good system going and I could get ready for a loop in 15 minutes or less, regardless of what role the candidate was interviewing for, or what I was asked to get data on.

This is all to say, I certainly have no intention to stop interviewing just because I don’t agree with how it’s done in my new company. I still like being a part of the process, knowing that my opinion is important and I get to have some control in deciding who I work with. And while I don’t get the same opportunities or feelings of success as I used to, I’m still learning and getting better at it all the time.

Teaching and Mentoring

This seems like a good topic to talk about this week, given that summer is here and I have received my first official intern at my new job. In my almost five years at Amazon, I witnessed five internships seasons, but was never asked to take one on. I certainly did my fair share of helping where I could if we got someone on our team, and it’s no real surprise given my history of teaching and mentoring. And that’s what I’m going to write about today, my experiences with mentoring and why I do it.

I feel like it’s easier to start with the why since that is what has driven the when. Even as early as grade school I knew that I was a teacher at heart. It comes pretty naturally to me and I have no issues with dropping anything I may be currently doing in order to help someone work through a problem. Well, as long as the person asking for the help actually needs it. I do get short sometimes with peers who can’t seem to do things on their own and require constant re-education, but when I know the person is new to something, I can’t help but want to lift them up.

Aside from being really good at it (or so I’ve been told by others), teaching is my form of service that feels the most rewarding. Other people give back by feeding others, sheltering others, fighting for others’ rights, healing others physically and spiritually, etc. And those are all great, but they aren’t for me. I’m okay just giving some money here and there where I think it’s most needed. Teaching though, that’s something I could have made a career out of. Even now, I’m pretty convinced that if I leave the software industry, I’m going to spend my time teaching what I can to others. While I certainly don’t have the time right now, I could even talk myself into adjuncting a class for a local college on top of a regular job.

My initial foray into teaching was simple enough. I don’t remember exactly who approached me about it, whether it was one of the grade school teachers or my parents, but everyone around me knew that I had a brain for mathematics. I was always a grade or two ahead of my classmates. So I was asked if I wanted to run an after-school math class for lower-grade students who were looking to advance beyond their current level. It was only one day a week for a couple months, at least that I can recall, my memory is not great so many years on. But what I do remember is that I had a great time. Planning the lessons, going over how to do things in class, grading papers, all of it. It ended up just being a flash in the pan as there were no follow up classes, but it was a spark of inspiration for me.

From there, pretty much until I graduated college, and even a little bit after that, I was always helping classmates try to understand things that they couldn’t get from the lectures. I never did any official tutoring, but I certainly gave a lot of unofficial sessions. Mostly in calculus, but there were also a lot of computer science topics I could teach because I had prior experience before college that a lot of others didn’t. Especially in classes where the professor obviously had no real world knowledge of what they were teaching (looking at you database administration class).

After college I had no real opportunities to continue tutoring or teaching. During my first couple jobs I was the junior developer on those projects, so I was the one being taught for the most part. But I did get better at explaining myself to peers and getting them to see my way of things. That skill has become super valuable, especially at my current job where I have more sway on policy and direction.

I didn’t get another chance to really teach until Amazon, where I took on more of a mentorship role. While I didn’t get any interns, I did have a couple official mentees, though I wouldn’t say any of them were really that fruitful. I put in a lot of work coming up with mini-lectures and project ideas, but with one exception they all ended before they could get going. The mentorship program there is designed to be driven by the person seeking help, so many people will say they want help but few follow through. That’s just human nature, and also the nature of a workplace where people are crazy busy all the time. So the mentoring was mostly off the books, lending guidance to people on the team who were still new to programming in a real company.

This all leads to now, where I’ve got an intern of my own. It’s a good thing for our team right now because we’re lacking enough development talent to keep up with the pace of the project, and it’s been proving difficult to fill the gap. It’s definitely going to be a lot of work on my head because I have to be there to help and guide him, make time for all my usual work, and I’ve also become the second-in-command for my team, so I have managerial stuff to take care of from time to time too.

Hopefully things will turn out well with my intern. After just a week it’s hard to say what he’ll be able to do in the two months we have him, but he seems to be taking everything in and is eager to make something happen. I’ve done enough work with college students through interviewing and mentoring that I feel like I should be good at assessing where to set stretch goals and where to ease up, and come out at the end with a finished product he can be proud of. We’ll see in August if I’m as good a mentor as I think I am.