2020 Retrospective
👋 This page was last updated ~4 years ago. Just so you know.
Against all odds, it looks like the year 2020 will actually come to an end - in less than a day now. I know! Hard to believe for me too.
A lot of things have happened for me personally, and professionally. It's been a big year in many ways, and I feel like, to get some closure, I need to highlight some of them.
From "looking at graphs" to "driving to the hospital"
For me, COVID-19 started as a couple news stories my partner looked up when she was planning a girls vacation to a foreign country. Back then it didn't feel real yet - it was just a planning setback, far away from us and our daily lives.
Pretty early on I started following the numbers in various countries on Worldometers - cases started popping up in Europe, a handful at first, then hundreds, then thousands.
On March 16th, at over 6000 known cases of COVID-19, France entered its first lockdown period. I'd always taken "this thing" seriously, despite a lot of friends just kind of shrugging it off, so I felt vindicated to some extent.
And then we both caught it.
It's not entirely clear where we got it from. Some of the neighbors caught it, too. Someone at my partner's work place definitely had it and still showed up to work, mask-less. And then there's shops, the street, transportation — so many potential sources we couldn't really keep track.
Back then, France wasn't super well-equipped to deal with COVID cases. In my case, it was two weeks of being extremely tired, feverish, sleeping most of the day. My partner wasn't so lucky.
At first she was exhausted, and slightly out of breath when exercising. Then she was out of breath just walking from one side of the room to the other. Then she lost her sense of smell and her sense of taste — that one was especially troubling.
And then breathing got more and more difficult. Every night for a week, she would try and concentrate on breathing normally, and I'd watch over her, and we'd both wonder: is this the night we drive to the emergency room?
We didn't want to overload the healthcare system. We didn't want to contaminate anyone. We were (obviously) self-isolating by then. If she just recovered on her own, then there was no point in taking the risk to be around other people and potentially infect them.
After a particularly scary night, we both woke up, and it wasn't better, like it usually was in the mornings. So we packed the essentials and I drove us to a clinic that had a COVID response unit.
There was a designated entrance for potential COVID cases, with an airlock, and nurses with a thermometer gun (just aim on the forehead, beep boop you got fever) — after that, you go sit with the others in a waiting room until a doctor can examine you.
Since her symptoms were way worse than mine, she went first, and we didn't really get a chance to talk. I saw a doctor shortly after, and after describing my own symptoms (and also hers), while I was in the room with him, he looked up her chest scan results on the computer and went "yeah, you both have it, there's no point in getting you tested".
My symptoms were so mild, I was sent home — just self-isolate until it's over. Hers weren't, so they gave her a room and kept her for the night.
I didn't get to see her, because she was already in the room by the time the doctor was done with me, and because of COVID, there were absolutely no visits allowed.
It's kinda hard to stop your brain from racing in these situations. The only thing I could do was get home, alone. Walk the dog. And wait.
I did drive back to the hospital with some more things for her, but there was no way I could see her.
Her dad learned that she was in the hospital and called me, asked if she was fine. I didn't know what to answer. "I don't know any more than you do, all we can do is hope".
They gave her some medication (blood thinners, among other things) and she spent the night. The day after, she felt a lot better, despite her chest scan showing significant lung damage (glass-like spots all over).
The doctors weren't clear whether those were going to heal or not, or what would happen with her sense of smell and taste, but her condition didn't worsen and she never got to a point where she needed to be intubated.
I picked her up and got her home, and then we waited some more. Over time, she started feeling better. Her sense of smell and taste came back. We're still unclear about the long-term effects, and it's hard to estimate how much one's lung capacity has changed but... for us that episode is mostly over.
In the meantime — and for the rest of 2020, we were confronted with the general population's disdain and disbelief towards COVID, ranging all the way from "it's just a flu" to "it's a plot from the WHO to get everyone vaccinated with 5G chips".
The word "post-truth" was first used in 1992 in reference to Watergate, the Iran-Contra Scandal, and the Persian Gulf War. It was spot-on then, and again in 2016, but to me personally, "we live in a post-truth era" never felt as real as it did in 2020.
It didn't matter that people knew other people who got it. Or who even died from it. The level of denial and the amount of conspiracy theories have been just... so incredibly high.
I was already pretty tired of fighting off propaganda to which family members often fell prey, but 2020 cranked that up to 11. Not a week went by when there wasn't some outlandish tale of someone manufacturing the virus, the masks being a preparation for something more sinister, and so on and so forth.
That problem won't go away in 2021 — we (as a society) don't really know how to address it. To make things worse, measures to combat disinformation exist alongside actual censorship: the situation varies depending on your country of residence.
I don't believe the virus was manufactured for some nefarious purpose, but billionaires did get richer (and multiplied) profiting off the pandemic. The latter doesn't necessarily imply the former: there's always folks profiting off of disasters, no matter what form the disaster takes.
Various governments had initial response to COVID ranging from "suboptimal" to "downright criminal", and contradicted themselves several times over, but that doesn't mean it's okay to just stop paying attention and do whatever, disregarding any recommendations. We're all adjusting.
As always, there is nuance everywhere. And the truth of evil is rather boring, not exciting like in the conspiracy theories. It's a lot of hard, unsatisfying work to keep track of what's actually going on.
Meanwhile, the divide between those who do try to keep up, and those who forward conspiratorial e-mails and WhatsApp messages grows.
Let's uhh... look out for that next year.
A wedding? In this economy?
Our wedding... did not happen as planned! In fact, it didn't happen at all. Planned in late 2019 for the summer of 2020, we were not in full lockdown by the time the date rolled around, but there were severe restrictions on public gatherings (for good reason) and border crossings.
It was a nerve-wrecking few months (on top of everything else) of having calls with everyone involved (the venue, photographer, florist, etc.) and trying to figure out what the government's next move would be. And also, if a wedding was still technically allowed, would it be wise to risk it anyway? Just because it's legal doesn't make it a good idea...
Eventually, we postponed the whole thing to 2021, which... well, we have no guarantees the situation will be any better. Let's hope the vaccine rollout is quick and effective.
Moving on to another job
For five plus years, I've really tried to make a difference at my old job. I was the "other engineer" in an already very small team, and that meant a lot of things, both good and bad.
In a way, that meant a lot of freedom. I had access to most everything, and I could, technically, just "jump in there" and make a difference. In practice, it also meant a lot of pressure. I was always thinking of ways to better the business, and was always painfully aware of all the issues it had.
I was also very involved publicly with my old job. My twitter feed was half personal things, half work things. A few folks mentioned that they'd only heard about the company through my Twitter.
I had no office, no co-working space, I worked out of the living room on the same computer I used for personal stuff. The work day never really ended, since my 6PM was their 9AM. I could spend an entire day working on something and only discover in the evening that there was some other urgent thing I should've been taking care of.
I never really had a chance to work with a larger team, because the budget for a larger team didn't suddenly start existing, no matter how I hard I worked.
I regularly engaged in lengthy discussions about how various aspects of the business should be run. I believed these made sense, as, having joined fairly early on (before the business became self-sustaining), I thought my role was closer to "co-founder" than "employee number N".
I was wrong. That was made clear to me fairly late in my tenure there, and I think it broke me a little. I had invested so much time, effort, and money into it, for so long... it was certainly a sobering clarification.
Eventually, the situation became untenable for me. I developed generalized anxiety. For a while, I couldn't drive without fear of passing out (I could feel myself starting to go). I had very little energy to consider doing anything else, let alone actually do it.
I started trying and dissociate myself from work. I stopped tweeting so much about it, and I consciously made the decision to stop carrying the pressure/guilt of every little thing that went wrong. That would've been unthinkable even a few months before: I would've dropped everything and jumped on whatever needed to be done, as founders do.
I also started thinking about a way out. Well.. continuing, really. I had noticed a long time ago how draining this job was on me, and I knew things had to change, or I'd have to leave. But sunk cost fallacy, potential emotional fallout, the fear of the unknown, impostor syndrome, and anxiety all worked together to keep me there for much longer than would've been wise.
I started taking my writing more seriously. In August of 2019, I launched my Patreon, so folks could financially support my writing. I had no idea whether it would work or not. But it did! Folks liked my writing, and support kept pouring in, more and more each month.
One year later, I had taken enough distance to feel comfortable making big life decisions once again. On August 9, I wrote down a transition plan, e-mailed it to the team, and immediately after, announced my departure on Twitter, to lock me into the decision.
This was a huge step for me. From then on, I would try and deal with my issues, not just try and endure them.
Friends who had been supporting me all these years were ecstatic.
The team was sad to hear about my departure, but some said they saw it coming.
The general public, who had no knowledge of my working conditions, were confused, but overall very supportive. 💖
After announcing my departure, I started looking for other jobs. I interviewed at a couple places and eventually joined a company that has nothing to do with the games industry, that has around 160 folks on its payroll, has values that align well-enough with mine, and that pays me to write Rust!
I've tweeted out many times the names of my old employer, and once the name of my new employer — they're not exactly state secrets. But I don't want to repeat them here, because moving forward, I want to keep work at work as much as possible.
And although I still get overly passionate about work things, and probably still work too much overall, better separation is doing me a world of good. There's work Amos, and Twitter/blog Amos, and they are separate facets with separate standards, objectives, and rules.
Health scares and health care
As I mentioned, my partner was several affected by COVID in the first half of the year. For the rest of the year, we switched places.
I've been subject to chest pains for quite a few years now. They come and go: sometimes it's just a spot that hurts a little, sometimes it's hard to ignore for a couple minutes.
And one day, it got really, really bad. The pain, on the left side of my chest, would not go away. Stretching made it worse. Standing up and lying down both made it worse, somehow.
Over the years, I had seen a couple doctors and come up with a few theories: maybe it was anxiety? Maybe indigestion? At any rate, it probably wasn't anything too bad.
But that day the pain was unbearable. I set up a meeting with my general practitioner in three hours, but in the end I couldn't even wait that long. My partner drove me to the emergency room and I waited for what felt like an eternity but was probably at most twenty minutes.
Once admitted, they started measuring my oxygen saturation, heart rate, blood pressure, listened for a heart murmur, all the usuals. I'm usually pretty stoic, but in that moment, surrounded by overworked nurses and hit by the realization that, this was it, this actually brought me to the hospital, I broke down in tears.
I was given an exam room. A doctor came, drew some blood and told me we were waiting for the x-ray machine to be ready. She thought I may have a collapsed lung. It is apparently extremely painful, there's a few treatment options, and it fit my profile really well: tall, skinny, smoker.
It wasn't "good news" per se, but it honestly felt good to have some sort of concrete, scientific explanation for what I'd been going through for years. I thought, this can be fixed, and then it'll stop. (Actually, once collapsed, lungs actually have a tendency to stay fragile and collapse again, but still: there was an explanation, and things to do).
I was mildly reassured, until the nausea kicked in. I started feeling woozy, and my vision started declining. I had chills and started panicking. I fought my way to the upright position and exited the exam room, walking haphazardly towards the nurses' station, shouting out "hello? I think I'm about to pass out, anyone? help?"
Eventually a nurse took notice and firmly told me to get my ass back in the exam room because if I was to barf and collapse, the hallway was "not gonna work for that".
(I really did not want to be a hassle for anyone — I almost didn't say anything when I first started feeling weird, but I was genuinely scared for my life and had no idea what was happening at that point).
I walked myself back to the room and sat near the sink, just in case nausea got the better of me. At that point, my vision was almost completely gone. My eyes were wide open but all I could see was just... fuzzy dark?
Anyhoo, I didn't pass out. My vision started coming back, and so did the doctor, who was wondering where I had gone (the sink was behind the door).
"Over here!".
I explained what happened, and she went "oh yeah, you're skinny and we drew some blood, so a little reflex syncope isn't out of the question".
Ah! Well then.
We did an x-ray, and I was wheeled out to another hallway, where I waited about two hours and a half. I had time to make a few calls and reassure some folks. Eventually, still not wanting to be rude, but also fairly curious about my test results at that point, I asked a nurse when I'd see the doctor again.
The doctor eventually showed up and told me "well, it's not a collapsed lung". Oh! "Right now, we're thinking pericarditis". What now? "It's an inflammation of the fibrous sac surrounding the heart — that's why you're waiting so long, we're expecting a cardiologist".
Oh. Well that's.. that's heart surgery. Did I mention I turned 30 in 2020? Not to sound entitled or anything, but I wasn't planning on heart surgery for another fifteen to twenty years at least.
Another round of phone calls, it was harder to be reassuring this time.
Another half hour, doctor came back "well, we don't think it's the heart anymore, we're sending you home". I wasn't able to establish why they didn't think it was the heart anymore, did someone else give a second opinion or was the cardiologist just not coming, at any rate, they ended up giving me the same explanation my GP gave me a year prior: it's just chest pain.
So, just muscles that are, I guess, unhappy? Due to posture and whatnot.
They gave me a bunch of drugs for the pain and sent me to physical therapy for a few weeks. It felt weird to go out and exercise, under prescription, in the middle of a pandemic when all the gyms were closed, but hey, that's 2020!
Later that same year, I went to see a dentist about a horse cavity, and,
while chatting, it appeared that I should've gotten my wisdom teeth removed
years ago, and that yes, that does have an effect on posture (and can cause
jaw problems), and in turn, contribute to awful awful chest pain.
So we all learned a lot that day, and I got my four teeth yanked out of there a few weeks later (as soon as operating rooms reopened, since COVID cases stopped increasing as fast). For those of you who saw me on video calls with hamster mouth: thanks for not saying anything. Those 8 days post-op are not fun.
Since then, no noticeable pain. I still have a few things to fix up, but the most urgent stuff has been taken care of.
But also: a new place
I know what you're thinking! Amos, that retrospective is already pretty long! It seems like the year has been fairly loaded! Surely there's no much else to tell?
Well, you're wrong! We moved out from a place that had basically two closed rooms: the bathroom, and the... boiler room? Into a place that has many, many doors!
We now have a room that's an office, a room that's our room, and a room for friends. We can now decently host someone for extended periods of time (which we are doing at the moment, for Reasons).
We can start the washing machine or dishwasher without disrupting the entire household. We have proper underground parking! The external doors work!
Now that we're all moved into the new place, we keep being reminded of annoyances from the old place we'd just gotten used to. It was an old barn converted into apartments, which explained why it was oddly-shaped and impossible to furnish (much like me).
This new place, and all the healthcare stuff we just went over, were made possible by... changing jobs! Which made those affordable.
Big life changes have this snowball effect sometimes. I'm super thankful everything just seemed to fall into place.
Writing more (and hopefully better)
Although my Patreon was launched the year prior, it was in 2020 that it really took off.
At the start of the year, 29 folks supported me on Patreon. As I'm writing this, there's 165 of you. I can't put into words how much I'm thankful for all the support!
Since I changed jobs, and the new one pays much better, I had to give a good long thought about what would happen to the Patreon. It is definitely "extra money" — but also, having spent most of my professional career trading high salaries for the hope to contribute to something special, I don't have much in the way of savings.
Eventually, I realized that, no matter what the day job paid, this was also "extra work". I work nights, and week-ends, to improve the site and publish articles regularly.
A piece like Advent of Code — Day 13 took five days to put together!
Knowing that this work is being financially rewarded allowed me to put time, not only into articles, but also improving the website itself.
In 2020, I wrote a custom server in Rust for this site, which supports Logging in with Patreon, generating friends links for time-gated articles, and grants me a comfortable editing and publishing process, so that I can focus on the content itself.
(Starting this "rewrite in Rust" was arguably a fool's errand, but it is done, and it works great! Arguably one of the best bad decisions of 2020).
The new website had a few features I've always wanted: proper navigation for article series, full-text search (via SQLite), a dark mode, a setting for font ligatures (I try not to judge those who disable ligatures, but it's hard).
Soon after, I launched /r/fasterthanlime to provide a place to discuss my articles. I integrated with the Reddit API so there'd be a "Discuss" button at the bottom of each article, which would either make a new submission, or redirect to an existing one.
Later, I added a proper image processing pipeline. I've discussed it before: images (photos, screen captures) are now served as AVIF, WebP, or JPEG depending on what your browser supports.
Diagrams start their lives as
draw.io files, get converted to PDF,
then to SVG, then that SVG is optimized for size. This means all the diagrams
on this site contain only paths, and reference no external fonts — which makes
them perfect to download and share or print. A bit of CSS trickery (based on hue-rotate
) allows the diagrams to look "good enough" in dark mode as well.
Cool Bear is universally loved, but even his most ardent fans were growing tired of how much room "Cool bear's hot tip" boxes were taking up.
Cool bear's hot tip
They look like this. I don't think they're too big, do you?
So in Veronica Mars and NTLM password hashes, I introduced a new style of dialogue, that's more compact:
It looks like this!
I know! I made it!
Lastly, I recently added support for KaTeX, so I can try and explain some maths:
Of course, there's no shortage of ideas on how to further improve the website: what about more dynamic content? What about fixing the reading time estimates? What about better navigation still?
All of these, and more — will have to wait for next year.
What happened on birdsite
But 2020 hasn't been all fun and games.
???
I've been trying to keep quiet about it, but I regret to inform y'all that I have reached ten thousand followers on Twitter, which means I should transition from "barely tolerable" to "completely insufferable" any time soon.
Like everyone, I have a love-hate relationship with it. On one hand, it's a constant stream of both terrible world news, and other people's "highlight reel" (which is especially a downer when you're struggling to just, you know, get by).
Regardless, let's take a look at some topics I've shared hot takes on:
- Chelsea Manning (before she was released)
- The Go Language (unfortunately)
- Rust error handling
- The Orange Site's reaction to my articles
- The Rust difficulty curve
- The Python difficulty curve
- Everything is a Programming Language
- Famous Last Words
- Electron vs QT5 (ill-advised, don't open)
- React Native Windows
- True zero-copy programming
- Sleep deprivation vs ADHD
- Valve's dominant position is a problem for indies
- The work ethics of TV villains
- Trying to make nVidia laptop graphics work on Linux
- Why certain folks choose to stay away from Mr. Blow
- Speculation on whether or not I am a Mozilla shill
- Fun with operator precedence
- USB horrors
- The plural of index is indices...
- That time my Google account got pwned
- How to check if a number is even
- Industry-standard free labor
- Giving up
- Dynamic linking
- Serialization formats and default values
- The youtube-dl DMCA mess
- Google Cloud Platform
- YAML and its alternatives
- I dislike Dockerfiles
- The Lying King
- Software in the 80s sucked actually
- Reddit is occasionally a snake hole
- Getting intimate with C++
- You can't just hide syntax in comments
- The cycle of abuse
Onward and upward
It's time to prepare for a new year. A daunting task, for sure.
There's no guarantee that anything will be different. Or if it is, that it'll be better.
But maybe it will be!
Maybe we will collectively strive to be better, having learned from a year full of harsh lessons. That part is on us, really.
In an age where nothing really seems certain, where everything could change at a moment's notice, it's comforting to consider that some things do end, eventually, even if it's just a rotation around the sun.
Good fucking riddance, 2020. I won't really miss you.
I'd like to thank all of you, again, for all the support you've sent my way over the years. I hope you're all taking good care of yourselves, and that you're not forgetting to be patient. Happy new year!
Here's another article just for you:
The HTTP crash course nobody asked for
HTTP does a pretty good job staying out of everyone's way.
If you're reading this article, there's a solid chance it was delivered to you over HTTP. Even if you're reading this from an RSS reader or something. And you didn't even have to think about it!
"Not having to think about it" is certainly a measure of success for a given technology. By contrast, . I wish I didn't.