HARSH PRATAP SINGH

Working at a early-stage startup!

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.

Also, discuss everything over emails, not on telegram, discord, slack, etc. And negotiate, always! Over-confidence is better than under-confidence.

I dropped the thought of building company being in college

Don't trying building a company when in university! Either drop-out or take a year gap to iterate. Otherwise you will have a lot on your plate. Always work in a startup before starting one. Organizing an engineering team is really hard, and you will have to give them an optimal employee experience as well. They are an employee, you are a founder. So you cant expect them to work like a founder. Building accountability systems should be a priority. Raising VC money is extremely hard as a student. An accelerator program is not real progress (even if its YC). Do you really wanna do this, are you obsessed enough?

I was not. Period. Maybe some other day, some other time.

What I learnt about myself

Atleast for the time being, research will be on my cards. I really underestimated managing people. I am the god's chosen IC