2018 was a wild year. A lot happened. I lived in 4 different cities over the course of the year, worked 2 internships, and did a few weeks of traveling. It was a hectic year, but also one of the best in recent memory.

The biggest difference this year was that I took a semester off from school in the Fall to do a second internship. This had a couple knock-on effects. First, I spent most of the year working (as opposed to studying). Second, I had time between my second internship and the Spring 2019 semester to go traveling in Europe. Together, these made “placelessness” a big theme of 2018. I learned pretty quickly how to live with (mostly) all of my possessions fitting in a single suitcase.

Previously: 2017

By The Numbers

  • 👨‍💻 2 internships
  • 🗺 4 countries visited (+ 5 states)
  • 📝 16 blog posts (including this one)
  • 📚 21 books read
  • 🐦 1,165 tweets
  • 💻 1,312 Github contributions
  • ☑️ 6,411 tasks in Todoist
  • 👣 4.68M steps (according to Fitbit)

University

Even though it seems like ages ago now, I got a decent amount of work done during the semester I was in school. I helped continue and grow a cloud computing course. We saw 4x enrollment over our previous semesters. I have many late nights of cluster repair and MP design to show for those efforts. 😪 After doing some time tracking, this was my single largest time commitment of the semester. It was a lot of work, but very satisfying.

I also took an interesting AI course. The focus was on classical AI techniques (planning, search, game theory, etc.). I did most of the exercises in Python, which gave me an excuse to learn some high-performance Python libraries (cython, numba, and of course, more numpy).

If I were to pick a “theme” for this semester, it would be the value of modeling the world stochastically. Pretty much every course I took this semester integrated some type of stochastic or generative model.

Projects

This year was a slower year for side-project and open source work.

  • Corral was by far my biggest project this year. It was the project I was the most excited in (who doesn’t love mixing serverless and distributed systems?), and generated the most buzz.

  • Gitfolio was the other “big” project I worked on this year. Gitfolio was written in React Native. I haven’t done much mobile development, but I have worked with React heavily — so this was a fun extension.

  • ep scratched an itch I’ve had for a while. I really love mojibar (a lovely menu-bar emoji picker), but it hasn’t been getting a lot of love lately. “ep” is a small emoji picker that works in the terminal. I’m happy with how simple the codebase ended up, and it fits my needs exactly (hopefully others find it useful too).

The rest of my side-project energy was poured into making a Discord bot for a server I’m in with my friends. I’ve been encouraged to make the bot open source, which would be fun. (I think the world already has too many Discord bot frameworks though, so we’ll see…)

Open Source

Unfortunately, I had to deprioritize my Open Source work this year. I broke my streak of daily Github commits. But, that’s okay! I was beginning to be a bit burned out with side-project work around the middle of the year. Taking some time to refresh was warranted.

2017 Contributions

2017 Contributions

2018 Contributions

2018 Contributions

Going forward, I want to focus on intentionality in side-projects / Open Source. As I finish my undergrad program, I’ll have less free time to work on OSS. I want to be more intentional about prioritization, focussing on value, and weighing opportunity cost when selecting which projects to start / continue.

Work

Summer — Google

Over the Summer, I interned at Google on Cloud Firestore out of their San Francisco office. As someone who’s interested in distributed systems, this was quite an interesting couple of months! I worked on a team that manages Firestore’s indexing systems.

I was able to go to the Google Cloud Next conference in July. My team launched some cool features during Next, which was exciting. 😄

Most of my work was in Java. Ramping up at Google was a challenging, but satisfying experience. Over the course of the summer, I learned up on Protobufs and wrapped my head around TrueTime.

Outside of work, I had a fantastic time exploring the Bay Area. San Francisco is quite a city. It was a bucket-list item to live there, and now I can cross that off (ultimately, I still prefer Seattle 🌧😉🌧). The weather was great, the food was tasty (great vegetarian options!), and there’s just so much to see in the Bay Area.

