How To Interview A New Programmer

Beth Andres-Beck is a senior software engineer at the Long-Term Stock Exchange. She is a full-stack developer, having written code for everything from HTML5 hybrid mobile applications to GPU-accelerated computer vision software. Her passions include mentorship, game theory and participating in cultures that sustainably build great software. Prior to LTSE, Beth worked at Hillary For America, Twitter and TripAdvisor. 

Beth shares her experience with Hackbright on recruiting and interviewing bootcamp grads. Follow her on Twitter at @bethcodes.

With a candidate straight out of bootcamp, what I’m actually evaluating is how long I think they are going to be under my mentorship before they will be a net-positive.  That number depends a lot on what we’re trying to do and who is available to mentor.  I am confident that I can teach almost anyone how to program, so the question I’m trying to answer in an interview is how much time it is going to take and how positive the experience is going to be, for both of us.

As an interviewer, I look for signals on how fast the developer will incorporate feedback:

  • Can they write code iteratively? Do they verify that each step works before moving on to the next step, as opposed to trying to plan everything up front and get it right the first time? (The second approach doesn’t scale to larger challenges as well as the first, and shorter feedback cycles let people learn faster.)
  • Do they ask questions if they don’t understand something?
  • When told a better way to do something, say that they understand and agree that that way is better, do they then do it the better way the next time it comes up?
  • Do they have an aesthetic opinion of code? Do they care about the code they write? Can they tolerate writing ugly code until they find a better way?
  • Can they express their decisions in terms of trade offs? People who think there is one right answer will have a harder time learning and adapting.
  • Do they stick with a task, trying different ways to achieve it, even if none of them are right? I prefer that to either continuing to do something that isn’t working, or abandoning the task and giving up. Persistence is an excellent virtue in a programmer.
  • Do they seem to enjoy the process of getting something wrong, and learning from it? (This can be hard to judge in a high-stress situation, so I ask questions about problems they’ve encountered to see if they have had that experience in the past). 

Then I look for signals on how well they would collaborate here:

  • Can they express themselves concisely, or do they ramble?
  • Do they treat everyone they meet with respect?
  • Are they willing to compromise their own opinions for the sake of consistency?
  • Are they able to work under our cultural values? (At my current position, for example, those values include proactively seeking out diversity in recruiting, iterative product development and reasonable work-life balance. Someone who wants to feel like their job is their whole life, wants project specifications to be created up front or who values meritocracy over diversity will be a better fit at a different company.) This is the dreaded “culture fit”, but by articulating those values in specific terms it isn’t a generic catch-all for “do I like this person?”
  • Can my company provide what they are looking for and avoid anything they hate?

Only then do I look for particular skills.  I’m trying to figure out if a programmer can:

  • Read code in whatever language they know and express opinions about it
  • Write a function performing a simple iterative loop in a browser code environment
  • Describe code they have written
  • Find a problem by running code and somehow identifying which piece is failing (using a debugger, log statements or writing tests: I don’t care which, but bonus points for useful tests.)
  • Name variables meaningful names
  • Break down a mid-sized problem into a series of achievable steps

The challenge is that it is almost impossible to judge these things by looking at a resume. I can either have an inside line on the bootcamps to get recommendations from someone who knows my style and what I’m looking for in a candidate, or I have to actually talk to basically every graduate at a bootcamp recruiting event. Oftentimes I end up filtering largely arbitrary criteria just to try to make the problem manageable. I try to signal things that I think are important early and openly, because if candidates who won’t thrive in my company weed themselves out without losing the candidates who will, it saves both of us a bunch of time. 

As The Interviewer, Ask *Relevant* Questions

The important thing is to figure out how well a candidate is going to do in the specific situation, rather than trying to judge them on some absolute scale. What kind of support a particular company has available for boot camp graduates and which skills are important for someone to be successful at a particular organization are related questions.

Quite often, companies haven’t thought through the actual tasks involved in the jobs they are hiring for, which makes evaluating candidates extremely challenging.  If we don’t know what is important for success, we can’t judge whether people meet that criteria. 

