2020 Retrospective

2020 was one of the most challenging and formative years of my career. Between internships, academic projects, teaching, research, and job interviews, I learned as muhc from setbacks as successes

  1. Summer Internship
  2. Cloud Computing Project
  3. Teaching Assistant
  4. Research Assistant
  5. Job Interviews

Summer Internship

I joined Foundation Devices, a pre-seed hardware startup, to work on an early version of the Passport bitcoin wallet firmware. The first firmware was a proof of concept to show investors. Towards the end of my internship, the team started reworking the firmware to prepare for the open source release and to conform to MicroPython specs. A few features I built made it into the public release, including a keypad driver with event buffering, display word wrapping, and error logging to MicroSD. It was my first exposure to the pace, trade-offs, and resource constraints of early-stage product development.Only some of my contributions went into the public version, but it still feels great to have features I worked on end up on a real device.

Added

Removed or Replaced

  • Pytest - Most of the unit tests I worked on were replaced or removed. At the time, my goal was to get tests to run, so some of it were tests we didn’t need.
  • UI fixes on the firmware simulator - I fixed bugs on the simulator, such as flickering screens and wrong LEDs. The simulator isn’t ready for release yet.

Cloud Computing Project

The highlight of my Fall semester was working on a project for the EC528 Cloud Computing class. I was part of 4-person Agile team developing a CI/CD pipeline on OpenShift, for Python web APIs. I worked with a four-person Agile team to build a CI/CD pipeline on OpenShift for Python web APIs. The class and the project changed the way I thought about computing in general. I also got really good at making and presenting Google Slides, as we had to present a demo biweekly.

I took initiative and handled pretty much all the project management and product design. Doing this helped my teammates focus on writing code and delivering features. Taking upon these responsibilities was a good way to test whether a technical PM role would fit me. I’m exploring this possible career path.

Another great takeaway from this class is that I now have more stories about working in a team that I can tell for behavioral interviews.

Teaching Assistant: Intro to C++

I continued working as a TA for a C++ intro programming course over Spring and Fall semesters. We adapted to remote learning pretty well.

For Fall semester, our instructor started using Gradescope so I had to rewrite a lot of autograding scripts for the new system on Docker. This year I had more input on student projects as I was the project mentor for teams. I helped students brainstorm their project ideas and the results were great. My advice was that they shouldn’t only focus on making something impressive, and instead make something that solves a real problem in their lives. It is easier to work on something you enjoy and that you know will be useful, rather than just a resume-filler.

Gradescope has a feature that allows students to easily request regrades. We received on average 15 regrade requests for every assignment. This didn’t happen before, as students would have to email or come to office hours. It was a lot of extra work for TA’s but it was manageable with seven members on the teaching team.

Research Assistant: Neuroscience Lab

I joined a neuroscience research lab to work as a programmer developing internal tools. It’s pretty cool working in a monkey lab. I’ve been interested in decision-making and cognition since my undergrad. One of the reasons I applied to grad school in computer engineering was because I felt limited by my computer science knowledge. These knowledge gaps prevented me from investigating tough problems in neuroscience.

My eyetracker project was getting really tough, so I decided to just make it my thesis. I chose two courses this spring to supplement my thesis: GPU & Multicore Computing, and Parallel Programming.

I’m in a strange situation where I have to complete a thesis or project to graduate on time. One of the courses I need to take is a project design class but it is only offered in the Fall. To substitute that class, I can do a thesis or project. I figured that this was my only chance to defend a master’s thesis so I took the chance. It wil take up 2 semesters so I’m planning to graduate in September. Things might change if I land another summer internship, forcing me to graduate in December.

I was actually in a different lab during Spring, a hardware security research group. I had planned to have the PI as my thesis advisor but he moved to a different university in the middle of summer. My work would have been on hardening neural networks for use in safety-critical embedded systems (cars and medical devices).

Job Interviews

I underestimated how much consistent interview practice matters. Balancing two part-time jobs, coursework, and applications left little energy for preparation. By year’s end, I had reached advanced stages with four companies but no offers:

  • Lutron: Solid on basic embedded C, but unprepared for PWM control.
    Lesson: practice implementing hardware control patterns on microcontrollers.

  • Cerebras: Strong fundamentals but rusty on bit manipulation.
    Lesson: regularly refresh core language and systems concepts.

  • Roblox: Passed a brutal online assessment but burned time in interviews wrestling with Python libraries I didn’t fully know.
    Lesson: use my most fluent language for timed interviews, even if it’s more verbose.

  • Google Cloud: Behavioral interview went well; technical exposed my lack of depth in REST APIs and full-stack web tech.
    Lesson: build more web/cloud projects and aim for architect-level certifications.

Conclusion

2020 was a challenging year. I went into 2021 without new job offers (March edit: I later accepted an internship offer from Red Hat, which will be another post), but with a return offer from Foundation Devices, a verbal offer from my Cloud Computing project mentor—who was impressed enough to want to hire our team—and an invitation to serve as a project mentor at Northeastern University to teach CI/CD.

Rejections are a normal part of job searching, though they’re rarely discussed. I treat them as direct feedback loops. I asked for critiques at the end of interviews, and most delivered concrete, actionable advice on what I could have done better. Google’s interviewers couldn’t give formal feedback, but still offered valuable suggestions on building a stronger profile.

Although the year was difficult, the trajectory is clear. Before summer 2020, I had only two interviews—Intel and Foundation. By the end of the year, I was sitting across from major companies. The difference now is obvious: my resume is stronger, and the path forward is simply more preparation.