Reflecting on 2023, preparing for 2024
Friday, December 29, 2023
This is one of those cliched posts: Reflection on the year that's ending, reviewing last year's goals, and talking about hopes and goals for next year. They're cliche, and they're also useful. The planning and reflecting process is a useful one, and sharing openly means other people can come along and learn with me1.
Reflecting on 2023
I thought last year was action-packed and, uh, this year has kind of set the new bar. It was literally a transformative year for me, but in the way of butterflies: I'm becoming the person I am meant to be. I'm going to list professional things first, then personal things, then community and broader events.
I was promoted to Principal Software Engineer. Early in 2023 I was promoted from Senior Staff to Principal. While our team size is smaller than it once was, this has still resulted in a notable shift in my responsibilities. It has taken me some time to fully get my feet under me, but I've enjoyed the process and the new role. Most notably, the shift is that I do a lot more cross-functional leadership (working with our customer-facing and business teams a lot more now) and I'm also the main technical advisor for our CTO. I am a full member of our company leadership team—the only individual contributor in that meeting—and I'm able to bring a unique perspective as both a tech-focused leader and as the longest-tenured employee of the company. It's been fun, and 2024 is going to be even better.
I also had some fun technical things at work. Of the things I can talk about, I wrote our first Rust production code and released a quick introduction to Rust to help my coworkers learn Rust more quickly. It's been a good experience getting Rust into production, and I have a good fun project with it in 2024, too!
I wrote a lot with some hits in there. I set out the year with the goal of writing at least one post every two weeks as a sustainable rhythm. I overshot this and wrote 56 blog posts, more than one per week! The total word count for the year, including this post, is over 60,000.
This has been a lot of work—yet at the same time, it doesn't feel like work at all. At some point, I want this sort of writing to be part of my livelihood but I'm deeply afraid of sucking the joy out of it by making it commercial. There is a balance I can find, and this blog will never be commercial, but the motions of writing and creativity can turn into other opportunities. For now, I'm keeping on with my writing and keeping my eyes open.
Here are some of the hits from the year that got the most views:
- Write more "useless" software
- A student asked how I keep us innovative. I don't.
- Name your projects cutesy things
- Throw away your first draft
- Introducing Hurl
But I also wrote some pieces that were just deeply personally meaningful. In particular, the digital vigil for Trans Day of Remembrance is some of my most important software I've written, I think.
I'm not into ranking what I've written, and if I want to make a go of it as a business maybe it would be worth analyzing what was "successful" and what wasn't. But from a personal perspective, I'm pretty happy with everything I wrote this year and I'm deeply proud of the amount that I got done this year.
Released a programming language, Hurl! I finished working through Crafting Interpreters at the beginning of the year. The idea for Hurl was bouncing around my head after conversations with a couple of people, and eventually it did come into reality this year. Its launch post was one of my more popular posts, and I think there's something to that. It was a serious implementation of a joke idea, and that sort of whimsy and humor is a foil to the deep seriousness that our industry tries to project. I think we need more deeply unserious software, we need more play. I might even say we should write more useless software.
Before this year, I didn't think I could do programming language stuff. It seemed a dark art more mysterious to me than even operating system stuff. Now I see that it's possible and not that bad: despite the tremendous depth, you can get started simply and then keep learning and playing. Next year I'm going to do a little more with PL (not with Hurl, but something nicer), but in balance with other interests.
My productivity was high, and I often didn't see that. This year I started to realize that yeah, I'm quite productive even if I don't see it. For fellow Recursers, this is something that they may be relieved is finally sinking in, since my brand during my batch was posts where I lamented I got nothing done then had a laundry list of accomplishments. Now I'm starting to see my own productivity and separate "what I did" from "what I wanted to do," and that I need external mechanisms to remember what I did. Not getting everything done doesn't mean I wasn't productive, it just means my goals are quite ambitious or I got other things done instead.
A few things that I did this year while feeling "unproductive":
- Implemented a digital vigil
- Created a programming language
- Made a functioning web app for managing chess clubs (it works, project is on hold though!)
- Made a visualization of the 2023 FIDE World Chess Championship games this year
- Wrote a simulation of approximating pi with a cake
- Implemented RSA in a toy cryptography crate
- Wrote a crash course on Rust
Now, notably, half of those were in the last few months when I got other things in my life in control! I did have times where I got less done in my personal time, and times when I got more done. That's pretty normal. I'm really proud of what I've done this year!
LLMs happened, and my relationship with them has changed. In 2022, I was deeply skeptical of LLMs and their power. In 2023, I saw some incredibly impressive demos which showed that (1) they're pretty useful but more importantly (2) they're here to stay. As a result, I leaned into learning how to use them. If they're here to stay, I need to adapt and get used to them, right?
I've used ChatGPT, Copilot, Claude, and other LLM tools to assist with my work as a programmer2. They're okay. There's a lot they do well, and some sharp edges and fun failure modes, and this is all better discussed elsewhere. And now I've largely shifted away from using them much beyond rare Copilot usage.
I'm pretty content that I can learn to use them quite effectively if I need to in the future. I'm not sure I'll want to. In my experiments with them, using them daily for much of my work sucked a lot of the joy out of it. And I'm not convinced it was a net productivity boost for me, in no small part because of how my brain works and its peculiarities.
Oh hi, I'm a woman! This year I came into my identity as a trans woman and began my transition. I'm fortunate to have a lot of support: my family, my work environment, the town I live in, and Recurse Center, all these communities have supported me. It's a long road ahead, and so far it has been on whole a very healing and good process. Life is much more enjoyable now. Transition is sometimes painful, but also necessary and worth it. I've found in myself a surprisingly extroverted woman, and it's been a surreal experience.
I'm so happy now.
I've hit my best mental health in a long time. The end of 2021 / start of 2022 saw me in my deepest depression I can recall (at least along certain axes). In contrast, I've come out of 2023 in my best mental state in a while, prepared to deal with what life throws at me. There are a lot of aspects to this. It's a combination of transition, therapy, and other psychiatric care.
- Transition has improved my mental state. It may be self-explanatory, but it turns out that a major underlying stressor like unrecognized and unaddressed gender dysphoria can mess a girl up. My depression in 2021/2022 was pretty strongly related to gender issues, and some of the first insights leading to my transition were from therapy sessions which helped me pull out of that depressive episode.
- Therapy has been tremendously helpful. It took a few tries with a few therapists, but I've once again found therapy to be helpful and this time am in it for the long-haul. It's expensive, and it's a necessary life expense for me. My therapist has been helping me grow into my emotions, learn how to understand and process them, understand myself and others, and process some of what life throws at me. We've worked on skills for dealing with all of this, and for dealing with acute situations.
- I've been diagnosed with ADHD. This is one I've suspected for a while, and it is empowering to have a diagnosis and it's life changing to be treated for it. My brain works in a different way when medicated, and it's improving both my work and my home life. It's a lot easier to do activities with the kids when I'm not either distracted by every single thing or deep in a hyperfocus rabbithole. And when the medication has worn off, I have retained larger reserves of energy from the day by not fighting my brain, so unmedicated times are also better.
Got my physical health in order, too. In 2022, I had some bad RSI-induced nerve pain in my arms. For some portion of the year, both at work and at Recurse Center, I could not type without great pain. I was limited to only typing in passwords, and all coding was done by voice using Talon. I recovered from that and went back to my old habits.
Who is shocked to find out that the habits that led to RSI the first time, led to it a second time? After the pain began to come back, I got a Keyboardio Model 100 and it has largely resolved my pain. It is a great thing to have this pain resolved. I've had to make some custom items to use them portably (notably, a custom lapdesk for my keyboard and laptop riser).
Some other issues are also being taken care of, too, and my energy levels are up.
Played a lot of chess, and got involved in my local club again. I took a break from attending my local chess club for a while, because life got in the way and then I was still figuring out my gender identity and starting transition. It was nerve wracking going back, when I knew people would recognize me. I was nervous about their reactions, fearful of deadnaming or incorrect pronouns. But it went great, and I went back not only as an out trans woman, but as a volunteer who helps run the club and is organizing our first official rated tournament!
A big part of why I went back and started volunteering is because FIDE, the international governing body for competitive chess, made some bad regulations that impede trans women from competing in women's chess events. If they want to keep us, keep me, out of chess? Well then I'm going to come back and be very visible in my local club, and run tournaments. You can't keep us out. We're here, and we'll always be here.
I've played quite a bit of chess this year and fell into bullet chess. I also stopped studying, so hit a bit of a rating slump for a while. This is okay, and it's been enjoyable, but it's probably time for that to change.
Now I'm a certified club tournament director with the USCF (this is unimpressive: it just means I read the rules and filled out a form). I can run rated tournaments! To upgrade to being a local tournament director, the next step up to run or assist with larger tournaments, I need to run a few small ones and I need to play in more tournaments. I'll get there.
Parenting is great, parenting is a challenge. I'm a good mom. I've come into that feeling this year, finally letting go of a lot of the self-doubt. Not all of it, mind, but enough that I can confidently conclude that I am a good parent. We have plenty of challenges with the kids, and we get through them.
Our kids are 2 and 4, and they're little bundles of energy. They're showing how uniquely different they each are, and through their eyes we get to see a lot of good things in the world. I've started to hit a rhythm with the 4 year-old of coworking in my office sometimes, and it's been a great way to bond.
Community and world
Another war... This time, war in Gaza. There's a lot that can be said. There's little that I will say here, now, for this is such a charged topic right now that I don't have words for. Here's a post by Paul Biggar that says it better than I can.
But the one thing I will say is: My heart breaks at every life lost. Every single person who is being killed as part of a genocide, being forced out of their homes: I cry for them. My heart breaks for them.
Why do we keep killing people?
A few of my friends had/have major health struggles. I won't go into more detail, but it defined parts of the year.
Found community in a Staff+ Engineer Roundtable. I ran a roundtable meeting for staff+ engineers (or anyone interested!) for a while at Recurse Center. Through this meetup, I found community with some staff+ engineers and made some deep connections. It wasn't a forever sort of thing to run, and I'm glad I ran it and that it ran its course.
Started attending a Quaker meeting. I've long felt a draw to some sort of organized coming together as a way of exploring and acting on my values. For some time, I attended a Unitarian Univeralist church. Now we've begun attending an unprogrammed Quaker meeting in our town, and it is really nice. We've met a lot of lovely people. I've been accepted in full. And it's nice being in community with people who share my values.
I re-entered social media, via Mastodon! I'm now on Mastodon, and you can find me @email@example.com. It's been fun so far! New followers are welcome. I'm going to follow few people, probably, to keep my feed nice and tidy. One of my favorite things is being able to disable boosts in my feed, which reduces the stimulation and makes it more usable for me.
Last year's goals
Okay, whew, that was a lot this year. What about what I wanted to do, though?
My post last year had some of my goals and anti-goals for this year. How did I do on those?
- ✅ I wanted to keep writing, and I did more than what I set out to do! This one was a success and really reminded me how much I love writing.
- ✅ I put one side project into production, sort of, then took it back out of production. I consider this a victory and since I'm tabulating it myself, no need to be a pedant. I do want to keep not-productionizing things, because it is such a stressor for me. I don't want my hobbies to be a second job.
- ✅ I did avoid learning about DevOps-y tooling in my free time, unless you count learning some Fly stuff. This one kind of comes for free if I never try to do deployments of any of my stuff on my own time!
- ✅ I mostly stayed active in RC, though I had some lulls. It is a reasonably sized community which can be overwhelming at times. I've had to cut back on how many things I participate in, to balance with deeper projects and more full participation in the places I do stay engaged.
- ❌ I did not establish learning habits this year, and was very ad hoc with it. So this one is a miss! But I also am glad I didn't, because the approach for the year was great.
- ✅ I did keep in touch with people at RC! I kept in contact with some current friends and made a few new ones.
Overall, I think I did really well on those goals. They were broad and about what I generally was interested in doing and not doing, and that's a good pattern for me. Broad strokes, and useful for directionally deciding on what to do, rather than any specific deliverables. Setting anti-goals was more helpful for me than setting normal goals, so I'll do that again.
Hopes and goals for 2024
I don't do predictions or resolutions, but reflecting on what I'd like next year to look like is helpful. It puts me in the right mindset to do my best to make the reality I want to see. Here's what I'd like to do in 2024.
Keep my rights. This is the headliner, because trans people are Republicans' favorite punching bags right now. This is an election year in the US, and attacks on trans rights rage across the country. I could be arrested for using the bathroom in Florida. "Drag" bans proliferate in ways that can make being trans in public illegal. So my goal, with the election, is to emerge from 2024 still having my rights: my right to exist, my right to be a parent, my right to my medical treatment. I'm prepared to do whatever I need to to save myself and others, and I hope I'm able to safely remain in the home I love. I'm afraid, I'm so deeply afraid of what 2024 can bring if Republicans win.
No personal-time side projects into production. This one will probably be a forever anti-goal for me. I just don't enjoy doing ops-y stuff but I feel its siren song; that yak has a lot to shave. It's important to preserve my free time by not making production web apps since the maintenance is high. I've dropped the "don't learn more (dev)ops (at home)" anti-goal because I won't run into it if I'm not deploying things.
Strike a better balance with calls and making. Since finding my extrovert energy this year, I started to overschedule myself. I met a lot of people and felt a need to have coffee chats with all of them. But... I started to realize I was overscheduled, leaving little time for longer chats with my closer friends. It also cut into time I could have used for making things! So next year I want to have more chats with close friends and fewer with new friends. I want to reclaim some of that time to make physical things, probably more picture frames and some jewelry.
Continue writing, and expand my writing. This blog is one of my main creative outlets, and I'm going to continue it. I like the weekly schedule, and I will keep that up. At the same time, I have some other writing I'd like to do. I have a few unedited personal pieces, mostly about gender, and I have some sci-fi ideas dying for me to try to write them. So I want to actually take a swing at that.
Where do I put those? They may wind up on another section on this site, or they may just be shared with friends. Suggestions are welcome.
Do some comedy! Making people laugh has been fun for all my life, but I never thought I could "do" comedy. It turns out that being trans, there are a lot of things that are really funny. I've started writing a stand-up routine around that sort of thing, and I want to try that out this year.
Stay active in my communities. RC is one of my favorite communities and I'm going to keep being active in the RC community and stay in touch with people. I'm also going to keep meeting our neighbors in our town and hanging out with them or sharing food. It's nice having a local community, too.
Keep being a good parent and partner. There's not a lot to say here except that it's a lot of work and it's a big part of my life and identity, so it has to be here. It would be incomplete to list all my other things I'm doing and not mention my family.
Finish voice training. Voice training is a challenging part of transition for those that choose to do it. I have always been deeply uncomfortable with my voice. This year I've found a voice that is so authentically me and that I like to hear, that is not dysphoric to hear. The work remaining is generalization, the ability to use it in all life situations. There are other fine-tuning things that could be done, but this is the main one, and I want to complete this.
Improve my ergonomic setup and my accessible options. I have an okay ergonomic setup today. My custom lapdesk allows me to travel around the house with my laptop, but it doesn't allow me to go to the coffee shop, and work travel coming up has brought this pain into focus. Suddenly, I need the ability to travel to a hotel with my ergonomic keyboard. So this year, I'd like to improve things in two ways:
- Build a more compact travel keyboard setup. This one I planned out while on a run last week and now I need to prototype it3.
- Learn to use Talon again and integrate it into my daily work. This is something that's important so that I am not so fully reliant on keyboards. It would allow me to go more places without a keyboard while retaining an input mechanism.
Do more technical projects. This year I made a programming language, and I hit a groove of working on medium-term technical projects. I want to do more of these in 2024! On the docket are cryptography, databases, and designing another programming language (implementation may take longer).
Go back into competitive chess. I've been playing chess casually this year. Next year I want to lean back into it in a more competitive way. I'm running a rated tournament in January! I'd like to also like to play in a local tournament. Another thing I should do is build my black opening repertoire more explicitly4.
Keep my mental health strong. Next year is going to be a challenging year, and I will put deliberate focus on keeping my mental health where it is (or better). Not a lot else to say, I think.
So, that's it! I've put a lot into this post, and if you've made it this far: thank you. A big part of what I do is learn in the open, and writing is thinking. Writing this sort of reflection helps me.
2023 had a lot in it, with some bad things and lots of very good things. I'm hoping 2024 shifts the balance to more good and less bad, but I'm prepared for it either way and will practice self-care to get through it whole and healthy.
This introduction is lightly edited from last year. There's not a whole lot else to say to introduce it!
I have not, and never intend to, let LLMs be involved with my writing. At the very least, not for something like this blog. It's so deeply personal.
Of course, the last "prototype" lapdesk is still in constant use by me, with bare wood. So this prototype will likely end up in daily use, too. But that's fine! Only through using it can I figure out what I want to do differently next time.
My bullet/blitz black repertoire is "premove 1. ... e5", which works surprisingly well. You have the shock factor of playing some gambit lines as a premove. I want to see how far I can extend this, and I also want to just plain learn the acceptable lines here.
If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts and support my work, subscribe to the newsletter. There is also an RSS feed.
Want to become a better programmer? Join the Recurse Center!