Someone recently asked me what questions they should ask when interviewing for a software engineering position. Here are some of my favorite questions based on my experience as an interviewee, interviewer, and hiring manager.
My top priority when asking questions is to assess how well I’d fit into the team/organization. As a side-bonus, asking good questions also allows me to communicate my values and interest to the organization.
Early on in the interview process:
These can be asked at the end of a technical / behavioral interview.
- What has been your team’s biggest accomplishment in the last year? This gives you a sense of what the manager and the team values, how they plan (lots of little launches vs big launches), and how they celebrate success.
- What are the most interesting challenges that your team is working on in the next 6 months / year? This gives you a sense of how quickly the team moves. At a large company, a project that might take a few weeks in school can take months. It will also tell you what interesting engineering problems you will learn to solve.
- What’s your favorite part of the team? What do you wish could be better? Different answers I’ve gotten about favorite parts of the team: everyone is really smart, the team is really supportive of each other, everyone’s really professional, people are really passionate about the product — every response helps you picture what sort of environment the team is.
Later on in the process, to your manager:
Ask these in interviews when you’ve passed the initial screen and are assessing team fit.
- What’s your perspective on supporting women engineers? The amount of nuance that your manager gives you will tell you how much they think about this as an issue. A standard response may be about maternity leave. Managers who have thought about it more may mention more things such as meeting norms, sponsorship, women’s specific groups within the company, examples, etc.
- If the previous question goes well: What’s your experience growing and developing the careers of women on your team?
- Can I speak with one of the female software engineers in the organization?
You can also ask similar questions other groups that you’re curious about: e.g. LGBT, people of color, other minorities, etc.
Later on in the process, to anyone on the team:
- How would you describe the team culture? Would you describe the team as chatty and social versus professional? What does the team do together? I like hearing specific examples of what the team does together. This will allow you to gauge whether the team fits with your lifestyle / social needs. For example, some teams might go out to dinner together biweekly and hang out socially after work, while other teams are strictly 9am-5pm work affairs.
- What’s the developer experience like? Any honest answer should include pain points because there are always pain points!
- What hours did you work this past week? What hours do people typically work on the team? Helps you get an honest answer of what hours to expect. I’ve interviewed at places where I’ve found out that everyone works 55–60 hours. For those interviewing at startups, I would avoid places that glorify working long hours, or at least dig deeper into how the team approaches project/product management.
- How do decisions get made?
- How does this team fit into the organization’s goals?
- How quickly has the team grown? What is the turnover of the team like?
A final tip for new grads
Don’t worry about asking all of these questions. I would pick a few that are most important to you. You can also spread them out across different interviews.
You will be able to grow and learn in many positions! Every team has trade-offs. It’s only with experience that you start to understand yourself and identify what’s most important to you in a job/team.
I’ve been hiring a lot for my engineering team at work (contact me if you are looking!) so this has been on my mind.
Here are some strategies for engineers & engineering managers to build a more diverse pool of candidates from which to hire.
- Understand different kinds of diversity: Diversity is a catch-all term and it’s worth considering what you are thinking of when you think diversity: Race? Nationality? Gender? Sexuality? Neurodiversity? People with non-traditional work backgrounds? First-generation college students?
- Start as early as possible: If you have diverse people on your team from day one, these people will help build your team’s culture & practices and it will be easier to create an environment that supports and attracts diverse candidates in the long run. When I interview, a manager who has a diverse team appeals to me because it means the manager and the team are more likely to value & have experience working with diverse people.
- Network: Find people in underrepresented groups and ask them if they know any folks who might be interested in joining your team.
- Reach out to groups: Find lists/meetups/Slack groups for underrepresented groups and contact them!
- Reach out to people directly: Send 1:1 emails rather than blasting mailing lists.
- Meet people & groups face-to-face: Attend these groups and gatherings in person! It’s much more meaningful when you and your engineers take the time to attend these groups in person — so few people do this that this will surely make your team stand out. Even better is if you have teammates who regularly attend and/or are members of these groups. Recognizing and making it easy for people to do this can help!
- Know & explain why you are interested in diversity in your job listings: In your job descriptions, explicitly state that your team values having a diversity of perspectives and lived experience. Explain why diversity is important — this is all about showing that your team makes diversity a priority rather than just trying to hire for diversity as a nice-to-have for diversity’s sake. It makes all the difference for a candidate if they know that their manager/team will go the extra mile to make sure they are successful.
- Write inclusive job descriptions: Scrub your job post of gendered pronouns. Use language such as “preferred experience, but not required.” This article explains more about how to do this.
- Proactively create an environment that helps diversity flourish and call these practices out on your job listings: Call out family-friendly policies, employee resource groups, mentorship programs, etc.For example, most teams would say that they value gender diversity, but it’s one thing to pay lip service and another to go through the effort of unconscious bias training, dealing with the possibility of having to give people uncomfortable feedback, redesigning hiring practices, adding stork parking, and proactively-checking that team events appeal to people of all genders.
Thanks to Sumana H., Matt W., Nancy Ouyang, and Eric D. for the idea brainstorm!
These are my opinions and not those of my employer.
I attended the Recurse Center last year for one week in a mini batch. It was a great experience and I highly recommend it to all my friends!
What did I do during my week at RC?
- Make my first PCB
- Finally teach myself Kicad
- Learn how to & mill my Kicad PCB design in an Othermilld
- Learn about PCB etching
- Visit NYC Resistor
- Practice pair programming on some audio processing code
- Make awesome new friends!
What did I get out of attending Recurse Center?
- Made awesome new friends! Recursers are people passionate about programming from all over the world. Because RC is a retreat, it was more intimate than a conference.
- Reconnected with my love of programming!
- Worked on side projects in a supportive environment: I learned so much more than I would have working on side projects at home just via conversations and being exposed to random people’s enthusiasms
- Joined a wonderful supportive, diverse community: There’s a Zulip for RC alumni for staying connected afterward and there’s Never Graduate Week every year for alumni.
- Exposed myself to positive engineering culture: RC has an engineering culture to aspire to and proves that this kind of programming environment is possible
- Visited NYC
- Got perspectives outside of the Silicon Valley start-up scene
- Learned a lot about different programmers’ perspectives:
Who might enjoy attending Recurse Center?
Lots of people who love programming! Here’s some specific situations where RC might be a great option (by no means a complete list).
- People who want to take some time off to work on a passion project e.g. video game, data analysis project, etc.
- Also summer interns & new graduates looking to take some gap months
- People burned out on their industry jobs who want to reconnect with their love of programming
- People who are seeking diverse programming friends
- People who are just starting out and exploring the programming landscape
Tips for future Recursers
Getting the most out of RC as a hardware-leaning Recurser
Most Recursers are pure software-based programmers. Here are some tips if you plan to attend RC, but are more interested in working on the more embedded/hardware side of things.
- Having a programming periphery skill means that you have a lot to teach others — look for people who want to learn. I met some folks working through nand2tetris and got to share my love of ALUs!
- If you want to be on top of things, spend the week before RC doing some prep, getting parts, etc.
- If you are not on top of things, plan to make a trip to Tinkersphere where you can buy parts in person. Note that they do not have readily accessibly CAD drawings of many of their parts, so you will have to replicate it on your end.
- Definitely visit NYC Resistor while you are in town
- People are excited about Rust! It’s a good opportunity to learn Rust! I bet it would’ve been also a good opportunity to play with MicroPython
Having a successful & fun RC mini experience
- Decide what your priority is for RC and focus relentlessly on that
- Stick it through the first few days: the first two days at RC were overwhelming and felt like some sort of extended networking event. It gets better once you get the introductions aside I promise!
- Be realistic — for me, this meant being honest that my priority was to be rejuvenated by being in this positive environment. This meant that I spent more time connecting with people. I’m lucky that I did get time working on programs.
- Sign up to give a mini talk
- Go to dessert club. The desserts in NYC are amazing! We went to Spot Dessert Bar
- If you can spare it, buy a flexible plane ticket because you will not want to leave. 🙂 I ended up staying a week longer than I expected.
- Attend a Broadway musical’