When I’ve worked to redesign interview processes, it often starts by sitting down and asking developers what they did that morning.

It almost always includes writing a little code, reading a bunch of code, debugging existing code, and then either chatting on Slack, sending emails or sitting in meetings. Then these companies want to go and interview the people they are hiring on how well they compose algorithms, when ~0% of their work time is spent on that.

I do want people to be able to write code (not algorithms, but a basic for-loop with varying behavior), but I also like to see them approach some code they aren’t familiar with and see how they read it, which questions they ask, whether they have opinions about, what feels pretty and what feels messy. I love getting intern-level code reviews: one of the values to me of working with junior developers is that they give me feedback I can’t get from others who have become inured to the problems of our languages.

As The Hiring Manager, Set Up The New Hire For Success

legosI always want an interview process that a programmer who will enjoy working at my company will come out of feeling excited and energized to join my company.  I want them to know what the work and team dynamics are going to be like, and have a chance to decide if that’s what they are looking for.  The more I can make the interview process match our day-to-day work, the more likely it is that we will be able to find a mutual fit.

For more advice on interviewing and recruiting from engineering bootcamps, click here

Bootcamp Grads: A Tech Recruiter’s Dream

Some of our favorite hiring managers in San Francisco share successful experiences recruiting and hiring diverse engineering teams, from bootcamps like Hackbright Academy, to building healthy engineering cultures:

Pat Poels, VP Engineering, Eventbrite

“I don’t want to hire only very senior people who’ve been in the industry for 10 or 15 years. I want to have a mix of new ideas and new developers as well. Hackbright is a great channel for that. We call that ‘junior developer’ role a Software Engineer Level One. There are a lot of interesting problems to solve at Eventbrite, so we don’t really look for a certain kind of engineer from Hackbright Academy. We’re looking for people we think are a good fit for the company, people who we think are really smart and have a great potential to learn.”

Danny Chi, VP Engineering, Tripping

“I’d love to come to Hackbright Demo Night because you can meet over 20 candidates in one night. It provides individuality a chance. I’m currently mentoring for the fifth time at Hackbright Academy. Because I’m mentoring, I’ve participated in whiteboarding sessions and we’ve been able to meet candidates outside of the recruiting cycle. For example, a Hackbright graduate participated in a whiteboarding workshop I was at, and gave me her resume for consideration. We’ve interviewed 30 candidates for 3 engineering hires. This is the same hiring clip as hiring across other recruiting channels, so being a part of the Hackbright community is a win. My one recommendation for bootcamp grads is to add React or any type of JavaScript to your app, as this will help you differentiate yourself from computer science graduates who tend to be heavy on theory and backend work.”

Arup Chakrabarti, Director of Engineering, PagerDuty

“The biggest thing to remember is that new developers need to be able to show potential over their technical ability. Not that technical ability is not important, but there is only so much I can expect out of a junior candidate. Instead, I look for solid communication skills, a genuine passion for software, curiosity beyond what they have learned in school, and raw drive. The projects that students work on are a very good way to demonstrate these things. Every student should keep working on their projects after demo day and be ready to show that to potential hiring managers. The other thing that Hackbright graduates need to leverage is the fact that many have years of work experience vs. someone that I hire straight out of undergrad. They know how to show up to work and basic professional habits over fresh college grads. This is something I tell all of my students to point out when they are interviewing as that means they are inherently less risky to hire.”

Alex Bekker, Director of Engineering, Udemy

“Ignore what languages candidates have experience with and instead focus on what they are capable of producing with them. Regardless of experience, everyone starts at the bottom of the learning curve on day one of a new job, so it’s a question of how quickly they can learn and how high their ceiling is, both of which are answered by what they can do today with what they learned so far. At Udemy, we like to give candidates take home projects and have them present to the team rather than the typical phone screen and on-site whiteboarding process, which is all kinds of broken.”

Emma Lubin, Engineering Manager, GoDaddy

