paint-brush
36 Questions Every Software Developer Should Ask Potential Employersby@tomfern
1,134 reads
1,134 reads

36 Questions Every Software Developer Should Ask Potential Employers

by Tomas FernandezNovember 24th, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

If you're interviewing for a new job, don't forget this is a two-way process. You're interviewing the company as much as the company is interviewing you. Asking questions at the end of the interview is how you know if *they* are a good fit for *you*. Here are a few questions to find out about the company's state and what to expect next in the interview process. The best thing to do is to get a feeling for how the company runs.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - 36 Questions Every Software Developer Should Ask Potential Employers
Tomas Fernandez HackerNoon profile picture

Congrats on nailing that interview! You’ve prepared hard and aced all the questions. You can relax now.

“Do you have any questions for us?” says the interviewer.


Oh! It's not over, you realize. You’re expected to have some questions. Interviewers are not trying to put you on the spot. Neither are they just being polite. The truth is that you are interviewing the company as much as the company is interviewing you. Asking questions at the end of the interview is how you know if they are a good fit for you.


Are you interviewing for the job of your dreams or nightmares?


Here are a few questions to find out.

Questions to ask the recruiter

The first person you’ll speak with is a recruiter (or someone from human resources), who may not know all the answers, but they can generally get them for you. At this point, the best thing to do is to get a feeling for how the company runs and what to expect next in the interview process.


A laptop and a printed curriculum vitae Photo by João Ferrão on Unsplash

The position

1. Why is the company hiring?

A warming-up question to get a bit of context about the company's state. Is the position open because the company is growing, or are you filling in for someone who left?


2. What happened to the previous person in this position? Did they leave, or were they let go?

If you’re filling in for someone who was let go, it may be a good idea to find out what happened. What were the circumstances of the previous employee’s exit? Tactfully learning about past devs can give you insights into what the company expects from you.


3. What is your turnover rate like? How many devs were hired last year, and how many resigned? What's the longest and shortest someone has been on the team?

This is where we begin to hunt for flags. A high turnover rate suggests there’s something wrong with the working conditions at the company. You may not get a direct answer. But don't worry. You will have a chance to dig deeper into this issue in later interviews.


4. How does the onboarding process work? What are the next steps in the interview process?

Get the information you need to prepare for the next steps.

Life as an employee


5. Does the company invest in employee development, training, or certifications? Is there a budget for learning activities or assisting conferences?

It goes without saying that companies are interested in people with a drive to grow. At the very least, a company should give you enough time off to study or attend learning activities. They should get bonus points if they throw in financial aid for education.


6. Does the company allow remote work? How many days am I expected to be at the office? What’s the ratio of remote workers? Do you pay for relocation?

The pandemic has pushed workers to remote positions. Some companies are 100% remote, while others offer a mix. What matters the most is if the team you're joining is hybrid or fully remote.

With fully remote companies you can also ask if there are regular team-building gatherings, hackathons, or celebrations.


7. Is there funding for co-working?

Some people find it hard to concentrate when cooped up at home. For them, co-working is a good alternative when the office is too far away.


8. What is the parental leave policy? What is the policy on unpaid leave? What about paid time off like sick leave and vacation days?

If these were not communicated in the job description, you should ask what the company’s policy on time off is.

Questions to ask after the tech interview

At this point, you will probably find yourself talking to someone that can answer technical questions. These kinds of interviews can span various sessions, giving you the chance to talk to future colleagues, tech leads, or the CTO.


Take this opportunity to learn about work-life balance and the prevalent workplace culture. A lot of these questions are aimed at exposing red flags.


A screen showing close up code. Photo by Ilya Pavlov on Unsplash

The daily loop

9. How many meetings should I expect in a typical week?

Meetings are unavoidable, but some companies go overboard. We're trying to assess how much flow time we can expect to properly concentrate.


10. Do you practice CI/CD? What about trunk-based development?

Terms like DevOps, Scrum, Lean, and Agile have been abused to the point that they have lost their meanings. Continuous integration (CI), on the other hand, has a more rigorous definition. So the question is: does the company practice it or not? Not practicing CI or trunk-based development is a pretty strong sign that the company relies on manual work to build and test its software.


