12 weeks. That was fast. My internship at Ooyala flew by, and I was having so much fun that it was difficult to update this blog. I can say with 100% honesty that this internship has been all I had been hoping for and more. I have been able to get valuable programming experience, see how a company works from the inside, meet great people, and have fun all the while. Rewinding back a bit, I’d like to go through the general arc of my internship.
The beginning consisted mostly of getting up to speed, setting up my environment, and getting adjusted to the code base and Ruby. As some time went by, I was able to jump right into the sprint tasks (every two weeks our team meets up and breaks down our goals into tasks). My team was very supportive and let me just jump in on anything I wanted to just like a full-time engineer. I took some small chunks at first to just get acclimated. It was a bit slow going at first, the code base seemed gigantic and intimidating, and I was working in a new language. Google was certainly my best friend and I asked lots of questions. But before I knew it, I was getting more and more comfortable and working on some important enhancements and products for the analytics backend. What became clear to me very quickly was that programming, if thought of as any other language (like English or Korean) , is as much about reading as it is about writing. I spent 90% of my time reading code and figuring out how it works, what the abstractions were, new syntax, etc. At times it was painful, but it was clear how important of a skill it was. I had to be able to look at completely foreign code and understand it well enough to make improvements and add features to it. It felt like sort of being thrown in the deep end, but it was a fantastic learning experience, and in the end, I was able to contribute to the team and knock out lots of tasks.
Beyond reading code, I got to see first hand how important it was to be a good communicator. It’s something that is obvious, and you hear it all the time. You need to be able to convey your ideas well and interact with co-workers. MIT, or at least course VI, has placed a strong emphasis on communication so that the engineers it churns out don’t just tool away on their computers and bread boards all day. While I am unsure how much this emphasis has helped me personally, it certainly kept me more aware of it. After working in a company for the first time, the value of being a good communicator as an engineer is obvious. You need to be able to ask good questions, give good presentations of your work, send good emails to higher-ups, explain technical things to sales in an understandable way, participate in meetings, give feedback, the list goes on and on. After seeing how important it was at Ooyala to be a good communicator, it certainly made me appreciate MIT’s efforts to work on that portion of our holistic education as well.
I eventually started working on a product that will be released very soon. I owned most of it the code that had to be added, and it involved the full stack of our analytics code which was really cool. I was modifying code in the ActionScript/HTML5 players, Ruby backend, MySQL calls, and other places. It forced me to get good at reading code fast and being a very agile engineer (pun fully intended). Another awesome part about this time wass that one of my best friends from MIT had started his full-time position at Ooyala as an associate product manager. And to our luck, he became the product manager for my analytics team. It was great to work closely with a friend on a real product, and through him, I was also able to get some perspectives on how the company functions on a higher level/management perspective.
It wasn’t just all work though. Ooyala has a fantastic laid back culture while maintaining rigor in its operations. If I improved my programming skills by x, I probably improved my ping pong skills by 3x. We also had two awesome off-sites. First, the big data team (the analytics team I am on is one of three groups within big data) got to go paintballing. Nothing like bonding with co-workers by shooting them. A few weeks after, the VI-A interns and our mentors got to go go-karting as well. Ooyala clearly places an emphasis on keeping employees happy, and I certainly was.
For the last three weeks of my internship, I decided to do a Newyala project. A Newyala project is a chance for an engineer to work on whatever they want for one sprint (which is two weeks, but I got three since my internship ended halfway through a sprint). Along with a full-timer in my group, we worked on an exciting new architecture for the analytics pipeline. While I can’t go into details about it, it potentially foreshadows the future of a completely new infrastructure for Ooyala’s analytics as it grows and needs to scale. It’s exciting that I may be part of the groundwork for something as big and awesome as that!
Leaving Ooyala and California will be truly bittersweet. I have learned so much in just 12 weeks, and have enjoyed the time with my co-workers, as well as with my other friends in the bright Cali sun. But I am definitely excited to go back to school! Besides meeting my friends of course, I am excited about the classes I will take. From Ooyala, I learned I have some interest in distributed systems and would like to tailor my coursework towards that area. Hopefully, this will better prepare me when I return to Ooyala after graduation and start working on a thesis.
I’m extremely grateful to both Ooyala and VI-A for giving me an extraordinary Summer experience and I can’t wait to come back!