Live a Little · Part 1 (2016–2021)
Between Code and Youth
I'm turning twenty-seven soon. By the standards of this era, that already puts me in the “old folks” cohort. My second full-time job has just crossed its first anniversary. Looking back, I want to talk about the years I spent growing up with code.
2016 – A Boy and His First Lines of Code
Back in 2016, I was a book addict, devouring door-stopper web novels by the truckload. Ruby was everywhere in China, so I tinkered with Rails and deployed a Jekyll site on GitHub Pages. Wanting prettier UI nudged me into HTML basics. I even snuck in a full read of Digital Design and Computer Architecture — a Verilog HDL and computer architecture primer. I barely understood it, but teenage bravado kept me going.
2017–2018 University and First Encounters
I entered university in 2017, majoring in Computer Science and Technology. Campus was huge; even the pre-pandemic shuttle only covered half of it. Math never came easy, yet coding let me build things, so I stuck with it.
In 2018 I tried to take algorithms and English seriously while already living inside Linux. I devoured GNU and Free Software Foundation histories and helped the GNU.org proofread articles. I barely knew tools beyond basic git, so seniors merged patches for me. Mailing lists introduced me to Junyu, whose WebP image service would later go viral on Twitter.
That year I also wrote to the fresh LeetCode China launch to volunteer for solution translations. Hercy sent my first official reply, and Winston helped me land the gig. Seven years on, we’re still friends.
Of course 2018 had more stories: I failed Calculus yet met my girlfriend. That autumn I watched Crystal Sky of Yesterday with studio friends, then said on the way out:
“This movie should be watched with someone special.” I bought two more tickets to rewatch it with a junior from the club — seven years later we’re still together.
Technically, in 2018 I reset my GitHub account for the third time, experimented with Servo, learned Cargo commands, and fixed README build steps. I never imagined a future job would have me writing Rust for real.
2019 – Translation and Community
Translation carried me farther than I expected. In 2019 LCTT was still the most vibrant Linux community in China. There I met Wang and teacher Bai Huancheng; we even planned a book that never shipped, yet that collaboration remains unforgettable.
Python was booming. I picked up Flask, Django, and FastAPI and became a maintainer of audreyfeldroy/cookiecutter-pypackage, a project with thousands of stars. Audrey Feldroy and Daniel Roy “Pydanny” Greenfeld still run that legendary two-person shop.
By year end I finished the compiler course, read Crafting Interpreters, and built meco, a C project template, plus the toy language emo. I also tried Neo4j and NebulaGraph, building a graph-visualization project. I had no idea I’d later work at a graph database company.
2020 – Rust Summer and Finding a Direction
I told myself I was preparing for graduate school in 2020, yet my mind stayed half in code. I shifted from Python to Rust and joined the first Open Source Promotion Plan (OSPP) to build casbin-raft. That’s where I met Jiang Cheng and Hackerchai — Jiang later wrote a recommendation letter, and chai went on to Kong. My connection with OSPP ran even deeper, continuing to this day.
I also translated a chapter of Writing an OS in Rust and met Luo Jia, creator of RustSBI. nrc’s “Early Impressions of Go from a Rust Programmer” was another piece I translated. Their VLDB paper became the backbone of my thesis proposal, and with permission I published my notes at PsiACE/TiDB-A-Raft-based-HTAP-Database.
My thesis was a Rust-based distributed KV store built with Raft + Bitcask. If you know PingCAP, you can guess the inspiration. I studied async-raft — the predecessor of databend/openraft — and contributed to PingCAP projects. I donated to the inaugural Rust China Conf 2020 and later edited the Rust Chinese Community Daily for a few years.
2021 – From Failed Exams to First Job
The exam was a mess — I was still fixing lint in xi-editor during review weeks. I interviewed with Wasmedge for an internship, learned about WebAssembly and the ERC20 standard, and my solution was eventually adopted by the community. And forked riteraft and ritelinked from Meilisearch and Hashlink, respectively, earning a modest following. I also interviewed with PingCAP for TiChi, learning Prow deployment the hard way.
Meanwhile I contributed to Databend across CI, fuzzing, and upstream Arrow and SQL parser changes. Back then Databend had maybe ten people. I added BohuTANG on WeChat just to learn, yet after my thesis defense he invited me to join. We met in Wuhan, and his founder energy was blindingly bright. During June and July I sent around forty PRs upstream and downstream. That’s how I joined a team determined to build the “Snowflake of China.” My first real engineering job began.
To be continued — Part 2 will cover 2022 to 2025, from Databend to Apache OpenDAL and beyond.