Another year-end review — the sixth since I started writing them. I’m quietly sliding toward 29, and I’ve started feeling the anxiety of it in ways I couldn’t have understood when I was younger. I didn’t even mention my birthday on social media this year. That’s when I finally got it — why some people don’t want to celebrate.

This year at work was a long stretch of uncertainty, and my efforts to break out of it were winding and difficult. I thought hard, tried a lot, and did my best to escape the drift. So this year’s theme: Escaping the Drift.

Life

Every year I start with work, but not this time. This year, I’ll start with life.

Romance

Big news: I finally started dating someone! This is the most important thing that happened to me this year, so it goes first. I’ve always kept relationships private — they’re personal things, not for broadcasting — so I’ll leave it at that.

People

My college roommate and close colleague Zyktrcn left the company and moved back to Guangzhou, taking Xiaoxi (our adopted cat) with him. There’s a hollow feeling left behind. The friends I’ve made since starting work keep moving on and scattering. My old college buddy and his girlfriend moved to Suzhou; the study group I was part of — Wall-E and Ellia — both left; our legendary team mom Sara left two years ago, and her departure quietly shifted the whole team’s weight. Sometimes I’ll be going through old code and see a commit from a former colleague, and I’m back in those years when the office felt like home.

As a team leader once said at a farewell dinner: “Together we burn as a single flame; apart we scatter into a sky full of stars.” I just hope they’re not only passing through.

I also moved apartments this year. Before packing up, I took one last photo from the balcony — still breathtaking.

Travel

Lots of travel this year.

👪 Dapeng, Shenzhen: Family came for the New Year; took them around the Dapeng Peninsula.

🍺 Beijing: Business trip early in the year — conferences, but also old friends I hadn’t seen in years, wandering through winter alleyways and catching up.

🐚 Huizhou Shuangyue Bay: First trip with my girlfriend. We collected shells on the beach.

Fuding, Fujian: Took a long holiday over Dragon Boat Festival, stayed at a guesthouse deep in the mountains. A different kind of stillness.

🐂 Shunde: Wandered through Qinghui Garden. The beef offal noodles nearby were incredible — we actually detoured back for them on the way home from Zhuhai.

🐬 Zhuhai Chimelong: Ocean Kingdom. Pleasant, though I was too scared for the roller coasters.

🎏 Qingyuan – Yingde – Conghua (National Day road trip): The Qingyuan river rafting was shockingly fun.

🌊 Xunliao Bay, Santiaoshi Island: Team retreat. Sparse supplies on the island, but gorgeous photos from the sailboat.

👻 Changsha: Drove up ourselves — 20 hours round trip. Ironically, what stuck with me wasn’t the food but a late-night highway stretch past a roadside cemetery while listening to ghost stories.

🎰 Guangzhou: Reunited with high school friends. VR zombie shooting, claw machines, escape rooms. We had an absolutely brilliant time.

Things I Bought

Some notable purchases this year:

  • Steam Deck: Collecting dust, but the moment I hold it in my hands — even before starting a game — I already feel happy. An entire game library in your grip. Pure childhood dream energy.
  • BOOX Left2: Switched from my Kindle Oasis because Kindle’s WeChat Reading support is awkward. The BOOX physical page-turn buttons are excellent. Had to send it back for repairs after six months though. My Kindles ran for years without issue, for context.
  • Insta360 GO 3: Perfect little camera for travel — I leave it in the car now. Wear it on a pendant for river rafting; attach it to a tripod for vlogs; the auto-edit software is painless. Two downsides: night photography is genuinely bad, and the built-in storage can’t be expanded, which makes offloading footage a bit annoying.
  • Biyuanquan Water Dispenser: Instant hot or cold water, any temperature you want. Regret not knowing about it sooner.
  • Dyson Hair Dryer: My girlfriend swears it’s in a different category. She hasn’t used conditioner since.
  • AirPods Pro 2 (USB-C): My Pro 1s survived a full washing machine cycle but lost their noise cancellation. Upgraded when the USB-C version dropped.
  • Momentum e-bike: My daily commute vehicle. Three levels of assist, ~35km range (enough for a full week of commutes). Uphill it’s like cheating. Without assist it’s a regular 7-speed bike — a bit heavy to pedal unassisted, but manageable.