“But Tomas, of course, you would say that. You work for a CI/CD company, after all”. Yeah! But don't take just my word for it. The 2021’s edition of State of DevOps reaffirms the benefits of CI/CD coupled with trunk-based development:


“Similar to our findings from previous years, we show that continuous testing is a strong predictor of successful continuous delivery. Elite performers who meet their reliability targets are 3.7 times more likely to leverage continuous testing... Elite performers who meet their reliability targets are 5.8 times more likely to leverage continuous integration... Continuous integration, as defined by Kent Beck and the Extreme Programming community, where it originated, also includes the practice of trunk-based development.”

— State of DevOps 2021


Of course, there are places where CI/CD is not feasible. But 99% of the time it is the way to go.


11. How often do you deploy? How do you deploy?

We’re starting to dig into the state of the CI/CD pipeline. The thing you want to hear is that they do continuous delivery several times per day, as it implies a fast cycle time.

Unless you’re interviewing for a company in a regulated industry, manual and infrequent releases are red flags. They are signs of a slow and unproductive development cycle.


12. Do you practice TDD or BDD? How do you test code?

Test-Driven Development and Behavior-Driven Development are disciplines that lead to higher productivity and better designs. Whether you’re in the test-driven camp or not, you should find out how the team tests and designs. One of the gravest red flags out there is a company that does no testing at all.


13. How do you track bugs/issues? What would you say is the ratio between features and fixes?

We’re trying to discover the state of the technical debt. Technical debt results from prioritizing new features over fixing or refactoring existing code. Some debt is unavoidable, but accrue too much of it and there's a fair chance you’ll be in the unenviable position of extinguishing fires and triaging messy code.


14. What would you say is more important: don't touch a running system, fixing a bug or working on a new feature? What’s your approach to technical debt?

Try asking directly about technical debt, but also see how serious they are about delivering customer value.


15. How well-rounded is the documentation? Do you have coding style guides? Do you have an executable test spec?

Try to get a feel of the general state of documentation. Depending on the context, you can ask about API specs, design documents, style guides, user stories, and whatever documents support development. Insufficient documentation often means you’ll have to ask (and later on, be continually asked) for information in order to do your work. Tests such as contract and acceptance tests act as living documentation that validates that the code works according to spec and what has been agreed with the customer.

Tools and documentation

16. What version control system do you use?

If the answer is “none”, it’s best to move on and try a different company. Unless you're being interviewed for a team lead or engineering manager position. In which case, ask if they're open to implementing. If they go for it, you're going to have your hands full for a few months at least and it's going to be a difficult road, so factor that into your benefits or salary negotiations.


17. What stacks/languages/frameworks are you using?

Don’t worry if you’re not familiar with the technologies. You can learn any stack in a few weeks with good mentoring and dedication.


18. Can I use my ${favorite IDE}?

We all have our favorite tools, don't we?

19. Is there company-provided equipment? Will I have root access to my machine? Can I bring my own devices?


It might just be me, but I find not having admin access on my work machine disturbing. It shows that the company does not trust its employees.

Developer team culture

20. Why did you choose to join this company?

If you've built a rapport with the interviewer, ask a few personal questions. Knowing the values of the people you’re going to be working for or with is always valuable.


21. How big are the teams? What’s the ratio of juniors vs. seniors?

We’re aiming to get insights into the team's composition and size. If you are interviewing for a junior position and the team is composed of a majority of seniors, that's excellent news. There’s nothing more stimulating than being surrounded by people more skilled than you.


22. How many women work for you? What is your process for making sure you have diversity in other ways?

It might be a good opening question to discuss the diversity in the team. Tweak the question depending on the context.

Refrain from using this question as a form of virtue signaling. A much better strategy is to focus on the facts: evidence shows that a more diverse group gets better solutions.

I know diversity can be a charged subject, so try not to make judgments. Always keep the conversation unfailingly polite.


23. What's the biggest mistake you've made at this company?

I like this question because it’s deeply related to the concept of generative culture. A generative culture is one where risk is shared, novelty is encouraged, and people are not excoriated for failures (they are used as learning opportunities instead).

When people feel psychologically safe, they take more chances and experiment more, leading to innovation.


