Working in a Startup Company [2019 POST 1]
I would like to start this post by explaining why I always wanted to work for a startup company rather than a large, established company. When I was an undergraduate student, I was interviewing with senior year students about their summer internship for a student technology magazine. In one of these interviews, I encountered with a student who got an offer (also did an internship) from Facebook and Google but chose a small startup company. Until that point, I was reading/hearing people are making millions of dollar by starting a company (e.g. Facebook, or local startups such as Pozitron, Peak Games) but I never thought about the difference between startups and other companies. This guy told me that he wants to work for a startup because it will allow him to make a big impact in the product, unlike large companies where you try to fix a button hidden somewhere in a large application. He also mentioned the stock option that gives you an opportunity to have financial benefit if the company becomes successful. I think this is the closest work setup to starting your own company that I may talk about in the far future. All in all, that made a lot of sense to me at the time.
Today, I am part of a startup company in NYC as I planned since junior year of my undergraduate years and I would like to compare what I have expected and what I have found so far. First of all, the guy was totally right about having a real impact on the product. Release cycle of the product is so short, which allow you to see your first contributions on a customer after a month. Teams are small (3–4 people) and the responsibility of developing the whole feature is given to a team. That means you will either contribute to the feature as implementer or reviewer and in a couple of months, a customer will use a whole feature that you have contributed. As you get older in the company, you are getting more confident and knowledgeable on the product and you are given the responsibility of more critical features regardless of your total software development experience (Note that there are always senior engineers to verify your work).
Let’s jump to the technology side of things. Most startups follow the latest technology and their product uses many open source projects. That allows you to be up to date with trends and you are even encouraged to contribute some of these open sources projects. It is a valuable experience to contribute a well managed open source project because you can observe the state of the art software development techniques used by open sources community. I am calling it to state of the art because managing a project for ten years that is contributed by hundreds of people that do not know each other is really hard. Especially, when you think that creating an efficient working small team requires well-established processes.
Even if you work with the latest technology, I think most engineers feel like they are doing the same work again and again after they become somewhat expert on these technologies. However, there are always hard problems that you can solve to improve the product and in a startup, you are always encouraged to come up with new solutions to hard problems. That means you can do your side investigation without interrupting your regular workload much. If you find anything useful you can share with the team to get some time for further investigation or implementation. These are generally non-blocker problems. If the problem blocks an important feature in the product, then the whole team starts a larger discussion for a better and immediate solution and your opinion is taken into account.
I think, in a startup, you become a small group of people focused on a single target and you feel like you are a large one team. Those effects communications among people a lot. They are being really helpful and there is excellent cooperation among colleagues. For a junior engineer like me, this is a great opportunity to learn because senior engineers will always answer your question and most of the time they will try to give more information than what you asked for. They know that having better engineers will help them a lot in long term.
Another thing I like about startups is transparency. You will know about how the company is doing, how many customers do you have, things that are good, things that are bad, etc. You may not bother with these details but in general, it felts a lot better to know about the large picture while working on one of the features in one of the products.
I know there are millions of blog posts that talk about similar things again and again but this post is more like a note for my future self. I still feel like there is a lot to write about startups but I will stop here for this post.