This issue is a record of and reflection on life from September to October 2024.
🌿 Slow Travel and Startup Life
On September 27th, after returning my company assets, I said goodbye to Shenzhen — and to Guangdong, where I’d lived since I first came here as a student, all of ten years. A new chapter began.
The night before I left, I had a long, warm conversation with Kami over drinks at a bar in Mixc. He was surprised, saying it was the first time in all the years he’d known me that he’d seen me so talkative. I probably gave off a quiet, introverted impression at the company — but only because I’d chosen to put most of my energy into the work itself.
In the week leading up to my departure I said individual goodbyes to teammates. What struck me was that without exception, everyone brought up the same memory: the days we built the Flutter hybrid framework from scratch. Those months of shared effort and mutual growth had left a mark that time hadn’t dimmed. I’m deeply grateful for that chapter.
While saying goodbye to old friends, I also got to meet some new ones. A post I wrote that went on to reach 100,000+ reads across platforms brought people to me in unexpected ways. Some paid to have a conversation. A few sent emails wanting to connect. Some turned out to be people I’d worked alongside, who somehow only became real acquaintances now, at the moment of parting.
There should be many different kinds of people in a life, and their stories are worth listening to. Our own lives may only happen once — but when our path touches someone else’s and something sparks between them, that’s an extraordinary stroke of luck.
After leaving Shenzhen I drove myself to Dali. I rented a small courtyard and buried myself in development work every day. “Slow travel” is the label, but it felt more like simply moving somewhere quiet and cool to get things done. And by that point, it was no longer just my project.
The idea had been mine for years. I did extensive market research, product research, and user research. A few months earlier my co-founder on the design side happened to be in a gap period, so we sat down and refined the concept together — eventually landing on an AI and mental wellness product.
The team now has six people — four full-time and two part-time. Everyone is passionate about the project. We brainstorm together, discuss together, design and build together, and every day feels full and satisfying, much like those Flutter days I described.
As for the product itself: things are progressing well. We’re targeting an external test flight in late November. Based on the current design and internal experience, the team is eager to get it in front of users — everyone feels it could genuinely help them personally.
We’re staying clear-headed, though, constantly using and refining the product details. If we don’t hit the Beta test target by late November, it just means we’re not satisfied with the product yet. We want to put something complete and genuinely useful in front of people. Stay tuned.
🌺 Snippets from Life
A few moments from this period.
🎁 Gifts
A complete surprise from friends — gifts (and home-cooked food). Deeply appreciated.
Those farewell days were more joyful than sad, honestly. Grateful for all of it.
🚗 National Day Road Trip
Didn’t realize the little Mini could hold so much. We packed: two cats, two 24-inch monitors, a 20-inch suitcase stuffed with clothes, a down duvet, two pillows, two sets of bedsheets, and several backpacks.
Loaded up the car and drove for three days, covering 1,800 kilometers, all the way to Dali.
🏡 Slow Travel and the Courtyard
In Dali we rented a small courtyard with a rooftop terrace, at the foot of Cangshan Mountain. Morning sunlight pours into the courtyard and makes everything glow. Afternoons: tea on the terrace while working, with a view that’s genuinely hard to beat. What I love most is how quiet this area is — perfect for deep, uninterrupted work.
🌊 Erhai Lake
In the month we’ve been here, I’ve worked twelve hours a day and only gone out one Sunday — to drive around Erhai Lake.

💰 Insurance
The rear window of the car shattered unexpectedly on the drive, so I filed my first-ever insurance claim. I assumed it would just be a window replacement — turns out there’s no OEM part for the rear window, so the shop said the entire convertible top would need to go. I was a bit upset at first, consoling myself with “broken things bring peace,” but swapping the whole convertible top for what was going to be just a window replacement is actually not a bad outcome.
🐱 Puffin’s Two Borrowed Lives
Things haven’t gone smoothly since arriving in Dali. One afternoon Puffin and Mittens escaped through a gap in the courtyard railing. I rushed out as soon as I realized — one indoor cat on the loose in an unfamiliar place could run into anything. I found Mittens almost immediately. Being hopelessly incapable, she’d stepped outside and fallen straight into the gutter by the front gate, too short to jump out, just meowing helplessly (I really wish I’d taken a photo for posterity). Puffin, however, was nowhere to be found. I eventually put up missing-cat notices and a neighbor sent her back — turns out Puffin had been sunbathing on his balcony all day, and he’d assumed she was a stray.
The day after Puffin came back she started drooling nonstop, then began convulsing on the floor — full rigid seizures at the worst moments. I was scared to touch her in case I made it worse. When she finally calmed down I rushed her to the vet. Initial diagnosis: poisoning. But five days of broad-spectrum antidotes and liver support made no difference; in fact things seemed to be getting worse, with more frequent seizures and increasingly low energy.
We stopped the antidotes, and the vet suspected a neurological problem. We started anti-epileptic medication — immediate improvement, the drooling and convulsions stopped. But after a day, a new symptom emerged: weakness in all four limbs, leaving her unable to walk normally for two days. Back to the vet, and combined with the seizure history, a neurological cause seemed clear. The vet said it likely couldn’t be cured and there were few places in the country equipped to diagnose it properly — long-term medication was the path. We started vitamins B1 and B12, and within two days she was completely fine. Running and jumping all over the place like nothing had happened. Same mischievous energy, same liveliness. If anything she’s become more clingy, and seems to understand some of what we say — call her even when she’s playing hard and she’ll come trotting over.
They say cats have nine lives. She may have used another one. The last time was four years ago: she chewed through the balcony screen on the 12th floor and walked along the edge, eventually falling down to the roof of a second-floor shop. We didn’t find her until the next afternoon. The vet said the only damage was a bitten tongue and some shock — no fractures, no internal injuries. The vet called it a miracle.
Hoping both cats stay healthy from here on.
📊 Final Tech Talk
On my last day at the company I gave a technical session I’d spent over two weeks preparing. Walking through an entire rendering pipeline — from loading to display on screen — is genuinely hard to make clear. I built a demo game and used runtime breakpoints and mathematical calculations to explain ten steps in the rendering process. Tracing through all of it was fascinating, and made me feel the real excitement of graphics engineering.
Due to time constraints, I went through three versions of the outline before landing here (no point in blurring it — you can’t read it at this size anyway). The original plan was even more comprehensive — over 200 slides.