“Someone making a mid-career switch can leverage their previous professional experience and learn quickly. Leading small teams and shipping projects are accomplishments that hiring managers will look at even if they were achieved in a different industry. I condensed nearly a decade of biology research into a few lines on a resume, and devoted more space to descriptions of small coding class projects that were nowhere near that kind of accomplishment. I started getting attention to my resume only after I put ALL of my skills on it. Software engineering is a tool to solve a wide array of problems, and it needs engineers with diverse backgrounds and approaches — that’s one reason companies are hiring from bootcamps.”

Brina Lee, Engineering Manager, Quip

“We not only bring a more diverse group of team members onboard, but we also make them want to stay and to give Quip their best. That’s important: You need to focus not only on recruiting good people, but retaining them. We’ve seen that once we started bringing in a broader range of people who stick around, our diversity snowballed. That can work for any company. Once you’ve got your first woman in engineering, it’s a lot easier to hire your second. And third. And fourth…”

Learn more about bootcamp grads:

  • “Higher percentage of female [coding bootcamp] graduates offers a more diverse talent pool. Women attain just 14% of computer science degrees, whereas they represent between 36% and 40% of bootcamp graduates.” (1-page)
  • “Even at colleges with a high percentage of women CS grads, the numbers are still small. … 511 total women in 2013. If Google hired ALL these women, it would increase their female percentage by 1.5 percentage points, leaving the whole rest of the technology industry bereft of female new-college-grad hires.” (TechCrunch)
  • “Bootcamp grads are junior programmers. They have a lot to learn, and represent an investment on the part of a company that hires them. This is also true of recent college graduates. We’ve found bootcamp grads as a group to be better than college grads at web programming and writing clean, modular code, and worse at algorithms and understanding how computers work. All in all, we’ve had roughly equivalent success working with the two groups.” (TripleByte)

Interested in hiring brilliant grads of Hackbright Academy? Learn more about how to partner with Hackbright Academy to hire your next female software engineers!
Hackbright’s next recruiting evening is March 8, 2017 in San Francisco – join us!

You Survived Bootcamp, Now What? Advice From a Hiring Manager and Mentor

emmalubinEmma Lubin is an engineering manager at GoDaddy, the world’s largest domain name registrar and web hosting provider, aiming to radically shift the global economy toward small businesses. She obtained a Ph.D in Biology from the Massachusetts Institute of Technology in 2013, and became a software development intern at GoDaddy the following year. She quickly became a software engineer there, and last April was promoted to engineering manager.

Emma volunteered as a mentor at Hackbright in 2016, and served as a guest speaker at the Bootcamp to Engineer: How I Landed My Job panel event. In her spare time, she enjoys being outdoors and eating burritos, often at the same time.


 

Congratulations! You’ve graduated from bootcamp. Maybe you’re now looking for your first software job, or maybe you’ve been there a while and are aiming for a leadership position. Either way, as someone who’s been hiring for the past few years, I can give you some tips I wish I had known when I was first starting in a similar position.

Know where you’re going

When changing your career, you have options: you can make a 180 degree pivot into software engineering, or you can combine programming with your past expertise. I often hear from bootcamp grads that their program focused on web development skills, but as they’ve gone more in depth into software engineering they’ve gotten a better idea of how broad the landscape of the technology industry is, refined their interests, and decided to focus on backend engineering, or work in product management.

At GoDaddy, I’ve worked with bootcamp grads who have made both choices — one woman combined her design background with engineering to become a UX engineer, while others don’t use their backgrounds in day-to-day work — and in both cases they have made enormous contributions to the team. Be clear with prospective employers about what you want, and find one who will help you achieve it. Being unsure of what you want right after bootcamp is an understandable and common position, too, and if that’s the case for you, don’t be hesitant to look for environments that will help you develop your interests. There are companies out there, like GoDaddy, that are willing to invest in people who are ambitious and smart and help them grow their career the way they want. Engineers there are encouraged to explore new directions as they develop more real-world coding skills and discover opportunities they might not have known about when they first came onboard.

Whichever course you’re taking, one mistake I made that I’ve seen in others was downplaying my past experiences; don’t discount these, to yourself or to those looking to hire you. While there’s a never-ending amount of industry knowledge you’ll develop, many analytical and professional skills you already have are translatable between fields. One person described this to me as having a vector of skills; I was just pointing that vector in a new direction.

