Interviewing is not a one-sided conversation. If you land a job by only worrying about successfully impressing interviewers, you will almost certainly be surprised, and you may be unhappy once you start the job.
It is critical that you understand that an interview is not about making the company happy and fitting their mold, it is about finding a good match for both you and the company.
How do you make a good choice in choosing the next place to work? Simple, you ask questions! And how do you make the best possible choice? You put some effort in and come up with some great interview questions.
Don’t do what some of your crappy interviewers will do and google something random right before going to the interview, actually take some time and think about what matters to you.
There are obvious things you would want to know about a company, such as what hours you’ll be working, and how much you’ll be paid. But, there are also tons of subtle but important things you can figure out before receiving the offer.
If you don’t have a list of questions organized, The Joel Test is a great place to start.
I strongly recommend making your own list of questions, printing them out, and bringing them with you to every interview you attend.
You will not have time to get answers to all of your questions, but I recommend making an exhaustive and prioritized list of questions anyway, so you can work out the answers that matter to you or concern you as your interview process wears on.
I have my own list of questions that evolve over time. My questions are almost certainly not going to perfectly capture what truly matters to you on your next job hunt, so be sure to put some effort in and make your own question list.
From my experience, I would highly recommend getting as many details out of the recruiter up front, rather than waste everyone’s time if they’re not planning on paying well or have insane work hours, or whatever else.
It is also important to ask the following two questions to each person you speak to, no other questions will reveal more about the truths of a company, the culture, and the employees than these:
- What is your favorite thing about working here?
- What could be better?
Keep in mind that not all interviewers are honest (at times for fear of losing their jobs, sadly), so if you intend to deduce a not-so-great truth, it’s best to ask questions that require an answer beyond “yes” or “no”. For example, don’t ask if the interviewer likes working at the company, instead ask them what their favorite thing about the company is.
And, if you really want the true truth, ask for it like a detective would from separate witnesses, that is, ask the same question to each person who interviews you. In the best case, you’ll have a more robust picture of a truth at the end of the day, and in the worst case you’ll have different stories and know to avoid the company.
If you find that the company’s interview process is not welcoming to your questions, the company is telling you immediately, with perfect clarity, how they treat their employees and how much they care about this position.
Here’s my list of questions:
- location?, multiple offices?
- if far: telecommute ok? flexible hours?
- offer range?
- is the position full time? salaried? contract?
- if contract: expected length? contract to hire? 1099, or w2? paid overtime?
- is telecommuting an option, as needed, permanent?
- how much travel involved?
- team size?, division size?, company size?
questions for each engineer
- how long have they worked at the co?
- what is their favorite thing about working here? what could be better?
- are developers empowered to do their job?
- are developers empowered to speak up and get problems fixed? are other people (UI, business, mgmt, qa, ops, etc)?
- who do they work with? (dev lead, project manager, multiple managers, other teams?)
- how would they characterize the co’s culture?
- what is a typical work week like?
- how many hours per week avg?
- how many weekends worked past year?
- what are their responsibilities?
- what else do they recommend i ask?
- what would my responsibilities be?
- are there remote or telecommuting team members? if so, how is collaboration done?
- how is work split up amongst the team?
- how long has the project been in development, and when was the last release?
- how long is the current phase of the project codewise, and when is release ballpark?
- are subsequent phases of the project currently planned?
- how many projects or project releases are worked on at once?
- what languages, libraries, and technologies are used for the project?
- what dev methodologies are used, how long are project iterations? what tools are used?
- source control? what type?
- how is product, api, and code documentation? who does it? how often?
- builds: one-step build? nightly integration builds? automated tests run?
- how are product dependencies managed?
- how is 24/7 support managed?
- how are live deployments & support managed?
- what sacrifices are made when product completion nears? (pushed deadlines? cut features? cut quality?)
- are there annual busy or slow seasons?
- process tools? (scheduling, resolving I.T. issues, comm ticketing systems for other groups)
- dev tools? (OS, IDE, debugging, profiling, building & packaging, DB, libraries, dependency management)
- remote collaboration tools? (conference calling, im, video conferencing, screen sharing)
- live/test tools? (OS, deployment, monitoring, automated testing)
- documentation tools? (wikis, etc)
- work environment? (laptop, desktop, multi monitor, test hardware, etc)
test/live env questions
- is there a test env? how does it differ from live?
- is there a qa team?
- are there unit tests, or automated test suites?
- is there an automated build?
- are test suites automatically run periodically?
- what types of testing are done? correctness? usability? load/performance?
- does dev and qa write tests?
- is there a bug tracking system?
- how are live and test issues debugged?
- how is deployment done?
- what are some typical examples of issues found in live (scaling issues, data consistency, install/config consistency, etc)?
- are there quiet working conditions?
- how are career goals (advancement, raises, etc) managed?
- how does the company make (or plan to make) money?
- how is current funding?
- how often are layoffs?
- how much pto per year, and do people use it?
- what kind of team or company events are there?
- what kind of on-campus amenities are there? (food, beverages, pool tables, trails, sports, gyms, parking, etc)
- does company sponsor or encourage training, conference attendance?
- does company encourage contribution to open source?
- what are core hours? do all engineers work exactly 9 to 5? or do some come in ealier/later?
- relocation package offered?
- stock options? RSUs? vesting schedule?
- bonuses? if so, how (cash? stocks over vesting period)?
- signing bonuses?
- 401k? what kind of matching?
- other benefits (health, dental, vision, sabbatical, parking, etc)?