Luke Tao (he/him), a fourth-year Computer Science student, shares his co-op experience that has taken him coast to coast on his software development quest.
What year and program are you in?
I am now in my fourth year of Computer Science, and it is unexpected how my perspective of this program has shifted over the years.
While I am now more confident in my pursuit in an embedded and/or operating system-related field, I felt hesitant about my program choice entering university.
How many co-op roles have you had and where?
So far, I have completed five co-ops, and I took this chance to try many different roles. For my first three co-ops, I interned chronologically at Digital Extremes, Kaleidescape, and Huawei with respective positions as a full-stack developer, an application software engineer and a C++ developer. While I learned a lot from these experiences, I felt incompatible to either the role or the project.
For my two most recent co-ops, I worked on roles centered around embedded development at Sibros and Tesla and have felt much more excited. The first role was at Sibros, a vehicle-software centered startup based in Silicon Valley. Sibros's product ecosystem allows an entire fleet of vehicles to be logged, controlled, and updated remotely. This was a really fun time for me! The company had a very tight-knit team and I could feel everyone's passion for their products. During the four months, I designed and implemented many new features, including a new transmission protocol to double the packet efficiency.
Right after that, I did my most recent internship at Tesla, a US-based company that builds a leading brand of electric vehicles. I had the chance to work on a powerful, one-of-a-kind vehicle simulator, where I improved it to make Tesla vehicles safer. This was super exciting to work on, but it was also nerve-wracking knowing the changes I merged directly influenced the safety of cars on the road. Compared to other software positions, low-level development such as those involving core, OS, and/or embedded chips felt much more physically hands-on. I got to directly see, touch and interact with the things I built in the real world. To me, that is definitely the coolest feeling in software.
What have been your favourite parts of co-op?
The best part about having multiple co-op opportunities is that each of them introduced me to so many new perspectives.
This can be in the form of living in a new city that has a very different culture and geography or meeting fresh faces and joining them for their favourite hobbies.
In my recent co-ops in California, I met some of the coolest roommates and coworkers, who were not only incredibly talented but had such contagious passion for the outdoors. Just being around them helped me finally get over my fear of cardio. We went on to explore the wonderful outdoors (Yosemite, Sequoia, Death Valley, etc) of California with many others, who each had an incredible story to share.
Meeting new people is something I treasure greatly. One big thing I felt induced from being in computer science is being overly reliant on reasoning.
It is also amazing what these seemingly little things can add up to. As I gained momentum, I biked outdoor trails, learned to enjoy running consistently, competed in Spartan races, and exceeded personal goals in calisthenics!
What are some tips to balance work/life/hobbies?
Schedule your time. I use Google Calendar. My friends use Notion. Not having to rely on remembering your schedule saves a lot of time and effort.
This is especially helpful when you need to schedule something new and you want to make sure nothing conflicts with each other. The overview feature is also helpful in gauging how busy the coming week is, which gives you a better sense of what commitments to take and what to reschedule.
This has been a game-changer in managing my time. Try not to be afraid to fail.
As luck has it, there are going to be times when the reality differs from our expectations despite our efforts. And that is ok. If it happens and you feel down, take a breather, go for a walk, and talk to somebody.
What’s next for you?
I plan to use my last internship to try out a role in technical product/project management.
Although I have worked between user metrics and feature implementations, I am curious to switch gears and dissect products from the user perspective.
How can we best correlate user feedback and sprint goals?
What are the best metrics to measure success for different projects?
How can we best orient the remaining timeline to exceed quarterly expectations?
These are questions I am very interested in.