HARSH PRATAP SINGH

Working at a early-stage startup!

Table of Contents

So, I got hired at a startup at the end of my 2nd year at IITK, and man it was an intense experience working at a high growth startup! I was working, managing my academic workload and later started doing some cryptography research project under a cool prof as well, so hectic as fuck. But I loved every single moment of it. I learned about the experience of working in a startup, and some nuggets on what it takes to actually run a high-growth startup.

How was it different?

I had some internships under by belt which were also pretty solid experience technically, but not organizationally. In internship, I used to get a mentor assigned to me, I had to simply propose a timeline of how I plan to finish up the internship work and the mentor would guide me while I do the work, great if you want to improve technically. But the startup experience is totally different. I was not an intern anymore (umm… I actually was, but my CTO just trusted me to assign a project to me completely). People were actually dependent on my work. I found out that I am not that good at timeline estimation. And a lot of things don’t go the way you thought initially, especially when you work in a team.

When issues happen upstream (you are dependent on someone), shit hits the fan! People don’t reply fast, maintainers of OSS are really busy people, talking to Product Managers to reach out to devs responsible for the issue to the tech lead, getting the issue resolved, giving feedback to the managers, and then returning back to your own work. Unblocking other team memebers time to time. The hardest part is not technical, but communication and management.

Nobody is there to clean up your mess - technical debts, people who left the role, sudden breaking change in god knows what lib that you were using, … Reducing your bus factor is very crucial.

I was not working on a personal project! I can’t add any new dependencies, use a new language like Rust :) and implement new libraries that wrap something, and show that to the team expecting appreciation. Bad idea, always discuss first with the team, and then do stuff. Don’t try to be smart, and end up being a smart-ass.

Technical debt is not bad, but neglected technical debt is! Talk is cheap! Show us the code is a really bad idea! Maintaining the codebase is a large part of the job.

Also, the amount of time you will spend in meetings in just mindnumbing. But attending meetings is not a waste of time at all. Sharing the right information and mentoring juniors is absolutely essential. A culture of sharing information avoids the situation of a star dev in the team. And supporting your manager is crucial to manage you is crucial.

Senior engineers are often judged by the performance of the team they are leading, apart from their own performance. You will have to actively stay in loop on where the team is stuck.

As a student I used to think it’s hard to get hired. Well, it’s way harder to find someone competent and accountable enough to show up everyday with grit and determination.

But I guess, I just love the thrill of working in a startup, creating products that shoot to production fast! I am still waiting for the day when I delete my first production server as a cute intern :) The feedback loop and learning speed at a high-growth startup is just hypnotic (work life balance goes for a toss). Well, you will have bad WLB even in big tech these days, so not much of a loss. But I still wanna try Big Tech and Quants just out of FOMO once.

Wait before you sign that offer big boy

The easiest kind of offer you can aim for is an intern-to-full-time conversion offer. The intern interview process can be atleast twice easier than a full-time interview process. But observe the company very keenly before accepting that offer. A solid internship gives you levrage to get even better full-time roles if you are ready to take a risk and work hard. You don’t always have to accept the conversion offer.

Although I am just a student and have no corporate 10+ years of leadership experience, still some points that I have started to consider before accepting offer to join any company :

Now, I wish to work on something worthwhile, not just print money. This comes with a sense of entitlement that money is not hard for me to make. Great engineers are sought after a lot…

Also, discuss everything over emails, not on telegram, discord, slack, etc. And negotiate, always! Over-confidence is better than under-confidence (not humility) most of the times.

I dropped the thought of building company being in college

Don’t trying building a company when in university! One of my friends tried doing that, ended up failing courses here and there (but buisness going brr…). Either drop-out or take a year gap to iterate. Otherwise you will have a lot on your plate tbh. I would say, always work in a startup before starting one. Organizing an engineering team is really fucking hard, and you will have to give them an optimal employee experience as well. They are an employee, you are a founder. Repeat it 100 times, because you might be expecting founder level dedication from them, which is completely unrealistic. Building accountability systems should be a priority. Raising VC money is extremely hard as a student (even as a PHD). An accelerator program is not real progress (even if its YC). Most of the times you will be ignored/rejected warmly. Investors are in for their profits, and helping you is for that. It’s not the most helpful world out there when you are not branded. I have heard horror stories about VCs stealing real user insights from early stage founders and giving away to the companies in their own portfolio’s. So yeah, beware.

What I learnt about myself

Atleast for the time being, research will be on my cards. I really underestimated managing people. Enjoying Computational Sciences quite a lot!