Test Drives

Went along for test drives with different friends this year. My impressions:

  • AITO M5: The intelligent driving feature had a navigation hiccup — missed a turn and went straight. Interior style felt dated to me.
  • Avatr 12: The design hits exactly my taste. The electronic side mirrors take adjustment (though they’re optional). No HUD.
  • Porsche 718: Stunning to look at, though they’ve become so common in Shenzhen that the garages feel like a mix-and-match puzzle. Posture is comfortable, driving feel is sporty. Interior is dated; the speakers are just functional. Below 100km/h it shakes noticeably and the cabin noise is high. Didn’t get to experience the supercharger.
  • NIO ET5T: Good-looking, great driving feel — balances sport and comfort. The NOMI voice assistant is charming. No HUD though, and the driver’s seat sits high enough that the side mirror blocks about a quarter of the forward sightline. Battery drain is a bit heavy. NIO’s battery-swap system helps though, and the high seating position matters less in an SUV format. Might go back to try the EC8 or ES8.

Exercise

This year I committed to badminton (also how my girlfriend and I met). Played 59 matches — I can hold my own now, no longer a complete beginner. Self-titled “front-court windshield wiper.” Actually hitting decent clears from the back now.

Also climbed Tanglang Mountain once.

Overall: my physical state has improved noticeably since I started moving more.

Emotions

Still keeping a daily mood journal. iOS 17 even released Journal and the Psychological State feature in Health this year — apps I’d been imagining building myself.

This year’s mood log, below. Aside from a particularly difficult stretch in June (more in the work section), I’ve maintained a sense of small daily contentment.

Why keep a mood log? I went into this in Monthly #19: The Meaning of a Diary: recording is how we prevent information from escaping us — and how we prevent ourselves from escaping ourselves. Recording your life is how life becomes whole.

Closing this section with a line from Douban’s 2023 community retrospective: “We invest fully in life itself — with love and attention, piercing the most concrete details, crowning ourselves in our own micro-universes.”

The Cats

Gloves and Puff are doing well. Gloves especially: 50% sleeping (in a completely spread-out dead pose) and 50% eating (with his whole face jammed into the bowl). Puff is still mischievous but more responsive — at least she’ll turn around when you call her now.

No recent photos, so here’s one just taken:

Learning

This was the year of large language models and AI. With AI assistance and better tooling, I absorbed knowledge more efficiently than before. Here’s a quick overview of my setup.

In 2022’s Monthly #16: My Personal Information Flow, I described how I process information. Some refinements this year:

Whiteboard thinking: LogSeq, Obsidian, and Heptabase all support whiteboards and Readwise integration (Muse, Wujianji, GoodNotes don’t). When synthesizing highlights and notes, whiteboard view helps organize the flow. I’ve used this approach for both planning documents and this year’s monthly letters.

For research rough drafts, I prefer Excalidraw — I’ve talked about this in Monthly #24: Ten Years in Programming. A topic graph can grow to 200+ MB and Excalidraw handles it without breaking a sweat.

For AI tools: OpenAI Plus is my first recommendation, followed by Perplexity, DALL-E 3, and Poe. These do require a VPN to access in China; a Microsoft cloud server works well as a proxy. Perplexity deserves special mention — it’s essentially replaced Google for me. It integrates search results into its answers and handles PDF and image analysis. GPT-4 quality output:

Perplexity’s free tier is entirely sufficient (it just doesn’t use GPT-4). If you sign up via https://perplexity.ai/pro?referral_code=0ZSAD0VT, you’ll get $5 off if you upgrade later.

For users without reliable VPN access, Raycast AI works without network restrictions and supports GPT-4 and other models. I use it for most in-depth conversations (this is the usage counter from my work laptop):

It also supports custom AI commands via prompts. My regulars: extract JSON config from WeChat Bot responses, compress JSON, summarize URLs, convert JCE protocols to TypeScript interfaces, generate mock data for Whistle responses —

And beyond AI, Raycast itself is exceptional. Work usage stats: launched Arc 23,000 times through Raycast; launched Terminal 2,000 times.

You can sign up at: https://raycast.com/?via=airing

