Evaluating a tech job offer
Interviewing is hard. It's emotionally draining, mentally taxing, and time consuming. It often feels like the company is not in a hurry at all, dragging out multiple rounds of interviews for days or weeks, and then you finally get an offer letter. And it expires in a few days. The company offers to answer all your questions, but what questions do you need to ask? Just like you were painting the best picture of yourself, so was the company. How do you know what you're really getting into?
Like internet scams and car dealers, too much urgency can lead us to making a bad decision when it comes to a job search. Unfortunately, if you've been laid off, are worried about being laid off or fired, or work in a toxic environment, it's hard not to feel a sense of urgency. Only you can gauge your individual circumstances, and paying the rent comes first.
Clarify what it is that you want
First, you need to make sure you know what you want. What are the must-haves versus the nice-to-haves versus the no-ways. Trust your instincts and your experience, because, most likely, those things that were red flags to you at a previous company are still correct red flags. If there are things that you don't like, you need to understand that now. So write down that list of things you like and don't like about companies in your past. It might be details about how individuals on a team are expected to work together, or how two teams work together. Do you like small, scrappy companies? Publicly-traded companies? Remote, hybrid or on-premises?
Apart from your own personal list, I have outlined some things I think you should consider, some of which will likely overlap with your own. You should be able to learn some of these things with your own internet research, or you may have to ask directly. In many cases, companies will not share all of this information outright, but you may be able to get a general idea (which is better than nothing).
This is one of the biggest power asymmetries at play: you need a job and they have a job, but you can't know if it's the right job without getting detailed information. They already have the information they need because they made you go through 6 interviews, and you don't want to risk being troublesome because they'll just move on to the next candidate who is just easier. [My personal subtext here is that a good company with good people that you want to work with will be as transparent as reasonably possible, and companies that are opaque are probably not going to be great places to work]
Tech vs Non-Tech companies
Tech companies will tend to treat engineers as key players, whereas non-tech companies may view engineering as a very expensive cost center that they wish they could outsource. Because of that, tech companies tend to pay much better. But that goes hand-in-hand with competitiveness, not just in getting the job, but keeping it. Non-tech may be more boring, working with older technology, less competitive, and possibly more stable.
The Team and the Product
One thing to look at is company attrition. In particular, how long has the executive team been together, and how long has engineering leadership been in place? Everyone being very new could be a sign of "Company 2.0", which could be a positive time to join with a lot of great energy. But, seeing a lot of turnover at the mid-level or senior level could be a sign of unrealistic expectations, excessive corporate politics, unbalanced power dynamics, or a toxic work environment. Alternatively, seeing real duration across multiple people in leadership positions is a sign of stability and safety. One of the few negatives in that situation is that it can be hard to be the only new person trying to bring new ideas to the table. I recommend searching around LinkedIn for leadership roles in the org you're interested in at the company, and check the tenure of their directors, VPs, and CTO.
On the product side, I highly recommend that you use it before accepting the offer. Really use it. If you can't create your own account because of the type of product it is, ask if you can have access to a demo account. If they say they can't, it's probably still a positive interview signal that you tried. The point of this is to make sure that it's a product you want to work on for the next several years, that you can relate to it, and that you're reasonably happy with how well it works. You're going to be spending 8 hours a day working on it, so make sure you like it. You can't give your best if you're apathetic about what the application does. For a lot of roles, your personal needs may just not intersect at all with the product, and that's still okay - so long as you didn't find any red flags.
Code and Process
It can be hard to get real insight here unless you get to talk to someone who's actually in the weeds (try to do that with a staff engineer or manager). But they are still unlikely to expose all their dirty laundry to you. They want to sell you on the role, but they also don't want to trick anyone. So you may have to read between the lines. If you were able to use the app, and it's a web app, you can get some idea of how the app is constructed by looking at the client side code. This is so abstracted these days that it might not be able to tell you much, but it's worth taking a look.
There are also some questions you can ask that I think are reasonable proxies, and ones that are hard not to give concrete answers to. Ask for the version numbers of languages and frameworks being used. It's okay to be a little behind, but if the stack is running on obsolete versions, there may be a serious cultural problem. Is the engineering team completely overwhelmed? Do they lack the necessary experience or infrastructure to safely perform upgrades of their core stack? Or do they not have the political support to hold their ground on important engineering decisions? This area of questions may naturally lead into other code quality and team topics, too, such as security practices, testing, and automation.
Try to ask questions that are quantifiable. How long does it take to ship a feature? Does shipping a feature normally require multiple teams to coordinate? How many people work on a feature at once? How many deploys per day or week? Is there a QA team, or do engineers own the quality of their own work?
This can also be a segue into team processes. While not necessarily a signal of health, it can be an area to make sure works well for your preferences. If you hate Scrum, now is a good time to ask how they do Scrum (or not). How do they measure sprint performance? Try to delve deeply into it, if you can. There's usually a difference between what people think they do, what they aspire to do, and what they're actually doing. There's not a definitively right or wrong answer, it's about determining if how the team works is consistent with how you want to work.
Ask for metrics on the team: YoY growth and YoY turnover. How many people "from the beginning" are still there? How many "rock stars" are there on the team? Is there one guy who built it all 5 years ago and now there's a team of 10/20/30? Is he a bottleneck for everything? What is the distribution of senior, mid, and junior engineers? Are all engineers full-time employees, or is there a group of off-shore contractors?
Another area worth exploring is layoffs. Have they had any? How deep? And how did they treat those who were laid off? If you're there for 6 months and get laid off, are they going to give you 2 weeks of severance or 2 months? Some other number? Will they cover health insurance premiums for 6 months? This will also give you insight into how they treat people in general, and learn what their definition of generosity is.
Company metrics
This is probably the hardest area to get transparency during an interview, and it's also very easy to only be told the positive data points. But here are some areas to explore.
A non-public company is not likely to share revenue numbers with you, unless you're interviewing for an executive position. Your best bet is to ask about growth since it's easy for a company to sound positive about growth. But it's also important to try to understand where that growth is coming from. Some internet sleuthing may turn up some estimates, so it's worth a shot. In any case, publicly traded companies are less risky than private companies which are less risky than venture-backed startups.
CAC vs LTV. If CAC (Customer Acquisition Cost) is high compared to LTV (Lifetime Value), they may be using their capital to buy customers with paid ads and marketing. If LTV is low, then one scenario is that the marketing is really great at getting tons of customers in the door, but most don't stay long enough to get payback on the CAC. For example, if the company spends $20 to get a customer that pays $5/month, but they churn within 3 months, the company actually lost money on that customer (without even considering anything other than acquisition cost). So if the company is only talking about how many customers they added, and not about how many they lost, you're only hearing one piece of the story.
Revenue per employee and burn rate are two other related metrics, but also ones that a company is not likely to outright share. But, alternatively, you could ask how many paying customers the company has. Sometimes press releases for funding announcements will talk about this, too. You can also look at how much money was raised in the latest round, and ask about how much runway this should give the company. Add in a question (or research yourself) about how many employees the company has, and you should be able to construct a reasonable view.
As an example, if the company has 50 employees, averaging $50,000/year in salary, then you know that salary burn alone is $2.5 million/year. That doesn't consider additional employee overhead, marketing spend, real estate, or other potentially large expenses. But, generally, headcount is a substantial expense. If the company has 1,000 customers paying $50/month, then their ARR is $600,000. That would tell us that this is not a profitable business, it burns almost $2 million per year, and its survival depends on the funding rounds. If they just raised $5 million, then a static runway would be about 2.5 years. But, most likely, if a company raised money, then they are expected to grow as fast as possible. If their hiring plan includes doubling headcount, then that runway could be cut in half if new revenue doesn't also materialize.
To summarize some of the questions about metrics:
Types of startups
There are a few different kinds of startups and the type can shape the kind of work environment you're getting into.
Ask how many rounds of funding has the company has had. Crunchbase.com will usually have this information, and startups normally publish press releases when they close their rounds. But you can still ask about it directly to see how they message it. This will also help you understand where the company is at in their journey.
Series A Startup. If they talk about their "Series A" round, then they're still trying to find product-market fit. That also tends to mean that the company is not yet self-supported by its own revenue, and is dependent on raising money to stay alive. What that means for you is that the company is still trying out different ideas, and investors may have encouraged the founders to spend more than is fiscally responsible in the hope of doing more, faster. Be prepared for "we need to get this feature out ASAP or we die" moments. Potentially, be prepared for big pivots when previous ideas are not working as well as hoped for, and runway is running out. If you prefer to work at a place where the business model is well understood, generally avoid Series-A companies. But if you want to be in on the ground floor and help make that magic happen, early startups can be a lot of fun.
In the case of the latter, in my personal experience, I had the opportunity of being the first employee, and founding engineer, at a startup early in my career. Thankfully, the founders already had their business model ironed out and our CIO knew exactly what he wanted. It was the most powerful learning opportunity for me. For the first year, I was the sole software engineer and I built an entire stack of software to support the business. In only a few years I leveled-up from being a mid-level engineer to being what we would call a staff engineer today. That was only possible because of the responsibility and ownership opportunity that I was given, and that I was willing and able to take on. I was also able to work very directly with the founders of the company, and I learned so much about management from them that helped me pivot my career into people management, as well.
So if you're thinking of joining a Series A, try to really ascertain how much volatility there is in the product. While it can be incredible to get in on the ground floor, remember that most startups fail and do so disproportionately at the early stage.
Series B Startup. If they talk about their "Series B", then most likely they have product-market fit. The general goal post for a Series B raise is having $10 million in ARR (annual recurring revenue), so you can at least be assured that's there's an actual business.
The number of raises could also be a red flag. If the company is raising their 3rd series A in 6 years, be suspicious if they have really found product-market fit and this time is different. A side effect of these kinds of startups is that they have likely accumulated a lot of tech debt by moving too fast for too long and hitting a lot of dead ends of the years. But, positively, if they have been able to keep raising rounds, then there's something there, and hopefully they're close to finding that magic formula and having the business really take off.
Understanding how much many has been raised, and when, can also help us do some math later on.
Types of Non-Cash Compensation
If you're joining a tech company, most likely equity will be used as a big selling point.
Stock Options at a Startup. If the company is offering stock options, make sure you understand the strike price of those options. Sometimes a company will tell you the options have a value of $x0,000 without explaining that you still have to buy them first. Also, make sure you understand that after you resign, you usually only have 90 days to purchase your vested options (with your own money) before they expire.
Let's try an example. Your offer letter includes a stock option package worth $100,000, vesting 25% per year. This is for 20,000 options with a current value of $5 each. The strike price is $3. This means that after 4 years, at the current value, you would need to purchase your options for $60,000 and net $40,000 (not $100,000). You will also need to pay taxes on the spread as normal income in the year that you exercised them. But also:
I would seriously urge you to value stock options at $0. The probability that you will have an opportunity to exercise options at any meaningful value is near zero, unless you are a very early employee at a startup. The average tenure of startup employees is well below 4 years, and unless an IPO is on the roadmap, it's unlikely there will be a liquidity event before you move on to the next opportunity.
Having enough cash to purchase options and potential pay tax on those options, with the huge risk of those options decreasing in value (possibly all the way to zero), makes them a non-starter for most people. With the exception, as stated above, that you stay an employee until the liquidity event happens.
Private RSUs are a step better in that they are granted upon vesting and you don't need to buy them. They are still subject to vesting, dilution, and a liquidity event, though. But if you leave a company with vested RSUs, you still have them.
Public RSUs, of course, are the best. The value is transparent and known, but you will need to pay taxes upon vesting. Publicly traded tech companies are well known for generous RSU packages. Non-tech companies generally don't grant stock to non-executive employees.
Vesting schedules are usually 25% per year, with a 1-year cliff. Meaning, you must wait a full year to get the first 25%, but thereafter stock generally vests monthly over the remaining 3 years. You would need to stay 4 years to vest the entire amount. If stock refreshers are being granted, then each year those refreshers are granted, there is a new 4-year vesting schedule tied to it.
In summary, you want to take the time to check several areas in more depth. As someone who has done a lot of hiring, a potential hire who asks detailed questions has never left a bad impression on me. It shows thoughtfulness, and it makes me feel better when I know that a potential employee understands what they're getting into.