Aug 2nd, 2024 |
Work
1:30 pm EDT, Auguest 2nd, 2024, Toronto Canada. I wrapped up my morning with the final project meeting and treated myself to a Baskin Robbins Strawberry Cheesecake Scoop in a waffle cone to celebrate. I don’t often indulge in sweets for health, but today was an exception because it marked the end of my six-month journey as the project lead.
For companies that have adopted the Sprint process and prioritize fast and efficient value delivery, a six-month-long project is uncommon. In my five years as a Software Engineer, leading countless projects, most feature projects have run from two to four months, with only a few extending to five months before starting experiments. For the longer platform projects, most reach a milestone around four to five months. A six-month-long project is truly exceptional and deserves to be named the Project of the Year.
Jan 3rd, 2022 |
Tech
For someone who works primarily around Python & JavaScript (and recently started iOS dev with Obj-C and Swift), setting up this blog with Jekyll is my first experience to interact with everything Ruby. I had some struggles during development around understanding some terminologies and setting up the environment, but I found comparing them with what I know in Python and JavaScript works well for me.
Feb 10th, 2026 |
Tech
You finished your day of hard browsing and casually clicked ‘Clear My Data’ on your browser. Behind the scenes, 16 different systems spring into action—cookies, cache, browsing history, autofill data, site permissions… along with a cool fire animation. A few seconds later, the animation completes and you close the browser.
My analytics dashboard says: Clear Data Button Clicked: 1.
However, it doesn’t tell me something I really care as a developer: Did your data actually get cleared? Did one of those 16 systems fail silently? Did you wait 30 seconds staring at the spinner and give up? Did you trust that it worked, or did you immediately check your history to verify?
I have no idea. And that’s a problem.

Dec 31st, 2025 |
Work
I can’t remember where I saw my first Year in Review. It was probably Google’s, sometime around 2008, back when Google was a big part of the search and internet scene in China, and when I was still a primary school kid running around on summer afternoons, thinking nothing about jobs or life.
Fast forward to 2025, Year in Review is everywhere: Spotify, Instagram, LinkedIn…… even ChatGPT. I expected it to feel awkward, but OpenAI handled it surprisingly well.

I’ve always found retrospectives useful, both for clarity and for growth. So here it is: my reflection on 2025.
Jun 21st, 2025 |
Misc
In early 2025, as layoffs swept the tech industry and gen-AI loomed over everything, I left the role I had held for five years and took a leap into the unknown. I packed my life (and dog) into two suitcases and flew from downtown Toronto to the quiet countryside near London, where, with my new neighbors - swans, geese, and ducks (hint, hint), I went through a season of interviews, self-doubt, small triumphs, and quiet resilience. There were tears—many—and at times it felt like walking through a foggy forest at night, where the moon was hidden, but somehow, the moonlight remained.
On June 18th. 2025, I signed the offer that marked the end of this chapter. This is the story of the season of the job hunt.

(Friendly Geese)
Mar 20th, 2025 |
Tech
I was recently asked this question in an iOS engineer interview. Instead of the simple answer regarding responder chain, the interviewer requested the answer to be as detailed as possible. After the interview, I digged through internet archives, UIKit documentation as well as answers from ChatGPT to look for information, and this is an revisited version of my answer to the question “What happens when the User Taps on Screen?”

Jan 31st, 2025 |
Misc
At the start of 2024, I made a promise to myself to improve my reading habits and rescue my dwindling attention span from the clutches of mindless scrolling through Instagram reels and TikTok videos. To support this, I kept my Kindle charged and in pocket as much as possible. Despite all this effert, in true deserter fashion (kidding!), I began numerous books but only finished 20% of them. Here are a few:
Aug 2nd, 2024 |
Work
1:30 pm EDT, Auguest 2nd, 2024, Toronto Canada. I wrapped up my morning with the final project meeting and treated myself to a Baskin Robbins Strawberry Cheesecake Scoop in a waffle cone to celebrate. I don’t often indulge in sweets for health, but today was an exception because it marked the end of my six-month journey as the project lead.
For companies that have adopted the Sprint process and prioritize fast and efficient value delivery, a six-month-long project is uncommon. In my five years as a Software Engineer, leading countless projects, most feature projects have run from two to four months, with only a few extending to five months before starting experiments. For the longer platform projects, most reach a milestone around four to five months. A six-month-long project is truly exceptional and deserves to be named the Project of the Year.
Jan 3rd, 2022 |
Tech
For someone who works primarily around Python & JavaScript (and recently started iOS dev with Obj-C and Swift), setting up this blog with Jekyll is my first experience to interact with everything Ruby. I had some struggles during development around understanding some terminologies and setting up the environment, but I found comparing them with what I know in Python and JavaScript works well for me.