Also worth mentioning: Rize, which I covered in Monthly #23: Time Management in a Multitasking World. Genuinely helps with focus and distraction resistance. Sign up for a free trial month at https://rize.io?code=291287 (Mac only).

Arc has also fully displaced Chrome and Safari as my main browser. Tree-style tabs, custom spaces, split view, AI tab renaming — all legitimately useful. Sign up at https://arc.net/gift/ab29c0b8.

This year I automated several parts of my information flow using IFTTT and its AI features:

  • IFTTT monitors my Inoreader subscriptions and sends items matching specific keywords (like “annual review”) to Cubox, with Telegram notifications.
  • Rize’s daily focus summary emails get forwarded to Inoreader; IFTTT then summarizes and shares them to my Telegram channel.

  • Starred articles in Cubox trigger a webhook to Inoreader, then IFTTT forwards them (with AI summary) to the Telegram channel.
  • A GitHub Action + IFTTT pipeline generates a weekly coding report from WakaTime.
  • Similarly: a weekly Last.fm listening summary.
  • GitHub Stars, Douban updates, and Weibo activity all feed into IFTTT subscriptions.
  • New blog posts are auto-notified via RSS + IFTTT to the Telegram channel.

I also tried Notion AI briefly but dropped it. Notion did release a Q&A beta — the concept is excellent, letting you query your Notion knowledge base via AI. I got beta access, and here’s what it looked like:

In practice: it requires very precise questions, can’t target a specific knowledge source, quality is notably below GPT-4, and often it’s faster to just search manually. Promising concept, but not mature yet.

Work

Now for the part that gave this year its title.

In January–February, I found myself uncertain about where I was going professionally. That uncertainty crystallized in May–June when I got COVID and spent days lying flat. Questions I’d been suppressing finally broke through. I’m passionate. I work hard. My reviews are good. My resume looks great. But — was I doing work I actually cared about? I realized I’d been giving 100% not because I loved the work, but because the people around me believed in me, and I didn’t want to let them down.

Since the Flutter project wrapped up, nothing at work had genuinely ignited me. The past two years had been routine at best — fragmented, simple, repetitive. No breakthrough, no meaningful growth in sight.

So I submitted my resignation. In the letter to my manager, I wrote:

“Right now I need to break out of this particular maze, and the key is my own mindset — but even if I solved my mindset, the maze itself would still be deteriorating. If I just adjust my attitude and keep advancing through levels, I’ll grow increasingly numb — handling projects with robotic efficiency, until the parts of me I care about — what I love, what I pursue, what I dream of — gradually disappear in this endless maze-clearing. I think about a line by E.E. Cummings: ‘To be nobody-but-yourself in a world which is doing its best, night and day, to make you everybody else — means to fight the hardest battle which any human being can fight; and never stop fighting.’ All I want is to remain myself. That is my bottom line.

To not lose myself — I’ve been writing annual reviews since 2018. I know the way to stay grounded is to keep examining and reflecting, then look forward. You’ve probably noticed: I do best with research-type, deep-focus work. That’s why Flutter went well, why my philosophy thesis went well, and why it’s always been that way. I think about staying up until 3am alone in the lab working on a robotics project in junior year — I was genuinely happy. I can’t remember the last time technology excited me that way. And beyond work: because of my life experiences, I want a rich life. I won’t give 100% to projects I don’t care about.”

What I hadn’t expected: my manager agreed with me. He said he’d try to keep almost anyone else, but for me — he understood, and he’d support whatever I chose. Whether things went well or not, he’d be in my corner.

That conversation resolved something I’d been carrying for years. A big part of why I’d been reluctant to leave was my gratitude for his support and my attachment to the team — I hadn’t realized those ties had become chains. But they weren’t chains at all. They were the force that would carry me forward.

In the end: I didn’t leave. Three levels of leadership kept me in conversations, and I finally agreed to a team transfer and a project change.

The new assignment brought real growth — a proper feel for the business, A/B test fluency, understanding how cohort segmentation affects data, learning to pull attribution from multiple angles. Technically too: I went deep into Cocos rendering, wrote a C++ library integrating a GFX module into the game engine. Got hands-on with Android development, implemented multiple resource-loading modes, built out iOS game engine functionality from scratch. At some point I was writing JS, iOS, Android, and C++ simultaneously, debugging the full game engine pipeline — while my 96GB iMac started struggling to keep up.