Fall — Facebook

In the Fall, I came back to Seattle to intern at Facebook on an internal tool that uses ML to monitor anomalies in real-time data.

My work in the Fall was somewhere between full-stack and front-end. I got to work with an interesting GraphQL/Relay + Flow + Flux stack (with PHP/Hack on the backend). I gotta say, typed Javascript is pretty great.

GraphQL still feels like magic. I’m in awe that it works as well as it does (which probably means I need to read more into GraphQL server internals).

Like last summer, living in downtown Seattle allowed me to explore the city’s urban core (as opposed to the East Side suburbs I’m used to). I enjoyed living near Lake Union – especially as we had uncommonly nice weather this Fall.

On the weekends, I visited Portland and did some hiking in the Cascades – amongst other “outdoorsy” activities. Gotta love the Pacific Northwest! 🌲

Travel

I had a few extra weeks between the end of my Fall internship and the Spring 2019 semester, so I was able to do some traveling. I spent a week staying with family in Slovakia, and then spent a couple weeks traveling through Austria, the Czech Republic, and Germany.

This travel break was the longest chunk of time I’ve been away from a laptop/desktop since 2012. I was curious to see how this shift would affect my mental state. Disappointingly, I didn’t develop a third-eye, sixth-sense, or become a meditation master.

However, I did visit 33 (❗) Christmas Markets, toured some really cool museums1, ate at a Michelin-starred restaurant for the first time, drank a lot of tea, and came back with a huge appreciation for the German rail and public transit system.

Ultimately, I got the “mental reset” that I was hoping for. I firmly believe that our environment shapes a lot of our routines/habits. Travel can be a way to get an external perspective — with the goal being to make changes once you get back.

Observations After Returning

Upon getting back, I had a few observations.

First, Drafts is fantastic. I used it for travel journaling and as a scratchpad. Its integration with iOS shortcuts allows it to be used as a programmable buffer. Its sync is top-notch and performs well as a Markdown editor. Drafts currently has a Mac app in beta, which I’m very excited about.

Second, my laptop is an absolute distraction machine — and I’m super glad I didn’t take it with me. Turns out, it’s nice to be limited to 1 or 2 apps at a time. iOS may not be ready for prime-time as a development platform, but it’s a great OS for an intentionally stripped-down experience.

Third, having very little cellular data while traveling is a good thing. Detaching and being more present for a few weeks was a gift in itself.

Social Media and Information Diet

I attempted to improve my information diet this year. I used Instapaper to save and actually read articles (instead of just looking at the headline and skimming). I put tighter restrictions on what makes it into my Twitter feed and used Buffer and Refined Twitter to lessen some “addicting” aspects of Twitter.2

I also read more books this year than in any year since middle school. I’m targeting to read even more in 2019. I don’t think books are a silver bullet, but they provide a satisfying counterbalance to the firehose of social media.

Looking towards 2019

I expect 2019 will be a similarly “full” year. (Barring unforeseen circumstances) I’ll graduate from UIUC in 2019. Also, in some exciting ~~personal news~~, I will be joining Google Cloud in Seattle post-graduation. 😄

I have a couple hopes for the coming year:

  • WebAssembly continues to grow and mature.
  • Rust Async/Await implementation moves forward and provides a compelling experience for writing backend services.
  • React Hooks stabilizes and simplifies the programming model for writing stateful functional components.

So, cheers to 2019! 🥳


  1. The Computer Science section of the Deutsches Museum in Münich was particularly worth seeing. I could have stayed there for hours. They have a fascinating exhibit about silicon crystal chemistry (in that it exposed my complete lack of knowledge in that field) and an array of excellent interactive installations that demonstrate everything from binary logic to the workings of vintage telecom systems. ↩︎

  2. I wrote a post earlier this year about other ways in which I’m paring down on my Twitter usage. ↩︎