Travel essays from the road and older engineering notes from the workbench. Two archives sharing one home, with each piece keeping the visual texture of the context it came from.
After years of living in Europe, I returned to China at the end of 2025 and began noticing daily life in a new way. From Guangzhou's public green spaces and ambient technology to Hangzhou's service culture, affordability, and nighttime safety, these are my first impressions of coming home with a different lens.
A personal travel narrative from Berlin tracing the forgotten grave of John Rabe—the German who saved over 200,000 lives during the Nanjing Massacre. Blending history, memory, and a Chinese perspective, this story explores how Rabe is remembered differently in Germany and China.
A two-day kayaking trip through Müritz National Park, one hour from Berlin by train. Connected lakes, quiet campsites, a footpath disguised as a canal, and a humbling crossing of Germany's largest inland lake.
A travelogue from a week hiking and climbing via ferrata across Italy's Brenta Dolomites — from Rifugio Tuckett to Agostini, with conversations along the way.
A conversation-driven note on what a tiny task queue teaches about batching, event loops, and DOM work.
Improving time-slicing with coroutine and JavaScript generators
Time-slicing With Continuation-passing Style to handle performance bottleneck
A practical RxJS walkthrough for building a typewriter effect by encoding time as streams of values.
A step by step guide to implement a Trie in JavaScript
New essays, early notes on what I’m working on, and the occasional postcard from somewhere I’ve been walking. No promotion, no noise.
One email every 2–3 weeks · unsubscribe any time