Perspektif: Karir di Startup vs Perusahaan Teknologi Besar (Bagian 1)
Penasaran tentang pilihan karir di sektor teknologi? Henry Tan berbagi pengalamannya bekerja di perusahaan teknologi besar dan startup.
Why do some people prefer joining startup than large corporations and vice versa? What are the important factors to consider?
How is it like working for an early stage startup, late stage startup, and a large tech company?
This article aims to share tidbits and perspectives of working in each of those three environments, based on my own experience.
Breaking the Cuff in Early Stage Career
One of the most challenging times to start a career may in fact be in the beginning. Getting fresh graduate jobs are very competitive as many will compete for the same entry-level positions and many prospective employers will ask for some job experience.
This is very similar to choosing which one comes first between a chicken and an egg.
Unless you graduate from top universities with good grades, the chance is that you have to work extra hard to differentiate yourself from the other fresh graduates. Considering some volunteer work or internships in the area of your study can get you through the first important barrier in your early career stage.
I broke the cuff early in my career through a volunteer work for an early stage startup that later gave me a co-founder and first engineer status.
One of the things that many prospective employers want to see from you is that you really enjoy what you are doing. Be passionate with what you are doing, talk about it, blog about it and practice it regularly. If you claim that you are passionate about developing mobile apps, they want to see that you enjoy developing a lot of apps and publish some of your best works to App Store.
Early Stage Startup
Working in an early startup gave me the experience to solve a real world problem by designing solutions in an end-to-end fashion. Writing code at every level of technology stack from backend (database, server) to the front-end (client, UI).
Typically, as an early engineer in an early stage startup you are in the driver seat with a wide scope of responsibilities. You have got to bootstrap the company cultures, decide the technologies and ultimately the initial foundational set of things for the company and be ready to get used to the 12 or more hours working day. It is your baby, you will do what it takes, be laser-focused and nothing else is more important.
Remember for many early stage startups, every day is about running as fast as possible and racing to get as many things as possible and keeping the dream that someday they will reach the finish line.
Resources deplete quickly and you cannot afford a lot of things to build from scratch. Open source is your friend and getting some extra money through grants or sponsorship would typically be the way you operate. You might not have enough funding for everything and you have to allocate it wisely. Often you have to wear a lot of hats: as developer, product manager, marketing and customer services.
If you are ‘lucky’ and working on the right idea(s) at the right time with the right target market coupled with the right set of people, you have the potential to change the world and be successful with your venture. In joining a very early stage startup, the payout can be very tremendous, but you might also get something that is worth nothing in real value.
Think big, dare to dream high, be optimistic and be confident but do reality check regularly.
Regardless, the experience to be part of an early stage startup can be a tremendous learning asset for the rest of your career; whether you do another startup venture or working for a large corporation. The experience and the perspectives you gain from doing this can be so invaluable and the only true way to earn it is by actually doing it.
Considering this option during the early stage of your career, especially when you have nothing much to lose, is nota bad choice at all.
Large Tech Corporation
Presented with an opportunity that was hard to pass, I moved on from my early venture and accepted a Software Design Engineer position from Microsoft in USA in 2006.
A new chapter in my career had started.
One big difference working for a large tech company like Microsoft is that I immediately got to work on products and services that were used by millions of users all over the world.
I learned a great deal of running and operating large scale internet services with the aim to please millions of the customers with 99.9% availability SLA (Service Level Agreement).
At Microsoft, we have the luxury of working on wide varieties of different products and services. Whenever you are ready to learn new things, there will always be other opportunities within different divisions. Learning new things and solving difficult problems are encouraged. In fact, those are good for one’s career growth.
With solid stream of revenues, you will typically enjoy more job security and financial stability at large tech companies. They empower you with the resources, incentives, and flexibility you need to enjoy success on the job and to live a healthy, balanced life. As part of self-development, you’ll have the option to engage in some 2,000 training programs taught by instructors from leading educational institutions and offered online, virtually, or in classrooms around the globe. You can’t beat the level of investment they place on career development.
Climbing the ladder is the rule of the jungle. It can be a very competitive and political environment. To some people it might be easier to consider starting your own startup and claim a high level position than climbing through the corporate ladder.
The perks can be quite overwhelming at first. Free sodas and unlimited supply of caffeine, special discounts on foods, gyms, entertainments, and company matched 401K, generous 4-5 weeks of annual vacation as well as flexible working hours, tuition assistance, deals on auto-financing and mortgages are not untypical benefits you enjoy from working for large tech companies in USA.
At large tech companies like Microsoft, you don’t typically – but not always – work on an end-to-end technology stack unless you are incubating a new project inside a small team. Often you have the luxury of going deep on a narrow slice of an area. In some circumstances, you are required to write code from scratch due to either technical or business reasons.
Some people get the chance to incubate new ideas and products from early stage and shipping to production. Often at large corporation, they would consider to build the technologies from ground up. For engineers this experience can be tremendous learning experience. Instead of using existing open-source technology stack, you might win a jackpot for a once-in-a-lifetime experience to learn and build certain technologies from scratch. For example, you might be working on building the technology stack of search engine, database technologies, hardcore distributed-system algorithms, cloud infrastructures, etc.
At Microsoft, I got the opportunities to work on three once-in-a-lifetime opportunities to incubate Bing.com BigIndex system a.k.a Maguro, Azure Machine Learning, Project Adam – distributed deep learning service.
At a large tech company with millions of customers, you are solving problems at the scale of running production system comprising tens of thousands or millions of servers. You might wonder, why we sometimes squeeze the performance to the metal. At this scale as little as 3-5% performance gain can have significant impact with potential of millions of dollars saving. If an open source technology written in Java boasting 100 query per seconds with hundreds of milliseconds as a state of the art, we aim for 1000 query per seconds with low millisecond or microsecond level latency. On some particular low-level system components, we often aspire ourselves on a nanosecond performance level.
With years of experience shipping products to customers worldwide, large tech corporations have established a good set of best practices that allows them run their business effectively and efficiently. At times, it can be a little too structured and rigid. Without them things can get easily turned into chaos.
[Continued in Part 2]
Henry Tan Setiawan is a Principal Software Design Engineer at Microsoft Research. He focuses on research and development of Deep Learning infrastructure and services (a.k.a Project Adam). He was leading the data classification tech team at BlueKai, the leader in AdTech Big Data company prior getting acquired by Oracle in 2013. He holds a PhD in Computer Science from University of Technology, Sydney. He joined Microsoft, Redmond, USA in 2006 and helped developed the Bing BigIndex search backend infrastructures and services (a.k.a Maguro) and contributed to the R&D of other large scale distributed services at Microsoft including, but not limited to, Azure Machine Learning, Azure Cloud Storage, and Messenger Server backend services.
Posts | Website | Facebook | LinkedIn