January 2, 2022
It’s that time of year again. I’m not big on new year resolutions, but I do enjoy reflecting on the past year, and looking forward to the next one. So as per tradition, here’s my annual blog post recapping 2021, and looking ahead to 2022.
I’ve continued posting “monthly” updates in my quarantine blog post, so I’m going to try to avoid repeating stuff I’ve already said there, and instead reflect on the year as a whole. But if you want even more self-indulgent ramblings, go check that out.
My cat Stanley died about a week into 2021.
She was 13 and had been going through chemotherapy for the previous few weeks, so it wasn’t exactly a surprise. But she was my best friend, and one of the only constants in my life. You can read some more words in my January quarantine blog post.
Sorry to start this off on such a down note, but I feel like I need to mention it because I tend to deal with stress by making myself really busy, so I recognize that most of my 2021 was a pretty direct result of dealing with my feelings about losing her.
Genuary is an event where, throughout January, people create procedurally generated art around a different prompt every day. This was really fun (or at least comforting) to participate in, and I ended up creating a bunch of my own genuary projects in January of 2021.
I’m really tempted to participate again in Genuary 2022, but I really need to stop procrastinating on the class I’m supposed to be preparing to teach. (More on that in a bit.)
Happy Coding has focused on written tutorials and examples because I think that’s how I prefer to learn, but I’ve thought about adding videos for a while now. I started recording videos back in the Static Void Games days, but they were a ton of work (lots of restarting when I said something dumb and then editing many takes together) and honestly weren’t very good. But talking on camera is a skill I’ve been wanting to practice, so when that wave of resigned productivity hit me in January, I decided to start making videos again.
I went into it with a different mindset than I had in the Static Void Games days. Rather than trying to record perfect explanations of new topics, I was just going to hit record and start coding and talking. I wasn’t going to edit out the dumb things I said, the mistakes I made, or the debugging rabbit holes I fell into. My main goals were to improve my own video recording skills and honestly to have fun while doing it.
I don’t know if anybody else finds them interesting, but I ended up creating 45 new videos in 2021.
I think this one was my favorite:
I don’t think I’ve unlocked any great mysteries of video production, but it’s been fun to figure out the little stuff: how do I record myself and my screen at the same time? Where in my apartment is the best place for recording? What’s the right balance between showing everything but not taking too long? I still have a lot to learn, but it’s been interesting to see little improvements throughout the year.
Reflecting on these videos gets at something I think about fairly often but that I don’t know how to put into words. The closest I can get is: what am I even doing here?
That sounds melodramatic, but by that I mean, what value do I have? Who am I helping? What am I contributing? In other words, what is the point of posting coding videos when folks like Daniel Shiffman are already doing such an amazing job? What is the point of writing coding tutorials when real teachers are already putting the work in?
I think I know the answer to that, but it’s something I thought about a lot in 2021. What niche am I trying to fill? What is “the point” of all of this?
My main goal for 2021 was to create a bunch of new examples, and I’m pretty happy with how that went.
I ended up posting 100 examples in 2021. To give you a sense of that resigned productivity I mentioned above, 34 of those were created in January.
This chart is a little misleading because it only counts new posts and ignores rewrites of old posts, but it gives a pretty good indication of where I focused my energy in 2021.
I can now say that I’m really happy with the p5.js sections on Happy Coding. The idea is that you start with p5.js tutorials and then play around with p5.js examples to get more practice. I’m hoping that teachers can use a tutorial as a lesson, then use an example as a code along, and then assign homework based on that. I’d love for Happy Coding to become a community of folks learning and tinkering together, and creating a bunch of examples feels like a step in the right direction.
At the end of May, I went on a cross-country road trip from California, to the east coast, and back again. This is something I’ve wanted to do for a long time, and for a bunch of reasons, now felt like the right time to finally do it.
The trip ended up being 6,770 miles over 15 days through 18 states, about 100 total hours of driving.
I’m trying not to just repeat stuff I’ve already said in my May quarantine blog post, so I’ll just say that the most interesting thing about the road trip was how different areas had vastly different cultural norms about quarantine and masking. I had been pretty much isolated by myself for over a year when I went on my trip, but some places seemed like they hadn’t even heard of covid.
After a series of particularly frustrating management decisions, I decided to finally find a new job. I posted about it on Twitter, and I was really touched by the response. I had a few interesting conversations, got a couple of really tempting offers, and reflected on the “who you know” aspect of my privilege. I eventually decided to take a job in engEDU, which is basically Google’s education department (or at least one of them). My first day was on June 7th.
I’ve been pretty happy there. It might be a little too much eng and not enough edu for me, but the work is interesting, and more importantly, I feel like the team trusts me. I feel like I carved out a little niche for myself, and so far I’ve been the main owner of a new frontend (which at Google really means frontend and frontend server) that we’re building.
Joining a new team while working from home has been interesting, and I’ve been reflecting on the fact that maybe it’s okay that I don’t eat three meals a day with my coworkers anymore. I’m not sure if I buy everything my new upper management says, and I’m fairly convinced that a massive reorg is overdue in Google’s various education departments, but in general I’m feeling pretty happy about my day job going into 2022.
Back in Happy Coding land, when I wasn’t creating new examples, I spent a ton of time in 2021 rewriting the Java server tutorials. Thanks to the Jakarta vs Java EE change, they had been in need of an update for a while. I really enjoy writing tutorials and thinking about the best way to introduce new concepts, but I find this kind of update really boring and frustrating. I wrote about this a little when I updated the Google Cloud tutorials back in 2020.
Anyway, this ended up being a pretty big time sink. Not just because it took a long time, but also because it took a lot of motivation. I would have much rather spent that time doing fun stuff, but I also don’t want to let the various corners of Happy Coding atrophy too much. As I type that out, I wonder if I should just delete these tutorials (and maybe the Android and libGDX tutorials while I’m at it) and focus on topics that are less work and more fun? But I like the idea of Happy Coding starting with something like p5.js and leading to a bunch of different things. It’s just hard to find the right balance with such limited time.
In fact, the Java server rewrite isn’t even finished. I’m maybe halfway through, but I lost a lot of steam after a couple months of slogging through the first half. Looking at my GitHub commit history, I’m just now realizing that the server tutorial rewrite coincides with a part of the year I was feeling particularly grouchy. I guess that’s what happens when the thing you do for fun turns into work.
Earlier in 2021, I told somebody that I felt like Happy Coding was a constant ongoing process of dusting off old shelves that somehow become disheveled over time. Maybe in 2022 I should think about how to make that process a little more sustainable.
In August, I helped teach a week-long p5.js class for Seizing Every Opportunity through Upperline Code. It was on east coast time so I had to wake up at 5 AM every day, but it was one of the most important things I did in 2021. Watching my co-teacher Taylor do her thing was truly inspiring and taught me so much about being a “real” teacher. I felt a little like one of those people who spends one week in another country and then talks about how inspiring it was for the rest of their life, but that one week really did help click a bunch of things into place for me.
I’ve been helping run Google’s Software Product Sprint for the past 5 years or so, and we’ve always struggled with finding a balance between being welcoming and holding participants accountable. Something about that has never felt quite right to me, and my one week with Upperline Code showed me what that was: the “balance” between being welcoming and holding people accountable is a false dichotomy! Accountability is actually more welcoming than the alternative, and it doesn’t need to be a “do this or else” thing. It’s about making sure people have the help they need, when they need it, and that they actually use that help. I know this is Real Teacher 101, but it was a bit of an epiphany to me.
“Shout out to K-Dubz for being the goat” was probably my favorite moment of 2021.
I got a teaching job! I’m going to be an adjunct professor at my alma mater. I know I tend to be grouchy and self-deprecating (the first thing I did when I got the job was google “are adjunct professors real teachers”), but even I have to admit this is pretty cool. I’ve been daydreaming about becoming an adjunct professor for over a decade now (it’s the whole reason I went to grad school in the first place), and this feels like a lot of things finally clicking into place. (SPS! Happy Coding! Working from home! Recording videos! Upperline Code! Changing jobs! I didn’t know where any of it was going, but I feel like it all led to this.)
The teaching job doesn’t actually start until January 2022 (a couple weeks from now), but I spent the last few weeks of 2021 thinking through how I want the class to work, putting together the projects for each week, and finally giving in and learning React. This is going to be a big part of my 2022, starting with a couple weeks of writing and recording a ton of content, as soon as I stop procrastinating with this blog post.
I’ve also decided to take a step back from Software Product Sprint. I have a few reasons for this, but it’s still bittersweet. But the teaching job opens up a lot of really cool opportunities that I’ve been working towards for my entire career, so I want to get it right.
I have a lot of really exciting ideas about the teaching job that tie into the questions about “what is the point of all this” I mentioned above, but I think I’m going to save that for its own post.
Oh, it was also really cool to see Ravi Chugh teach a creative coding class using Happy Coding. This is exactly the kind of thing I hoped Happy Coding would someday become, and I’m excited to see more of it in the next year.
In an effort to prove I still have human emotions, I track my mood every day. Here’s what 2021 looked like:
I also sank a ton of time into uploading almost 15 years of pictures to my photo site. I’ve become increasingly infuriated over facebook’s negative impact on the world, so this was me trying to stop relying on them so much. Going through all of my old pictures took forever and made me feel a lot of feelings, but I’m glad they’re now all (mostly) in one place that I have control over.
Some random favorites from 2021:
Another artifact of this year was coming to terms with the fact that I simply can’t reach some people. Over the past couple years, I’ve had a series of “conversations” with people who are very different from me politically, specifically people who believe conspiracy theories about covid-19. Before this year, I would have said that it’s possible (and even important) to reach this kind of person, to use technology like social media to find a common ground and bring people out of their extremist bubbles. But after seeing the thousandth post about how wearing a mask is a form of government mind control, I gave up. If you don’t have the empathy to wear a mask for fifteen minutes in the grocery store to protect the immunocompromised people around you, then I don’t think I can reach you. I started blocking those people on facebook, and I’m pretty sure I’m just going to delete facebook altogether.
On a happier note, it was really nice to have Shawn and Liz visit, and to go camping with the Brittons, and to become better friends with Troy and Grant. I finally went to see the Windows XP hill and the Star Trek rocks, which have been on my todo list since I moved here. I went to a few concerts and did some hiking. I also started the whole online dating thing, which turned out to be quite different from what I expected. But I’m feeling pretty optimistic in that department. 🍎
In last year’s post I mentioned an idea about visualizing video games. I thought this would be a big project, but I ended up finishing this during my period of resigned productivity early in the year.
Here’s every frame from Sonic the Hedgehog:
I did this mostly because I thought it would be neat (and I think it is neat!) but another part of me hoped that other people would also find it interesting. I imagined doing this for other video games and maybe selling a few prints along the way. Admittedly I didn’t do much to promote it, but this turned out to be another thing that I thought would be more interesting to other folks.
Last year’s post also mentioned the idea of getting into live coding, but I never ended up doing that.
I sold 34 prints on Etsy, but I also had a few listings taken down due to copyright violations, including my most popular print. I actually get a little annoyed by blatant copyright infringement so I thought I was being careful and made sure to not use any band or movie names directly in my art. But it turns out that even having something like “Harry Potter Movie Visualization” in a listing title is enough to trigger the lawyers. I’m a little bummed by this because I honestly want to do the right thing. But if I can’t be sure that a band / movie / whatever would be okay with me making a visualization from them, I’m not sure if I can keep making that kind of art.
I participated in Ludum Dare 48 by creating a game about Wikipedia called The Rabbit Hole. You can read more about that in my Ludum Dare 48 retrospective. I also wrote about my 10+ years of Ludum Dare in Ludum Memories.
I didn’t write very many blogs in 2021. I did ramble about learned helplessness and locus of control in coding and 10 lessons from “senior” software engineering, but most of my “blog time” was spent sporadically updating my quarantine blog post. Reflecting on each month has been interesting, but I think I might bring that to a close soon just so I can have more time for other stuff.
My biggest goal in 2022 is to do an okay job at the class I’m about to start teaching. That’s going to become my top priority as soon as I publish this post. I feel cautiously optimistic about the class and what it opens up, but I still have a ton to learn about being a “real” teacher.
If that goes well, I’m hoping to steer Happy Coding towards more structured educational content. This was my intention with the teaching section, but I haven’t had a clear picture of what that should look like. Now that I’m preparing my own class, I have a better idea of where to go next.
I’ve also been itching to play with the accessibility features of p5. I started experimenting with this in 2021, but I got stuck pretty quickly and haven’t been able to figure it out.
I’ve said before that I hate all things SEO, and the idea of “acquiring” “users” goes against pretty much everything I find compelling about what I’m doing with Happy Coding. But I do know that I could do a better job of putting my stuff out there, and I could focus more on the “community” aspect instead of waiting for it to happen magically. I know I “should” break my longer posts up into smaller articles, post them on a more regular schedule, and spam them whenever I have an excuse. But that sounds boring at best, so I’m probably not going to do it.
Alright that’s enough procrastinating for me. Time to go start preparing for that class.
As always, I’d love to hear from you. How was your 2021? What are you looking forward to in 2022?