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

#GlobalEngineer Day – Hackbright Grad Creates App for Good

Natalia Margolis, Hackbright Fellowship Grad and Software Engineer at Huge, created an app called Notifica that allows people detained for deportation to send out alerts to family, friends and lawyers with the push of a button. In celebrance of #GlobalEngineer Day, we sat down with Natalia and talked about her experience at Hackbright, her experience working on Notifica, and her advice for women seeking a career in software engineering.

https---blueprint-api-production.s3.amazonaws.com-uploads-card-image-413474-24c6d82e-fe34-4a07-897f-064c85ed2705

What was the inspiration behind creating the Notifica app?

The inspiration came from Adrian Reyna of United We Dream, and the original hackathon team in Oakland. We met at a post-election action Meetup co-organized by PyLadies and Techqueria. When we went around the table saying what gave us hope, he said it was that folks already have strong networks supporting them. Adrian wanted to use tech to create a tool to activate those networks for a rapid response to Immigrations and Customs Enforcement (ICE) raids and to give people some control in a moment of chaos and uncertainty.

For our company hackathon, Cid Donham, Genki Hagata, Jessie Kim and I worked with Adrian to make this app a reality. The goal is to provide a way for undocumented immigrants to take control in a situation that causes a lot of uncertainty and fear. We were all deeply disturbed by the militarization of ICE and the fact that more and more people are getting swept up in raids and targeted attacks. After the hackathon, we ramped up and an incredible team of developers and designers worked around the clock, fighting to get the resources we needed to get this app into the hands of users as fast as possible.

How has the creation of the app impacted your own life?

It impacted my sleep and quesadilla intake… But seriously, this has affirmed why I got into tech in the first place. I wanted to find ways to bridge tech and social justice. After working on this, I have more confidence that I can actually do what I originally set out to do when I made the career transition.

I have also learned how much can get done, and how many roadblocks you can work through, when a team is passionate and genuinely cares about the success of the product on a deeply personal level. For everyone who worked on the team, this project has inspired a sense of purpose.

Natalia_Margolis_career_day

How did your experience at Hackbright prepare you for working within a large digital organization like Huge?

I learned how to pick up new technologies quickly, and I learned to not be intimidated by the unknown. Pair-programming taught me how to communicate clearly about code, how to collaborate, and how to leave the ego out of work. Being around inspiring and supportive women also set me up with a little voice in my head encouraging me when I have challenges, and advising me about how to succeed as a woman in this industry.

Why is it important for software engineers like yourself to create apps for good?

If the tech community is upset about what’s been happening after the election, or what’s been going down for a lot longer than that, it’s time to do something about it. The tech industry has a ton of resources and skills to contribute. As a privileged white woman, I have benefited from an unfair system, and have a lot of resources too. Let’s leverage our resources by working with nonprofits, grassroots movements, and civic organizations to develop the tools they need, and develop apps with a purpose.

And hacking on apps for good in our spare time is a great start, but we also need to change the industry fundamentally. We need to be conscious of the ethical impact of our work and the lack of diversity in the culture of tech itself. For example, when software used to make decisions in the criminal justice system ends up having racial bias, it’s clear that software engineers need to think about the implications of what we’re developing and make sure the decision-makers and developers are diverse enough to have the perspective to flag these kinds of issues in the first place.

Any advice do you have for Hackbright students pursuing the job search after graduation?

Don’t be afraid to admit when you don’t know things. You won’t learn anything if you pretend you already know it all. The companies that are worth working at will value that honesty and curiosity, and will be the best places to grow.

Check out Notifica here and follow Natalia on Twitter @nmargolis89

 

EXCLUSIVE SCHOLARSHIP OFFERS FOR OUR UPCOMING COURSES:

Bay Area Girl Geek Dinners is offering $1,000 scholarships | Apply here!

In honor of International Women’s Month, every student will receive a $1500 scholarship for our full-time fellowship or a $500 scholarship for our Part-Time June courses!

Hackbright Academy is the engineering school for women in San Francisco dedicated to closing the gender gap in the tech industry offering 12-week software engineering programs and night courses for women.

3 Ways To Design Your Career Change

krishelle

Krishelle Hardson-Hurley

