What questions to ask your potential employer?
Sooner or later each of us starts looking for a new job. Reasons can be different. Higher salary expectations or maybe you want to get more responsibilities. It just happens and it's ok. You check open positions in companies around and start interview processes. Interview process mostly focuses on evaluating your skills. Technical skills, communication skills, leadership skills and so on.
The only problem with that is that after hours of wasted time talking about scalability, ideal code, computer science problems you join the company and see that process are shitty, architecture is shitty, the code is horrible, teammates are not motivated, and there is no team spirit, no product vision and so on. (Of course, I'm exaggerating)
To prevent that situation from happening, you should turn the interview process in a two-way conversation. Take the initiative and ask your questions, questions that are important for you. My personal formula is to evaluate three pillars of a good company: Product Vision, Technical Vision, Team and engineering culture.
Three pillars of a good company:
- Product vision
- Technical vision
- Team and engineering culture
Product questions:
- Tell me more about your company?
- What is the company mission?
- Tell me more about your product?
- What are the current priorities and challenges?
- What is the plan for the near future? 1 month, 3 months, year?
Teamwork:
- What is your team size?
- How stable team is? Is staff turnover high?
- What are the different roles in the team? I want to understand team dynamics and what will be my role in the team.
- What are the biggest challenges for the team now?
- How do you keep people motivated? How do you inspire people?
- How do people make decisions in the team?
- How flexible are you? Is remote work acceptable? If yes, is the office equipped for remote work?
Expectation from you:
- What do I need to accomplish in my first 30-60-90 days?
- What are the biggest challenges for me?
- How does the day-to-day work look like for this role?
Technical general:
- Tell me about your technology stack?
- What is the code quality? Do you have any metrics?
- What is your development environment? Can I run everything on my laptop? What do I need to work remotely?
- Acceptance testing environment. How is it structured?
- Do you practice code review and pair programming?
Frontend:
- How do you structure your application?
- How do you write your styles? ( Methodologies, CSS Modules, Styled components )?
- How do you manage state in your app? Redux / Mobx? Async actions?
- Do use storybook?
- How does your app communicate with backend?
- Do you have server-side rendering?
- Is your app a single page application?
- How do you build your app?
- What style guide do you use? What linters do you use?
- How do you test your software? (unit, e2e) Code coverage?
Backend:
- What technologies do you use on the backend?
- What communication style do you use? Rest? Graphql? gRPC?
- How does caching work on the backend?
- Do you have data validation on the backend?
- How do you store your data?
- How do you collect metrics and stats?
- Do you use Prometheus / Graphane?
- How do you store and manage logs?
- How do you test? Unit, Integration, Generative testing?
Infrastructure:
- How do manage infrastructure?
- How do you provision your machines?
- Do you use containers?
- What is the deployment model?
- Do you use any orchestration platforms? K8S / Mesos?
- How do you CI / CD pipeline look like? Jenkins / Gitlab pipelines / Code pipeline?
- What cloud providers do you use?
- Do you use your own machines?
Culture:
- What is the onboarding process?
- How does the interview process look like? Pay attention to details.
- Do you have any internal activities and events?
- Do you have exploration days? Hackathons?
- Do you organize / support meetups?
- Do you support open source projects?
- What is the conference budget?
- Do you provide training programs?
Final points
Make sure you did your homework preparing for interview:
- Get as much information as possible from public sources
- Contact people from that company directly and ask question about current situation
- During interview take initiative and ask questions that are important for you
- Pay attention to all small details during all stages of interview process
Good luck!