In August 2014, I had the opportunity to work at an edtech startup called Zeal Learning as a front-end web developer. Before diving in, let me explain about the “Zero” in the title of this blog post. Considering that I am a Computer Science undergraduate, most people would have expected a certain pedigree at work, even more so in the Valley I suppose. However, this is my very first internship of any kind. Apart from assignments in school, I have never worked on production software. But still, everyone involved in my application process (from school to Zeal) took a gamble and gave me this amazing chance to work in one of the most magical places in the world.
During a video call some time prior to arriving in Palo Alto, my CTO touched on the brief history of the startup then moved on to talk about my role of taking charge of the student web product. He mentioned that I will work on the front-end using AngularJS and I remember vividly thinking to myself, “What is that?”. In retrospect, I did not even know much about JS let alone a framework built upon it. I did not even have a GitHub account and have never used Git before. I had no idea what Emacs was. I had never done software testing before too. And I am not even including the many intricate details of software and web development.
Throughout the year, I worked on weekly sprints to improve the product, either fixing bugs or adding features. I had to pick up a lot of things on the job and Google was my best friend just like in school. I was also fortunate to have experienced and patient colleagues around me who are willing to lend me a hand or give advice on how to solve certain problems. Several months later, I was comfortable with the code base and churning features out quicker than before albeit with bugs occasionally. In the later part of the internship, I was also involved in setting up logging using Sentry and Mixpanel as well as UI and Unit testing with Selenium and Jasmine.
Other than gaining technical skills, I also learnt about working in a diverse team. We held daily scrum meetings to update each other about work progress. In addition, I took the opportunity of working with my successful CEO by observing how he ran the company and made decisions day to day to gain some non-technical knowledge.
Fast forward about 300 days later, I can confidently say that I am a software engineer. I am definitely just scraping the surface of software development and there is still so much more to learn.