Krishelle Hardson-Hurley is a site reliability engineer at Dropbox. After earning a Master of Education degree from the University San Diego, she spent six years as a high school Math and Spanish teacher before undertaking a search for a new career that brought her to Hackbright Academy.

Hers was no sudden switch — Krishelle spent two years looking for the right path for herself. She believes that planning, hard work, but most important thoughtful design can lead you to where you should be, too. When not at work, Krishelle is spending time with family, working out and going to Disneyland.


1. Design your path

I recently listened to a podcast episode that spoke about applying design thinking to improve your life, similar to how a designer might go about designing a product. Product designers develop prototypes, and although I did not know it at the time, this is exactly what I was doing with my life.

I had been teaching for six years when I started to feel it wasn’t what was best for me. I began to go through the design thinking process and tried to identify the key issues. I asked myself: Why wasn’t I happy? What was missing? What did I like about this job? What didn’t I like? I needed to fix the problem, just like a designer. Asking these questions help lead me to other possibilities, or prototypes, for my new career. I looked at returning to grad school to get a Ph.D, I thought about becoming a teacher coach, I considered becoming a school administrator, I was looking into curriculum positions at edtech companies, I even considered going into computer animation.

Screen Shot 2017-02-06 at 6.38.03 PMIn the episode, Stanford Professor David Evans explains that after your prototypes are created, the next step is to test them out. And that’s exactly what I did. I spent an entire summer learning and applying to various edtech companies. I arranged phone calls with anyone who would provide me better insight into their world. I wanted to make sure before I fully committed to a path, that I had enough information to ensure that I pursued a career that reflects who I am and allows me to be my best me. I spoke with two CEOs and an employee of various edtech companies, I had a call with a Professor at Stanford, I spoke with Ph.D students, employees at Pixar, Google and Dropbox, I even took an animation class. As one more possible path, I went to a Hackbright open house. That’s when it hit me. One of the speakers on a panel was a teacher, and she seemed to be speaking directly to me. That is when I knew that becoming a software engineer was the right path for me.

Take the time to design your path. Explore multiple paths and chose the one that reflects who you truly are, and allows you to be the best person you can be. Take the time to talk to people in fields that appeal to you before you commit. Take a class, go to events or listen to podcasts that allow you to hear other’s stories. Test enough prototypes and you too will have that moment when one of them just speaks to you. Finding the right path takes time, have patience. And before you dive in, make sure to reflect and measure whether that path will truly make you happy and reward you for being you.

2. Create frameworks

krishelleRecently I put together a blog post, 8 Tools for Organizing your Post-Bootcamp Job Search, in which I provide many examples of the frameworks I utilized to organize my job search. By creating frameworks, I mean create intentional structures that serve as a roadmap to the goals you are striving to achieve. As demonstrated in the post, I approach everything I do with a framework. This helps me to fully understand the why and the how when it comes to executing my designed path.

Once I decided to attend Hackbright, I sat down and created a framework around this goal. I asked myself: How will I pay for it? What preparation is needed? Which cohort is the best to allow for a smooth transition from my current job? How will I make my application stand out? Why do I want to become an engineer? Why Hackbright? These are all questions that I worked on for months to develop into a framework. At the time that I applied to Hackbright, the application involved an optional video submission. As part of my framework, I spent a lot of time planning out my Hackbright admissions video. I hired a professional videographer and worked to develop the message I wanted to convey. This process was critical to getting closer to understanding myself and designing my path. This is exactly what frameworks are for, learning more about yourself and tweaking things as you go.

KAt Hackbright, they encourage you to develop company and career profiles like those that I speak about in my blog post. As soon as I began the program, I sat down and asked myself: What kind of work do you want to do and what kind of problems do you want to solve? What kind of company do you want to work for? What company values or features are important to you? After doing this and reflecting upon the prototype testing that I had done before Hackbright, I noticed that my framework had evolved. Through all of the iterations of my path and frameworks, I had finally found that I would be most fulfilled by focusing on companies that want to improve productivity and education.

So what did I do? Add another step to my framework. I asked myself: What can I do to show that I belong at these companies? My answer: Make sure that my capstone project demonstrates this. So I created a project at Hackbright that mirrored my interests. I created a tool to help people learn a second language more efficiently. My tool allowed people to do inline translations of text they were reading. See? Education and Productivity.

