January 2, 2021
Every January, I write a blog post that sums up the last year and outlines my plans for the next one. See previous posts for 2018, 2019, and 2020. I know celebrating the end of 2020 is trite, but I do find it useful to write these yearly posts. It’s the blog equivalent of going through all of my todo list sticky notes and throwing away the old ones, to make room for new ones.
I’ll start with the obvious thing: I spent most of 2020 in quarantine thanks to COVID-19. At first, working from home was rough, but it became a lot easier after I made myself a little office in the corner and started going on walks every day. Since then, quarantine has been a weird mix of being very aware of my privilege, and being very aware of my isolation. I wrote more about this in my quarantine journal.
2021 will likely be more of the same in terms of working from home. Google recently announced that “voluntary” working from home will continue until at least September 2021. I’m mostly okay with that- I’m not sure if I ever want to go back to the office full-time. But I would like to be around humans again.
Another big part of my 2020 was watching with increasing horror at hundreds of videos of police brutality during the demonstrations after George Floyd was murdered by a police officer.
My first reaction was to find as many of these videos as possible and then share them with my mostly white facebook friends, who seemed mostly oblivious to what was happening. But that quickly turned into an unhealthy compulsion where I spent most of my day scouring Twitter, and more importantly, it wasn’t really accomplishing anything.
Just as working from home started, I was sorta-kinda put in charge of a super-urgent COVID-19 project that was announced by the CEO in a very public blog. That was an intense couple of weeks.
Later in the year, I got a promotion. I had some mixed feelings about that: mostly I felt guilty because I can’t help but wonder how much of that promotion was because of my white-guy privilege. Specifically the fact that it’s socially acceptable for me to be vocal and annoying, when I know not everybody has that same leeway.
The promotion doesn’t change too much for me, other than signaling that maybe it’s time to move on. I like my day job enough, but it’s also not very personally interesting to me. (And yep, I know that’s a very privileged problem to have.) I spend a lot of time and energy fighting uphill battles about what we should work on, and I’d really like to work for a company or team where I don’t have to do that. (If you work for a team that actually believes in putting users first instead of constantly working on new features that will get everybody promoted, hit me up.)
I’ve put out some feelers for new positions, and I might start more actively looking in 2021. I always say that I’d love to work on my “20% project” full time, but there isn’t an obvious path forward for that. I might look more into devrel, which I think is as close as I’m going to get. (If you’re looking for a full-time software engineer that focuses on documentation, example projects, and curriculum development, really hit me up.)
The spring session of SPS was essentially cancelled halfway through, because we knew that participants had more important things to worry about. What do you do if you’re an international student who was just kicked out of student housing, but you can’t afford to fly back home? The summer session went pretty smoothly though, other than not having an in-person event. Usually people spend a few weeks learning how to work together remotely- lots of “your mic isn’t working” type problems. Not this time, since by then everybody was a pro at that stuff.
On top of that, quarantine restrictions meant that suddenly a bunch of Google internship programs from all over the world needed to figure out how to do everything remotely. Many of them turned to the SPS curriculum, which was exciting and terrifying. Long story short, about 1,200 interns and 800 Google employees ended up using the curriculum that I’ve been writing for the past 4 years. If you had told 2015 Kevin that a global pandemic would mean that 2,000 people from all over the world would use stuff he wrote, I don’t think he would have believed you.
I only realized this after the fact, but August 2020 marked the 10-year anniversary of the first time I started posting coding examples to the internet. I wrote more about this here: Ten Years of Coding on the Internet.
I spent probably more time than I should have playing with spirals before getting back into movie color visualizations. Then I spent some time playing with music visualizations. It was cool to get retweets from Trampled by Turtles and Just Jack. No love from Taylor Swift though.
I also played with overlapping videos. Honestly I thought these were really cool, but nobody else seemed to think so! That’s totally fine, but I don’t think I’ll ever understand what the internet thinks is interesting, so I’ll keep making stuff for myself.
I’ll probably keep visualizing random movies, songs, and albums. I might also try my hand at live coding in 2021, and I have an idea about visualizing video games that sounds pretty fun. And I’m sure I’ll find a dozen other things to distract myself with!
In February of 2019, I started an Etsy store where I sell prints from various coding projects I’ve played around with. I did this mostly just to see if I could, with no real intention of actually ever selling anything, so I was thrilled when people bought two whole prints in 2019!!
In 2020, people bought 42 prints. I’m not quite ready to retire and become a famous artist just yet, but it was really cool to see people taking an interest in stuff I’ve created. It was especially cool to receive a couple of commission requests.
I don’t have any big plans in this category other than to keep adding random prints to the store. But if you’re looking for a nerdy decoration for your home office, or if you want to get your friend a unique gift, check out my Etsy store! (Can’t blame a guy for shameless self-promotion.)
I participated in two Ludum Dare events: Ludum Dare 46 in April where I created The Next Generation, and Ludum Dare 47 in October where I created EmojAvoid. I’m actually not super interested in game development, but I do enjoy the challenge of creating something in 48 hours. I wrote more about this in my Ludum Dare 46 retrospective.
I also spent a good chunk of time updating the Google Cloud tutorials. I didn’t originally plan to do this, but I needed it for SPS. This was a little frustrating because it’s exactly the kind of thing I told myself I would stop doing in 2020. I love SPS, but one of my goals in 2020 was to stop spending my free time writing content for a Google-owned program. I might have achieved that if we hadn’t been forced to migrate to the Cloud SDK and Java 11, or if Google actually incentivized the “volunteer” work they rely on instead of relegating it to nights and weekends. But oh well, at least it’s done now.
On a more positive note, I was happy to write new and improved p5.js tutorials (and to rewrite the Processing tutorials while I was at it). I’ve been meaning to write intro to coding tutorials based on p5.js for a couple years, and now that they’re finished, it feels like “the bones” of Happy Coding are finally in place. That’s actually really cool to me, and I’m excited about shifting my focus away from writing (and rewriting) the core tutorials, to expanding the parts of the site I’ve been neglecting.
In 2020, I wrote 26 new tutorials, 15 new examples, 10 blog posts, and 7 gallery pages. If you printed all of that out, it would very roughly take just over 200 pages. This doesn’t count the rewrite of the Processing tutorials.
I also spent some time messing with the layout of the site, and adding the ability to add comments to every tutorial and example. I absolutely hate SEO, and even thinking about “acquiring” “users” makes me roll my eyes so far into the back of my head that I can see my brain, but I want the site to be as accessible and understandable as possible. I’m hoping this helps build out the community that Happy Coding is meant to be!
I’ve always hoped that Happy Coding was useful to teachers, so a few years ago I put together the teaching section. I had intended to build out these resources, but I never quite found the time, so they’ve been neglected ever since. They were also embarrassingly ranty, fueled more by my own excitement than actually being useful to real teachers.
So I recently decided to just delete the teaching section. But as soon as I deleted it, I quickly got a “hey, I was using that!” message from a teacher who actually was using it to create a Processing course. Something similar happened when I shut down Static Void Games- I got a bunch of messages from people who I had no idea were using it.
On one hand I’m super happy when people find my stuff useful. That’s the whole reason I do this. But on the other hand, I wish I heard from folks more often! Maybe I should start deleting random stuff just to hear from the people who find it useful. (Just kidding… I think.)
Anyway, I undeleted the teaching section, and then updated it to be less ranty, less about telling teachers how to do their job, and more about trying to connect the dots with stuff that’s already on Happy Coding. I’m hoping this is more useful for folks, and if it is, please let me know!
One of the central themes of this year for me was noticing over and over again how people react to feeling helpless, and how they’re affected by their in-groups and out-groups. From dealing with quarantine, to reactions to Black Lives Matter demonstrations and police brutality, to wearing a mask in public, to the election, all of it was a fascinating and sometimes horrifying study of how people react based on their own contexts and biases.
I’ll spare you the pop psychology 101 rant, because I’m sure I don’t have anything smart to say that hasn’t been said already, but 2020 really brought into focus a lot of stuff that I’ve been thinking about for a while.
While I’m being self-indulgent and reflective, here’s my mood tracked every day in 2020:
Most of 2020 was a bunch of “pretty good” days that often ended up looking pretty similar to each other. That’s one reason I like doing these end-of-year / beginning-of-year posts, because it helps me remember everything I did get done. Otherwise, it’s mostly a gray blur of same-ness. But it turns out I’m pretty happy with what I accomplished in 2020!
After writing new and improved p5.js tutorials over the past few months, “the bones” of Happy Coding are just about finished. I have a couple of individual tutorials bouncing around my brain, but I don’t really see myself adding another big tutorial section, at least until I’m forced to learn TypeScript and Kotlin.
Instead, I want to focus on building out the examples section of the site. I learn best from playing around with code, so I’ve always intended the examples to be a first-class citizen of Happy Coding. The problem is that tutorials take a ton of time (for me) to write, so I haven’t had much time for examples.
But now that the tutorials are mostly in place, I’m looking forward to spending more time churning out examples. I thought about trying to post one example per day, but I know that’ll stop being fun pretty quickly. So instead, I’m challenging myself to post as many examples as possible. I’ve already posted the first one here:
Hopefully by the end of 2021, the site will contain a bunch of examples, which will hopefully help grow the community. That will round out the tutorials and complete “my vision” for what Happy Coding was supposed to be. That’s a pretty cool place to be.
How was your 2020? What are you hoping to do in 2021?