PS. A particular week’s WakaTime coding stats:

I can’t call this luck. I can only say I’ve been grateful, all the way along, for the people who gave me understanding and belief and support — who kept me from drifting.

Through all of it, the original intention never got lost. I’ve always hoped to use the things I can build to make the world a little better. It’s not much yet, but I joined the W3C Accessibility Working Group this year — a small first step.

The company also ran IDP career assessments. My data:

Ambition is supposedly the core of career development — my “Success Motivation” came in at 9.8. Strong marks in thinking and execution too. Interpersonal dynamics scored low, which tracks: I’m genuinely built for heads-down, research-style work.

Writing

Seven monthly letters this year — paused for a few months in the middle due to work:

Also published an old piece on Sspai that got an unexpected wave of grateful comments:

Reading those, I felt a warmth I hadn’t expected. Writing used to feel purely personal — a way to preserve thoughts before they slipped. I hadn’t considered that what I thought could reach someone else.

Someone once observed that one of the first joys of infancy is discovering you can affect the world around you. In writing — this act of creation — maybe I’m seeking something like that: the feeling of leaving a small trace on the world.

Then a Zhihu (Chinese Quora) private message arrived, and I understood concretely what writing can do for others:

I started inviting readers to write to me in the monthly letters after that. Slowly, letters began arriving. I’ve been replying carefully to each one. A reader correspondence initiative is planned for early 2024.

Technical articles this year — just two:

Fewer technical articles than in past years — partly time, partly that a lot of what I wanted to write couldn’t be published without redaction. Need to fix that next year.

Also: the blog moved. After a server attack caused losses, I migrated to a new platform at blog.ursb.me. The old site and the newsletter site are both retired — core pages have 302 redirects pointing here. Comments from the old sites were too complicated to migrate, so they’re gone. Subscribe for email updates on new posts.

Books, Films & Music

A lot of TV this year. Ranked by personal score:

TV

Unmissable:

  • Restart Life (Jusei wo Yarinaosu): ★★★★★ — six stars if I could. Rewatching reveals warm little details every time.
  • Long Season (Man Chang de Ji Jie): ★★★★★ — a literary masterwork wrapped in mystery, with remarkable narrative structure and emotional depth.

Excellent:

Worth watching:

  • White Night Chase (Bai Ye Zhui Xiong), Everything is Fine (Dou Ting Hao), Evil Spirit (E Gui), Lotus Tower (Lian Hua Lou), Graduation Season (Bie Ban), Two Weddings and a Funeral (Hao Shi Cheng Shuang)

Take it or leave it:

  • Home Away From Home (Gu Xiang, Bie Lai Wu Yang), Dream of Splendor (Ning An Ru Meng)

Film

Masterclass:

Excellent:

Worth watching:

Mediocre to bad:

Anime

Reading

  • Existential Psychotherapy (Irvin Yalom): ★★★★★
  • Human Extinction (Toshiro Kagawa): ★★★★☆
  • The Vanishing 13th Step (Soji Shimada): ★★★★☆
  • Siddhartha (Hermann Hesse): ★★★★★
  • How to Read Capital: ★★★★☆
  • Young Babylon (Lu Nei): ★★★★☆

Games

Barely played this year. Forced through the Genshin Impact Sumeru main story; didn’t open Fontaine. Tears of the Kingdom: defeated one boss. Baldur’s Gate 3: made it out of the tutorial village. Dave the Diver: dove a few times.

New Year Goals

Another year, and I’m still not setting specific goals — just trying to stay urgently aware.

Romain Rolland once wrote: “Most people die at twenty or thirty; thereafter they are only the shadow of themselves. The rest of their lives they are imitating themselves, repeating more and more mechanically and affectedly what they did, thought, loved and hated when they were alive.”

To stay grounded in what I care about and keep moving forward, I’m giving myself three lines to carry into 2024:

  • “Even a dull knife has a sword-maker’s ambition; even a candle-flame hopes to rival the sun.”
  • “Life is finite, knowledge is infinite — to live toward death is to learn without ceasing.”
  • And to recite each day: “I respect everything that happens. I pursue what my heart truly wants. I believe I grow better every day.”