This week, I complete 2 years at my present company (let us call it A). Long term readers of the blog know that I work at a corporate behemoth, one of the oldest in the software industry. I would like to take this opportunity to note down what made me choose working here, instead of the startup (let us call it B) I was an intern at. I will re-iterate a few points from a previous post. This post needs time to read, so come back later if you are in a hurry.
I worked at a startup. I loved it! I learnt a lot, met a lot of very talented and driven people and got inspired. But, I chose not to accept the job offer that B gave me at the end of the internship. Quite a few people considered me crazy, and some even lamented about the fact that I would waste my talent and energy at A. I knew that some of them would not understand the reasons behind this decision, while I explained part of the reasons to some others.
Work at B was very hectic. Most startups have a 6 day work week, and you do not spend the Saturday lounging about, chatting about the weather. I used to be in the office daily for about 10 hours, of which I can objectively say I worked for 8 hours. So, that leads to a 48 hour work week. Work at A can also be very hectic. But, for most parts of the year, it is not. I spend about 8 hours in office (when I do not regularly use the gym), of which I work for about 6 hours. And, it is a 5 day week. So that amounts to 30 hours.
By choosing A over B, I just added 3/4th of a day to my week. The additional 18 hours make a big difference. While working at B, I just had enough time to sleep and catch up with all the physical and mental exertion of the previous week. I barely managed time to attend a music concert a month. Live music, drama, reading books and hacking on weekend projects are my means of recreation. With A, this was a walk in the park. I got sufficient time to build friendships, which is a necessity when you live far from home. And I am pretty sure that I could not have volunteered for Barcamp Bangalore or it’s Delhi equivalent without the additional 18 hours.
There was another angle to the time factor that made me choose A over B. It may not be true about all large companies though. I never get an email or a phone call at 1 AM in the night, asking me to log in to some server and fix a misbehaving process. Late night cut-overs to new features and design was the norm at B. I understand that it was early days for B, and things might have improved with the new technology infrastructure.
For me, this was thankfully not a very complicated factor. Both A & B offered me a similar package. So, I was indifferent about this.
People believe that working at a startup is a gateway to earn loads of money 3-4 years down the line. This is true to a certain extent. If you are the co-founder of a company, or among the first few employees, you will be rewarded. You need to stick around to reap the rewards. Most of the other employees will earn by the market. Which is exactly what you would earn in a large company. The basic laws of economics apply here as well. Take risk to profit. Show cheek in a large company, get a difficult opportunity and pull off an amazing job. This will definitely get reflected in a stellar salary.
And, as a dear friend very succinctly put it, we all need money to put food on the table.
At B, I spent a good bit of time fire-fighting. The adrenaline rush is great, and you often find out those weird edge case errors that are so typical of working on the web (e.g.: jQuery and IE6). But, real learning only happened when I was working on the core of the product, on aspects that would pan out only in the period of a few months. This could either be about data structures and algorithms or just good design patterns. And, when you spend a lot of time fire-fighting, the stress gets to you. It may not be immediately noticeable, but your health is affected and a mental burnout is just around the corner.
At A, I have heavy work loads. Some of the issues I face are equally frustrating as those at B, because I test software before it is released to the customers. The ‘moving target’ problem, which is so typical of web, mobile and 3rd party API based startups, exists for this job as well. But, the number of different dimensions and variables I have to bother about are a lot lesser. This tends to reduce the amount of time I spend on working in the fire-fighting mode.
The maximum size of the database, while I was at B, was under 10 GB. Of those, ~8 GB was consumed by the usage statistics/tracking table. The number of entities involved in the entire model was less than 10, and the number of tables was around 25. When I set up a basic instance of A’s flagship software, the database hogs 50 GB. Customer systems that have been around for a few years comfortably occupy a few terabytes. The number of entities modelled is definitely a 4 digit number, and the number of tables is more than 50,000. But, I would rather not geek out, because there are more important angles.
B helped people solve a very basic problem, where should I go to eat. But, A tries to solve a thousand such basic problems for companies. E.g.: How can I ensure sufficient raw materials so that my company can produce the necessary amount of medicines. Or, how do I plan my logistics so that stocks of grains reach the most inaccessible villages on time. I am pretty sure that the difference that A makes to the world is way more than what B can ever imagine.
Being a startup, B could not afford to spend it’s money on sending me to trainings or conferences regularly. Now that I look back, most of the theoretical knowledge about web development I had back then, came from what I did in college. I did learn a lot about the practical/implementation aspects of web development. But, it was all a fragmented, incomplete learning. My first month and a half at A, however was spent in rigorous training, on the software. Some of that training was irrelevant for my job, but it gave me a solid understanding of how things work the way they do, and why are they designed that way. I got a chance to dig deep, not just cover a lot of ground. The learning was a good mix of theory and practical knowledge, and still continues to be. A invests in regularly training it’s employees, and it is not a lip service payed to keep the employee forum satisfied.
Making mistakes (I consider technical ones only here) in a company costs money, time and customer satisfaction (in increasing order of importance). A startup cannot afford to lose any of the three. A large company may afford to loose some of the above, and is a little forgiving. This leads to an immense difference in the outlook that people have to experimenting with things. Some of you would argue that there are more experiments in startups than in a large company. But, when you only have one machine serving the whole wide web, every keystroke that you make on the command line is weighted with caution and it’s impact is instant. On the other hand, if you have more than a few machines, you can afford to take one off it’s duty, and experiment with it.
The average age of the team in B was 24 (when I was there). The average age of my current team is 27. It isn’t really the difference of 3 years in the average that has an impact though. My manager, who moved up through the technical ranks, has 7 years of hands-on experience. Nothing can replace the intuition gained through such experience. The internet is a cool place to find bug fixes, but when it comes to getting mentored, it just cannot replace good old seniority.
I was also lucky that the team bonding and culture at both A & B were brilliant. Smart, driven people were around in B and are present in A. They keep me on my toes, forcing me to stretch just that little bit more. Despite the higher average age, my current team knows how to have fun, and pull the reticent me away from the keyboard.
I could add a little more about how I get to listen to amazing authors and brilliant innovators while working at A. I could also talk about how the gym at the office has helped me get into a (slightly) better shape. And choosing between Bangalore and Delhi was a completely different dimension. But, this post is already fairly long.
When it came down to choosing, I sat down, and scored both A & B on these dimensions. There were some factors where A and B scored the same, and there was one major unknown, the people. But, I took a leap of faith on that, and chose to go for A over B. I cannot claim that I knew everything I’ve noted above when I made the choice 2 years ago, but my gut feelings have been proven correct. I have never had any regrets, even when a really close friend left A to bootstrap his own startup.
- If you really want to find out who A & B are, it is easy enough. But, I do not want to make this into the basis for a mudslinging match for anyone. I think it is best that I do not directly name the companies involved.
- B has not been my only startup experience. I have done a summer internship in a very early stage startup. I was the first (or maybe second) committer to the svn repository there. A sample size of 2 is a little better than a sample size of 1.
- There has been a lot of discussion online about the hectic work ethic at B. I partially subscribe to those views, but do not agree with some of the extreme opinions expressed on forums like Quora.
- On that note, this Quora question is what got me thinking about posting this, more than a year ago. It stayed on the back burner, and was triggered by this article that I came across. Hence, this is also a response to both these articles, of which the latter pissed me off. I could have made an Ad-hominem argument about the 2 startups in a year, or gloated about the use of undemocratic language, or even talked about the cowardice of all of us in the IT bubble who do not work on solving problems of people (or have you forgotten that the term social existed before Facebook?) or work with machines that can maim and kill, but I prefer not to flamebait.
- Feel like commenting? Ping me on Twitter: @ni_nad