Interviewing as a developer nowadays is at the same time pretty exciting — technology is playing a crucial and exciting role in our cultures and societies — and harrowing — tech companies are engaged in what I've often heard described as a "talent arms race." As a result, there are quite a few posts, talks, books, &c. about how to crack/solve/pass the coding interview.
This post isn't about the whiteboard or problem-solving end of things, where the company is evaluating you, but rather about the part where you get to evaluate the company. It's about that (usually) last part of the interview, where you get asked "Do you have any questions?"
If you aren't asking questions at the end of an interview (in any field), you're loading and firing two footgun shots right at yourself: 1) you won't know what you need to about the company to make an informed decision, and 2) you'll end up looking unprepared and uninterested.
Fortunately, I'll be giving you some questions you can think about asking during your next interview and you'll have no excuse to use that nasty footgun1.
Ask (These) Questions
(in no particular order)
What's an interesting project you worked on that you're proud of? One thing you really need to get a feel for is the sort of things that you might be working on. If you're going to be doing something that to you is mind-numbingly dull, that's a big deal. Finding out what people are working on and what they're proud of will give you an idea of what drives people at the company and what sort of work they tend to do.
"Can you give me an example of someone who’s been in a technical role at your company for a long time, and how their responsibilities & role have changed?" Some roles (junior, entry-level ones) are transitional or pass-through roles that you don't expect to have for a long time. However, you'll want to know about if/how/when other roles change over time so you know what to expect in the future2.
"What do a typical workday and work week look like?" This is crucial because if you come into a company with time expectations that are completely out of joint with the working culture, you'll be frustrated or even need to reconsider everything. Do you prefer longer hours? Work on weekend? Make sure you find out from the potential employer what's normal for them.
"How does engineering work get assigned & how are technical decisions made and communicated?" This gets at the heart of how the company "does" engineering. Are they top-down or flat at heart? Who do the requirements come from and how are problems approached?
"What's your favorite part about working here?" This will hopefully give you insight into what motivates people at the company. If someone says "the free food", you might want to ask someone else or consider why a perk and not the primary work are the best part of the job.
"Do you contribute to open source projects? Which projects? Which teams work on open source? Do you work mostly in the community or do you have a private fork?" This will give you a sense of how the company interacts and does or doesn't support the community. If open-source software is or isn't important to you (IMO it should be for everyone!), then this is a crucial question to be asking.
"How does professional development work here?" Does the company pay for conferences? Do they encourage continuing education? Are employees encouraged to speak at conferences? How many conferences a year do developers typically go to?
"Who will be supervising me? How do they tend to manage people?": Depending on where you're interviewing, you might get more or less information about who your supervisor might be.
"How do you help people grow and prevent burnout/plateauing?" Companies that dead-end or churn through their workers aren't places you want to be (I hope!). I want to know that the place I'm working is concerned with helping people thrive by encouraging growth and preventing burnout. Look for creative, structured, enforced ways that the company seeks to do these things — vagaries aren't enough.
"Do things get busier during a particular part of the year?" This will help you get a feeling for how you can expect your year to look, especially with regards to the holidays and when you might take vacation time.
"How do you approach problem solving?" Problem solving is the bread & butter of the engineer. Hopefully you can bring a unique perspective to the company you're interviewing for. If your and their approaches to problem solving are fundamentally different in a negative way, you can make a much more informed decision about working for the company at all.
"Do you allow for remote work?" This might be a make-or-break aspect for some developer and will be an increasingly relevant question going forward into the future.
I hope even just thinking about some of these things will better prepare you for your next job interview as a developer.
Looking for more questions? Check here for a much more comprehensive list.
Major thanks to Julia Evans3 and Jonathan Cuttrell4 for their great article(s) and podcasting! Their writing/thinking served as the collective inspiration for this post and for many of the questions I like to ask.
That is, if you finish reading ¯\(ツ)/¯ ↩
This is no guarantee of stability in roles/duties, but it can at least give you an idea of how things have changed as the company has changed or grown. ↩