- Published on
What I tell my juniors about joining a startup
A lot of my college juniors ask me the same questions, and I keep seeing them repeat the same mistakes. So I decided to write all of it down in one place.
Everything below is what I've learnt about finding and working at early stage startups, mostly in the Indian market. I'll keep updating it as I learn more. This will be a long post but I hope it helps you in some way.
Looking for TL;DR? Skip to key takeaways
Should you take this path
You'll probably like it if:
- You want to grow fast and see the larger picture of the tech and possibly the business.
- You want to consider starting your own company in future.
- You cannot sit idle and do nothing. You live by the impact of your work and that's what drives you.
- You're willing to take calculated risks, work hard, and possibly not get the highest pay in the early years of your career, because you trust in the compounding nature of knowledge and money.
That last one is the real filter. It feels extra difficult the moment your friends are making a little more than you while also having a better "work-life balance". You're playing the long-term game here. If you don't wish to do this, you don't need to read further.
Having said this, there are a few good teams at MNCs where you can learn a lot. It's just that in a big company you generally have less say in the team or product you work with. If you do want to join an MNC, see if you can join a new product, because the reason most MNC teams are slow is that the core tech is already built and most of the effort goes into adding small features, maintaining, or selling it to more customers. Amazon is an MNC with many teams that make you grow almost like a startup, so you may consider that if you want something in between. But I personally don't like their culture based on what I know from my friends.
You can always switch between the two, as long as you match their expectations in terms of skills and prove it in the interview. I have seen people work at startups for several years and then switch to MNCs (Arpit Bhayani is a great example, and so have some of my batchmates), and I've seen the reverse too (Shobhit Gupta joined FamPay while I was there, after WhatsApp, Uber, and others).
Which funding stage to join
One of my mentors once told me that growth of working at a company is a step function of the funding rounds. So let's divide companies based on funding stages. Rough bands, so treat them as approximate:
| Stage | Raised | Team size | Users and revenue |
|---|---|---|---|
| Pre-seed | up to $150k | 2-4 people | Little to no users |
| Seed | $3-5M | 5-15 people | Few users (including unpaid), no clarity on long term revenue |
| Series A | $10-30M | 20-100 people | Good number of users, some clarity on revenue and PMF |
Anything beyond this (Series B, C, and up to IPO) shouldn't be called an early stage startup. Those are scale-ups or MNCs.
I'd personally advise freshers to avoid joining anything before Series A. There will be little to no mentorship, which you need in your early career irrespective of how good you think you are. A 4-person company doesn't have any to spare. But if you're really confident about the product and the team, give it a shot.
How to judge a startup before you sign
Most startups are a mess, pay very low, and don't grow fast enough. Prevention is better than cure, so be very critical about the one you're joining. It's very easy to get carried away by the hype and the "vision", especially before Series B. Do your research and talk to people who have worked there.
I'd judge it on three things:
- The team. Who left in the last year and why. Culture and work-life balance answers are honest only from people who have already left.
- The money. How much runway is left, whether revenue is real and growing, and what the pay bands look like.
- The founders. What they built before, and what their ex-employees are doing now.
On founders specifically, prefer a serial founder and look at how their previous company did. There are exceptions if you believe the founder is young but really smart, kind, and has a good vision. Note that you shouldn't fall for the pedigree college or company of the founders (IITs, IIMs, FAANG). I can assure you it doesn't increase chances of success in most cases.
When I say you should join a startup for growth, I really mean it. Not all startups grow equally well or fast. It's very important that you join a company that is growing fast so you can grow with it as well. Staying at a flat startup gets you the startup pay without the startup growth. Stay in touch with people at other good startups and assess if yours is actually a good one. Join local tech meetups and make friends who work at the best ones.
What startups test in interviews
Two things come up in most startup interviews.
Be good with system design. I'd suggest watching videos of ByteByteGo, Hussein Nasser, and Arpit Bhayani. The topics that come up most:
| Area | Must know | Good to know |
|---|---|---|
| Databases (most important) | Schemas, normalization, indexes, joins, ACID properties (esp. isolation), SQL vs NoSQL | Sharding, partitioning, replication, transactions, CAP theorem |
| Networking | TCP vs UDP, HTTP vs HTTPS, DNS, what happens when you type google.com in the browser | RPC vs gRPC, load balancing, reverse proxy |
| Operating systems | Processes vs threads, concurrency vs parallelism | Scheduling, deadlocks, virtual memory, paging |
| Object oriented design | Inheritance, SOLID principles | Design patterns |
Be decent with DSA, you don't need to be super good. Generally speaking, the smaller the startup, the easier the DSA round. Many startups don't ask DSA at all, search for "India" in this list. Being good enough with medium level questions on arrays and hashmaps, two pointers, linked lists, stacks, backtracking, bit manipulation, and common tree/graph/DP questions is sufficient for most startups. Note that competitive programming is very different from DSA, and that post also has the practice list I'd point you at.
Money, stocks, and the notice period
Never settle for a lower payscale because founders promise "growth" and stocks that are "worth" millions of dollars.
- Always be well paid, especially your base pay. When you're looking for a job change, almost all companies ask for your current payscale and give a raise on top of it. If your current payscale is low, most companies will try to lowball you. The damage follows you into every future offer.
- Assume your stocks won't materialize. Join expecting base pay plus a high compounding rate of skills. It's the growth you're after. If the stocks materialize that's great, but don't bet on it.
- Notice period must be
<=2 months, ideally1 month. Anything more can stop you from leaving if the company doesn't turn out to be what you hoped for.
Having said all this, I'd strongly suggest being loyal to your company if you believe it's actually a good one. No company is perfect. Startups are far from perfect and you need to fire-fight every day.
Further reading
- Career advice for ambitious undergrads, for the college years.
- Resume tips for early career devs, for the resume, applying, and referrals.
- FAQs related to GSoC, for getting started with open source.
Key Takeaways
- Your growth is a step function of the company's funding rounds. Pick a company that is actually raising and growing, because a flat startup gives you the startup pay without the startup growth.
- As a fresher, skip anything before Series A unless you're sure about the team. Mentorship is the one thing you can't get back later, and a 4-person company has none to spare.
- Negotiate base pay as if the equity is worth zero. Your next offer is anchored on your current one, so a low base follows you for years.
P(getting a job) = P(skills >= threshold) * P(luck). You only control the first term, so keep upskilling and keep interviewing.