✨ Startup Notes
Communication: Slack
We’d been using Lark as an all-in-one workplace tool — more efficient than WeCom in many ways. We’d also set up topic channels in Lark where team members would post news and articles to stay sharp on the industry. But after two months of use we found things that weren’t working for us:
- Read receipts create reading anxiety: Lark shows when messages have been read, which subtly creates pressure — both to watch whether others have seen what you sent, and to read new messages quickly yourself.
- Documents feel heavy: Lark Docs are powerful but the overall experience isn’t smooth. Switching between and searching documents makes the knowledge base feel cumbersome. Tasks can be linked to Lark’s task system, but Lark Tasks is honestly hard to use. And the free tier caps meetings at 60 minutes, which isn’t enough for our weekly discussions.
- Limited native integrations: Tools like GitHub and Linear need custom bot development to integrate.
We chose between Slack and Discord and landed on Slack. A few reasons:
- Public channel design: channels are open to everyone, not a closed group chat. Team members can join channels they’re interested in. We’ve also set up information channels for rolling updates — like our old Lark topic groups — to keep everyone’s product instincts sharp.
- Efficient communication: Slack groups consecutive messages into a distinct style, nudging users to write the way they’d write an email — one message, complete context. Good communication means gathering background, problem, reason, and proposed solution before sending, without worrying whether the person sees it immediately. It’s fine as a note. No “are you there?” before slowly getting to the point.

- Do-not-disturb design: Slack’s notifications are quiet by default. Unless it’s a DM or an @mention, you’ll only see things in the activity or unread tabs. If you want to @channel, there’s a confirmation prompt first — it’s a disruptive action, and Slack knows it. Raycast has a plugin for setting your Slack status, and combined with scheduled messages and “save for later,” you can catch what matters without disturbing others.

-
Lightweight voice huddles: We love Slack’s Huddle feature. Many tools in China call this a “meeting” — you schedule it, the notification sounds like a ringing phone, and it all feels very formal. A Huddle is different: when you need to talk or share a screen, you start one and others join when they’re ready. It’s more like jumping into a voice chat in a game — lightweight and casual, which makes each conversation feel less weighty.
-
Rich integrations: Slack’s app ecosystem is well-known. We’ve integrated GitHub, Notion, Linear, Loom, and Xcode Cloud — combined with automations, it’s essentially another kind of all-in-one.


Meetings: Loom & Slack Huddles
As mentioned, full-team meetings tend to run long, so we made some changes.
Each week I record an async update in Loom first — summarizing what everyone accomplished last week, what’s coming up, and a few key items for discussion. Team members watch it and read the supporting doc whenever they have time.
When a proposal moves into the design or development phase, we start a Huddle in the relevant channel to discuss it.
This eliminates the need to find a time that works for everyone — which in itself slows the project down.

Task Management: Linear
We use Linear for task management. The Slack integration is excellent. Fill in estimates, and the Insights feature gives you an earliest and latest projected completion date for the entire project — great for keeping a handle on pace.
We organize work into two-week Cycles, each with one or two themes, which helps us stay focused on what’s most important right now.
The milestones, task dependencies, and other foundational features are also well-crafted.
🎬 Books, Films, and More
What I’ve been reading, watching, and playing this period:
- Finished: Philosophy | The Thorn of Postmodernism | ★★★★★
- Finished: Fiction | Seven Witnesses | ★☆☆☆☆
- Finished: Film | Retribution | ★★★★☆
- Finished: Film | Alien: Romulus | ★★★★☆
- Finished: Film | Drishyam 2 | ★★★★☆
- Finished: Film | Silent River | ★★★☆☆
- Played: Game | Thronefall | ★★★★★
- Currently playing: Game | The Legend of Zelda: Echoes of Wisdom | ★★★★★