Deciding which companies to work for are one of the most important choices in our career. It defines our growth opportunities, present and future. We must select wisely each time.
Most people vet the role for this. What’s the salary range? What will be my title and responsibilities, based on the JD (job description)? What sorts of problems will I be required to solve? Which technologies will I use to solve these problems? Etc.
This is a solid starting point. But if we’re serious about our career, we need to go way deeper. We need to vet the company.
The business model
Do your best to figure out the business model of this company. How do they make money? How do they acquire customers? Are they B2B or B2C or something else? What’s the core offering? Why would someone buy it now? Will someone still be buying it in five years? Etc.
Business model can tell us a lot. Do your research and come to each interview (including intro) with specific questions. This not only gives you the insight you need, it also positions you as a business-oriented engineer from the very first conversation. This is a win-win.
Working for a startup acquiring new customers (app users) is a lot different than working for a corporation serving other corporations. A company with a 1-year runway is a different environment than a company with steady recurring profitability. Some business models require slow and deliberate projects, some require blazingly fast “experiments”.
Depending on the model, you’ll gain a completely different work experience and a set of skills. Understand what you’re getting into, before you join.
Technological maturity
What’s the engineering headcount? How aggressively are they hiring? What’s the system state at the moment? What are the biggest bottlenecks? What are the plans moving forward? Answers to such questions will give you outsized returns on insights.
You can start imagining your future here. These are the wider problems we’ll be solving. This is how rapidly (or slowly) the team is growing. These are the things I should expect upon joining. These are the side-effects of the environment.
Will you be a part of the team setting up core systems and processes? Will you be a part of the team working on a 10 years old codebase with 100+ contributors? Will you be migrating from a monolith into some other architecture? Will you be migrating back to a monolith? Will you burn out because the workload is large and there’s three people on the team?
Figure it out early. Stop the interviews if you don’t like the situation.
Culture
Most engineers avoid this topic, even though it defines their well-being at a company. Make a good estimate now to avoid future frustrations.
How are they treating you at each interview? Are people rude or interrupting you? How do they treat each other? What are the values they’re exhibiting? Treat it as a first date. This is likely the best effort you’ll get.
Sure, you may have been unlucky with a rude interviewer. But why work for a company which tolerates this behavior?