I’ve had a game idea bouncing around in the back of my head for a few years now. In fact, many of my goals in the past few years (i.e. watching more art films, learning to paint, and publishing a small game) have been in service of expanding my repertoire to be able to work on this larger meta project.
The game itself is structured as a puzzle-based adventure game, where solving puzzle challenges in effect unlock skills which can be used to advance the story. The puzzles themselves are supposed to be abstractions of programming challenges, but presented in a way so that non-programmers could complete them. I wanted to explore the space of manipulating a stream of data, rather than some kind of Turing complete programming environment like Shenzen I/O (which does that really, really well).
One of my favorite undergraduate courses was an optional elective on the topic of ciphers, starting with handwritten approaches and eventually moving on into mechanical and then digital cryptography. A few classes in the handwritten section started with the professor writing ciphertext on the board and inviting us to spend some time attempting to break it without knowledge of what the cipher actually was.
A while back I pledged to write a paper on a topic unrelated to my academic major for my Estonian fraternity. I never actually got around to doing this, but at the time of the pledge I had the ciphers course fresh in my head and thought it would more research would be interesting. So in the interest of actually making some progress on this, I thought writing a bit about handwritten ciphers here may be a good way to motivate myself. To ease into it, I’m starting with the most basic cipher I know of: the Caesar Cipher.
I tried something new in 2017, which was to make a set of personal OKRs to fulfill throughout the year. OKRs (Objectives and Key Results) are typically used as a planning framework by companies (both Google and Twitter implement them) but I had never tried to structure personal goals in this way. I’m not sure it’s a general approach I’d recommend for anyone else, but I like the idea of taking a set of abstract goals and trying deconstruct them into measureable tasks.
I respect the effects of small adjustments to habits compounded over time. New Year resolutions have been effective ways for me to implement such changes. In 2014 I started making one-second-per-day videos (and have done so in 2014, 2015, and 2016 so far!). In 2015 I started regular Rosetta Stone lessons to learn Mandarin. In 2016 I tracked my weight and food every day with the intent of losing 30 lbs by the time my daughter was born. In 2017 I wanted to be healthier, happier, grow intellectually, and create things. I’m writing this as a postmortem on the process, and an accounting for how I think it went.
At the start of 2017 I, feeling a little unproductive, defined a set of goals which I’d try to achieve by the end of the year. It was around this time that I, feeling a little unhappy in my job, started looking at other places to work. While I was investigating the culture and history of Stripe (which I ultimately joined) one very common theme was how voracious of a reader its CEO Patrick was.
Reflecting on the meager list of books I’d completed in 2016, I realized that my own reading pace had dwindled over the years. Back when I commuted to Mountain View from SF, I generally had multiple hours per day to read. That became maybe 40 minutes each day when I started taking Muni to work downtown. When Twitter moved its office to within walking distance I basically stopped entirely, not making up in reading the time I was gaining from a shorter commute. I missed the depth I felt that I got from reading books and figured the best way to bring that back was to construct a goal of reading a specific quantity this year.
The first time I remember hearing the term “hackathon” out loud was when I was a couple weeks into my employment on Google’s Developer Relations team. I was trying to figure out what I was going to do to help bootstrap developers for the nascent OpenSocial project. Patrick Chanezon, the Developer Advocate on the project, said something like “we’re going to cold call a bunch of social app authors and hold a hackathon to test out the API” which hadn’t really been done before—we were helping pave a new path for the company at the time. That first event was kind of a mess. I remember stalling for time with a room full of developers since our test server wasn’t booting correctly. An engineer was hurriedly trying to fix things so that the attendees could get to work.