When I first applied for software internships, I condensed nearly a decade of biology research into a few lines on a resume, and devoted more space to descriptions of small coding class projects that were nowhere near that kind of accomplishment. I started getting attention to my resume only after I put all of my skills on it. Software engineering is a tool to solve a wide array of problems, and it needs engineers with diverse backgrounds and approaches — that’s one reason companies are hiring from bootcamps. Someone making a mid-career switch can leverage their previous professional experience and learn quickly; leading small teams and shipping projects are accomplishments that hiring managers will look at even if they were achieved in a different industry.

Overlooked skills that matter

When I hire for a junior or senior engineering role, I ask technical questions that I’ve calibrated against other candidates at those levels. For many companies, though, hiring a bootcamp grad is uncharted territory, and your interviewers may not know what skill level to expect from someone straight out of bootcamp. They may not have developed metrics for what a strong bootcamper interview looks like. This is something that will change over time, but for now, if a company asks questions that are targeted for someone with traditional industry experience, don’t get discouraged or interpret it as a reflection of your prospects in the field.

My own interview process for bootcamp grads is a work in progress and I know that, particularly when I first started interviewing, I passed up good candidates because of its flaws. When interviewing a bootcamp grad, I try to identify a candidate I think GoDaddy should make an investment in and grow within the company, and largely look for three things: problem-solving ability, motivation, and communication.

I’ve learned that, for a bootcamp grad, expecting working code by the end of the interview isn’t a valuable metric. Analytical skills don’t come only from coding Python. Someone who has raw problem-solving skills and is excited about the work they’re doing will have the drive to learn new technologies — something required of any software engineer, no matter their background — and be able to contribute to the team.

Many bootcamps, Hackbright included, will prepare you for whiteboarding interviews and stress the importance of communication — you’ll do a lot of learning on your own once you get the job, but much of what you’ll develop comes from discussion with your peers, and as your future coworker, I want to know that we can work through a problem together. Being able to describe the blocker you ran into when you don’t know the landscape or vocabulary is one of the higher activation barriers to pass when switching fields to software engineering. Interview me, too, to see if I’m doing a good job of helping you; the fastest way to get past that barrier is with the help of strong, on-the-job mentors.

Before you get to the whiteboard, the first step in the interview process is often a coding challenge or phone screen. The problems you’ll solve will be similar to those in whiteboarding interviews, but not all bootcamps will prepare you for them. It’s important to practice and get comfortable in the environments you’ll be working in; use a headset and solve problems in online codepair tools like hackerrank or collabedit. If you haven’t already, find practice problems on leetcode, careercup, or interview cake and try as many as you have time for.

Use your coding skills as a voice

The other advice I want to give you is not as a hiring manager but as a software engineer looking for ways to make the world a freer, more tolerant, and safer place. There have recently been calls for citizens to re-engage with their civic responsibility. While there are a number of ways to respond to that summons, as software engineers and as women who have an outside perspective on our industry, you are in a critical position. Technology will be key in helping to effect social change in this country and spreading education at the speed we need it. There are already nonpartisan efforts like Code for America that use technology to benefit their local communities, and there will be a growing number of initiatives and ideas that need web and app developers like you to volunteer, and holes in our society that need your innovations. Many people join the technology industry to disrupt another field; while you’re doing this, think about how you can similarly bring about change in our country. You are smart, capable, and trained — don’t count on anyone else to do this work.

Know that you’ve got what it takes

I know that some of you have already found your first (or second or third) job, and others are still sending out applications. Whatever stage you’re at, remember that deciding to switch to a new industry and taking the steps to get there is no small accomplishment. Whether you know exactly what you want right now, or want to develop the industry knowledge to figure it out, you and your skills are valued at an ever-growing number of companies.

Thanks to the awesome Hackbright alums at GoDaddy (Celia Waggoner, Ellen O’Connor, and Terri Wong) who advised me on what questions they wish they’d had answers to when graduating from bootcamp.