Creating these plans and structures helped me to realize who I was, what I wanted, and how I was going to see my goals come to life. Your plans will change and evolve, and you can’t predict how anything will turn out. What matters is that constructing a concrete plan will expose where you haven’t thought things through and what you haven’t looked into. It will give you a mindset to live in as you pursue your plan, like having a map as you explore a new city. Make sure you know where you’re going, at least for now. Keep reflecting and be open to tweaking things along the way.

Frameworks allow for a deep dive into a path you design. Just like a designer continues to test a chosen prototype, you too must continue to test the path you have chosen. This process is about learning more about yourself, so do the work. And guess what, when it comes time to share your story, you’ll be able to talk about it fluently, because you’ve got that structure in your head.

3. Audaciously be the best YOU that you can be

Krishelle Hardson-HurleyWhen I was young, every morning before school my mom would say to me “Be the best Krishelle you can be.” I have carried this message with me to everything that I do. It wasn’t until I began the process of changing careers, that I realized the part of this message that I had been missing. In your career, you can do your very best work every single day, but if you aren’t setting audacious goals and putting yourself in the right place to achieve those goals, you may find yourself underwhelmed by your own accomplishments.

And this is exactly how I felt, underwhelmed. I realized that the goals I had set for myself in becoming a teacher, had led me to a place where I was struggling to make a difference beyond my classroom. I needed to be in a place that reflected my values and allowed me to fully be the best that I could be.

So after designing my path and creating my frameworks, I set my sights on a few companies focused on building productivity and education tools. At the top of my list, was Dropbox. I had spoken to several Dropboxers and knew that the company culture, mission and values aligned closely with my own.

Screen Shot 2017-02-06 at 6.50.53 PMSo what audacious thing did I do? I had this great conversation with a Dropbox engineering manager at an event that I attended in September of last year. I was so inspired by her, that I wrote her an email saying how determined I was to do whatever it would take to work with her. I told her that if ever there were an opportunity for a junior engineer on her team, I hoped to be considered. And guess what, she invited me to interview and I got the job.

Here’s the thing though. Getting this job had two important ingredients: I audaciously put myself out there for an opportunity, yes. But I truly believe that because I had done the work to design my path and frameworks, my story was clear when I got in front of the right person. I was the best Krishelle I could be, and she could see it.

So what is the lesson here? Along with designing your path and creating the accompanying frameworks, do as much as you can to put yourself in the right situation and in front of the right people. Social capital is far more important than you might think, so start investing.

Screen Shot 2017-02-06 at 6.55.33 PMEven if you’re unsure what direction you want to go, get out there and share your story. Go to events and reach out to people, and most importantly ask direct questions. Can you recommend any resources where I can learn more about that? What do you love most about your role? What is your experience with work life balance at x company? What is the most important thing you learned in your first role as an engineer? What advice do you have for beginning engineers? I’m really interested in x and y, can you recommend any companies or roles that I can look into? Demonstrate that you have a fire for learning, a growth mindset, and a drive to make an impact. I still strive to do this in my role at Dropbox.

Lastly, make sure the message you convey in person is consistent with your online narrative. Part of being the best you can be, is making sure you are at your best in all the places that people can see you. Allow the world to see who you are and what you care about. This is your design, remember? So share it, publicly. Maybe it’s by sharing articles and resources on Twitter or LinkedIn. Perhaps you might write blog posts about your learnings, create a video or podcast or put together a personal website. Whatever it is, make sure it shows your best YOU.

People respond to a genuine story, so don’t be afraid to share yours, audaciously. If you’ve taken the steps above, you’ll know who you really are, or at least be one step closer than you were. You’ll be that someone everyone wants to know. And when you’re in front of that important person, you are guaranteed to shine.

Screen Shot 2017-02-06 at 7.15.01 PM

Check out The Most Important Lesson My Sister Ever Taught Me by Huffington Post about Krishelle’s inspiring journey to becoming a software engineer and the Medium blog Graduating from Bootcamp and interested in becoming a Site Reliability Engineer? she co-authored where they provide a list of comprehensive resources for new bootcamp grads and those interested in a career as a site reliability engineer.