Aaron Tan's Blog

29 Apr 2018

Thanks Fitbit for a great co-op!

So last Friday was my last day at Fitbit, and I’m a sad to leave. Maybe it’s because it’s the first time that I’ve done a co-op, but this experience was really something special. Got to meet a bunch of new people, first at Waterloo, then San Diego/San Francisco/Boston and Bucharest, had a trip to C A L I F O R N I A, and learned so much about… everything!

Getting a co-op at Fitbit was totally a long shot. I applied in September with pretty much zero expectation of getting in, and I’m still shook to this day that they gave me an interview. Gotta be honest: I stalked all the other applicants on LinkedIn to see what their qualifications were. They were mostly second and third year ECE/Tron students. Intimidating.

I remember thinking that the interview went pretty badly. It was mid-afternoon, the interviewers looked a little bit bored (I think they were actually falling asleep), and it didn’t feel like I made a particularly good impression on them. Then they sent me the coding challenge after the interview and it was surprisingly not too difficult to do.

Rankings day came, and I got ranked, which was already much better than I expected. At that point, it was a WaterlooWorks Wheel of Fortune between an offer at Videostream, or a ranking at Fitbit. But during a programming lecture, the university recruiter at Fitbit emailed me, and told me that the ranking had changed to an offer.

I freaked out. Lily can be witness.

Accepted as soon as possible.

On Boxing Day, I got an email from Alex asking me if I’d like to join the Waterloo office on a trip to San Diego.

Best Boxing Day ever.

The first day at Fitbit had super bad weather. Brad told us to get in at around 9:15, and since bussing to the Fitbit office took about 15 minutes, I thought that I would get on the 8:30 bus. The snowstorm though! The bus ended up being almost 20 minutes late, but we still got to the office in time.

The office was deserted. Turns out most people didn’t come in until around 9:30. Fitbit is mostly a west-coast company, so there are almost never any meetings until past lunchtime. Also, flexible hours were a thing. That was great for me, who is not a morning person.

Brad went into the storage area and just pulled out a few mechanical keyboards, telling us that the previous co-ops had left them behind. I took the TKL Cherry MX brown one, but there was also a very nice POKER II that I later requisitioned for myself once the TKL broke.

The list of niceties: two monitors (27”, 24”), 15” 2015 MacBook Pro (which I prefer to the new ones), snacks, mini-putt, and also Rocket League in the lunch room. Better than I expected already. :)

Learning on the job was great. Over the course of the four months, I got a lot more comfortable with Bash, GDB, C, Python, JavaScript… Halfway through the term, Jordan (one of my coworkers) told me to switch to zsh instead, and with the zsh-autosuggestions + themes, it was a nice QOL improvement over Bash.

Being on the Jerryscript team at Waterloo was great, because it touched on so many parts of the system. We had to write in C, because that’s the language of embedded systems. We had to know JavaScript, because Jerryscript is a JavaScript engine for low-powered devices, and the SDK is in JavaScript. Later on, when we were doing testing, we used a lot of Python. And of course, version control was very important, and I learned some great Git commands: git rebase, git rev-parse HEAD, git submodules, git bisect… Gotta say, Phil (my co-op mentor), and Justin (another co-worker on the Jerryscript team) were very supportive and helpful through the entire thing.

I’m also very proud of the work that I did in the SDK. Most of the stuff hasn’t been released, but when it is I might talk about it a bit more!

Fitbit also its own version of the 10% time to work on projects and such. Every month, we had a day to work on whatever interested us, be it part of the firmware or the mobile app or the tools. For one of them, I modified the fonts on the device to better display Cantonese fonts. For another, I dove into the Python and added a default commit message for our team. During the week in San Diego, Cory (another coworker) and I worked on an authenticator app for the then yet-to-be-released Fitbit Versa.

I’m immensely thankful that I was able to get such a rich set of experiences on my first co-op.

But co-op isn’t just all work.

On the first day, we went to The Golden Turtle, a pho restaurant next door. It was great and we went semi-often… until the entire building was closed because they’re building new condos. 😡 Then the official restaurant of Fitbit Waterloo™ became Union Burger for at least the next two months.

In San Diego, Cory, Collin, and I went to the Gaslamp Quarter and walked around for a couple of hours. That was my first time having Persian cuisine, and it was some good stuff.

Later on, when some of the team came up from San Francisco, we did an escape room together, and had a mini-karaoke at the Tannery. I think that was the first time I had ever finished an alcoholic drink, a Long Island iced tea that Sumeet and Jordan told me to have.

We had two board games nights, where I finally got another group to play Captain Sonar with me, and a mildly disastrous game of Munchkin: Rick and Morty Edition. Turns out Mario and Jordan are board game nerds 🤓 too. Even managed to get Jordan hooked on Innovation.

It’s been a great four months, and I’m sad that I’m leaving this amazing group of people and the exciting work that I did. So thanks, Fitbit, Brad/Phil/Alex/other people who were involved in the hiring decision, and everybody who made it amazing.

aaron at 15:28