On the opposite side of generative, we have pathological or bureaucratic cultures. In such conditions, people tend to “play it safe” — lest they be punished for failure. It goes without saying that this is not a rewarding environment to work in or one that will likely be good for you, professionally and mentally.

Work-life balance

24. How many hours do people work in an average week? What time do people typically leave work?

The basis of sustainable work without burning out is getting home early enough to have a life. Long work hours can mean the team is unproductive and compensates by overworking.


25. What’s the on-call schedule like? What are standard working hours and your expectations for overtime? How often will I be on call? How often are there emergencies or times when people have to work extra hours?

This question complements the previous one. How much overtime happens in a typical month?

Lots of overtime, habitual weekend work, and infrequent or manual deployment are signs of an unhealthy work-life balance. If the company shows all these red flags, keep shopping around.


26. Am I expected to be online on Slack/Teams the whole time, or can I batch my work?

Much of my productive work is done while away from the keyboard. If you're like me, your best ideas come when walking or taking a shower. Having the chance to step out for a few minutes keeps us in a productive state.

Questions to ask the manager, CEO, or founder

Once the technical interview torture sessions are over, you will likely get access to a manager, the CEO, or even one of the founders. These are great opportunities to show interest in the company while learning how the company is doing in the market.


A man in a handsome suit descending stairs. Photo by Hunters Race on Unsplash

About the company

27. Do you have a playbook?

The playbook is the single source of truth for all the processes in the company. It describes how the company runs, ensuring that information is accessible to everyone. A playbook allows a new employee to quickly learn the ropes.


28. How do you make money? Are you profitable? How fast are you growing?

If you're interviewing for a startup, keep in mind that it will take a few years to be profitable — if they make it at all. So, you’re basically making a high-risk, high-reward bet.

Your professional growth will often map to the company’s. If you’re looking for stability and planning to stay for a few years, choosing an established company with a consistent cash flow is better.


29. What are the biggest challenges and opportunities the company or team faces now?

Open-ended questions like this can give you a lot of insight into the company's goals and the mindset of management. Check if your professional goals align with those of the company.


30. Where do you see the company in the following 5/10 years?

I find it one of the most challenging questions to answer. So, I think it’s only fair to return the favor.


31. How does the company set goals for the quarter/year? And what are they for this period?

Shows interest in the company’s goals and, more importantly, will give you an idea of what the priorities will be during this quarter or year. Are they using OKRs (Objectives and Key Results)? What are those for this period? If not, what criteria do they use, and how do they measure their success?

If there are no company or team goals, you’re either talking to the wrong person or with the wrong company.

About the position

32. What’s your definition of success for my role? What do you expect me to accomplish in the first 3 months? How will you evaluate my performance at the end of the trial period? How do you determine if someone is a poor fit for your company?

It's only fair to know how your performance will be assessed after the trial period.


33. How do performance reviews work? How does the promotion process work? Are performance reviews tied to raises?

You and your manager might have different definitions of success. Performance reviews align you, your manager, and the company. Scary as they can be, they facilitate the continuous improvement of people and the company. It is a moment for the manager to give feedback, recognize accomplishments, and provide guidance on career advancement.

Without performance reviews, there is no feedback and very little chance of advancement or raises.


34. How much autonomy would I have to decide what to work on? How is work prioritized? Is there any allotted time for side projects/experimentation?

We want to know who calls the shots. Take the chance to learn what the team is currently concentrating on.

You might be lucky and find a company that allocates a fixed time to work on side projects and experimentation.

Advancing your career

35. Will there be regular 1-on-1s with my manager?

You want these. 1-on-1s are enormously important to keep you and the manager on the same page.


36. Can I contribute to FOSS projects? Give talks? Are there any approvals needed?

For those interested in contributing to open-source or giving talks while working at the company. These are valuable opportunities for professional growth.

Conclusion

Some companies will try to show their best side to attract good candidates. Push past the sales pitch and dig deeper. Choose questions that resonate with your interests and keep asking them until you're satisfied.


Don't ask about things to which you should already know the answer. Check the job description, the company's website, and all the previous conversations to ensure you don’t sound like a broken record.


The list combines questions from several sources (listed below) and my own experience. If you need more inspiration, check the following links:

Best of luck, and thanks for reading!



Also published here.