QIAOPANG.COM · SELECTED ESSAYS (2013–2026) · 260 ESSAYSBrowse Chronologically (2013 → 2026) ↗
QiaoPang · Programmers LifeSelected Essays · Systems, Craft & Agentic Era
Timeline ↗

A Toast to the Value of Time: Ten Years, One Vintage

A Toast to the Value of Time: Ten Years, One Vintage

Once I was a guest by the Han and the Yangtze,

Whenever we met, we drank until we went home.

After we parted like drifting clouds,

Ten years flowed away like water.

Our laughter and affection remain as before,

Though our temples, sparse now, are flecked with gray.

Why have I not gone back?

On the Huai there are autumn hills.

— Wei Yingwu, “Meeting an Old Friend from Liangzhou on the Huai River”

Introduction

For me, 2010 was a strange and wonderful starting point. A casual dinner party, like one of Lorenz’s butterflies flapping its wings, swept me into the vast and turbulent internet era. If the previous decade was one in which the internet redeemed itself after the bubble and gradually came back to life, then this decade was one of iron horses and golden halberds, swallowing ten thousand li like a tiger. I was fortunate enough to live through it—entering the game, leaving it, and entering again—moving from Beijing to San Francisco, from San Francisco to Seattle, rising and falling, and eventually carving out a path of my own. At the beginning of my “The Remains of the Day” series, I once wrote:

In short, there is now absolutely no way to turn the clock back. You cannot forever keep brooding over what might have happened in the past. You should recognize that you have lived as well as most people, perhaps much better, and that should be enough.

Ten years ago I could never have imagined that ten years later I would be so lucky, and so unexpectedly blessed, to have her (Xiaobao), just as ten years from now I cannot predict what she will become. I can make “deliberate” plans for my career and for her life, but I cannot control the outcome. Over the past ten years I have come to many, many crossroads. What matters is that I made choices. I am glad that my life has been as rich as most people’s, perhaps much richer, and I am glad that I have many, many stories to tell my children.

The following are the milestones of the past decade. When I string these scattered moments together, I feel deeply the value of time. There are still dozens of hours before the bell marking the turn of the decade. I hope this essay might prompt you to look back on your own experiences, string the moments together, and then look forward to a beautiful new decade.

Looking Back

After six years at Juniper, I began to toy with the idea of going out into the world and making something of my own. I entered startup competitions while turning ideas into code, and eventually, in 2011—the first year of China’s mobile internet—I co-founded Tucircle with Alex and Kent, beginning a roller-coaster entrepreneurial journey. (For details, see my book, The Tucircle Startup Diary: No Madness, No Life. My thanks to Posts & Telecom Press and Ms. Yang Hailing.)

In 2012, at the most difficult moment of the startup, my first little angel—Xiaobao—was born. She brought me boundless joy and, little by little, taught me how to be a decent father.

In April 2013, my first startup ended with the company being acquired for a disappointing sum. Thanks to the strong support of my boss Shalang, I returned to Juniper after more than two years away. Having experienced the domestic startup environment, I felt a strong desire: one day I wanted to go to Silicon Valley and experience how work and startups were done in America.

At the end of December 2014, with help from a succession of bosses—Shalang, AK, Gilbert, Bob, and Rakesh—and after many twists and turns, my family and I were finally lucky enough to fly to San Francisco on L1/L2 visas.

In March 2015, with my boss Bob’s approval, I left the comfortable Juniper headquarters for a somewhat lonely web-security office in San Francisco—a startup Juniper had acquired.

In August 2015, with a strong recommendation from my friend Haofei, I accepted a job offer from Tubi. Then I waited anxiously for the result of my O1 visa. To work in the United States, one needs the right status: I had not won the H1b lottery, an L1 visa did not allow me to change jobs, and O1 was my only chance.

In November 2015, the embarrassment of not winning the H1b lottery earlier in the year turned into the joy of receiving an O1 visa at year’s end; at last I could move to Tubi and stretch my wings in a purely internet environment. At my first all-hands meeting, I shared my goals with the whole team, the engineering culture I hoped to introduce, and two amusing little stories: Shlemiel the painter’s algorithm and the four-minute mile. The first change I made at Tubi was to bring in the lunchtime brown-bag talks (BBL) that had worked well at both Juniper and Tucircle, broadening the knowledge of the engineering team and even the whole company. I gave the team ES6 training and introduced the ideas of promises and observables; my colleague Zhiye shared ava; Tim from the ops team explained HLS / MPEG4 and other encoding methods; and so on.

In 2016 my colleague Marios—whom everyone affectionately called Teacher Ma—joined Tubi as CTO. Together we led Tubi’s engineering team and gradually replaced the server-side legacy PHP and ES5 JavaScript code with ES6 JavaScript, running it on a new API system I built called UAPI. After UAPI and the legacy system ran in parallel for a while, all APIs were eventually migrated successfully, and the legacy system faded from the stage. After this migration, service speed rose by an order of magnitude, while the amount of code fell dramatically (much duplicated logic was encapsulated and handled with better programming ideas), and code quality improved greatly.

In June 2016, my EB1A petition, which had been pending for half a year, finally began processing. As soon as my reentry permit arrived, I flew back to Beijing and created Tubi’s China team. The consensus I reached with the company’s CEO/CTO/COO was that this team would not be a supplement to or extension of the U.S. team, but a core team with the same “standing” as the U.S. team. After less than a year of development, the team quickly grew into the most capable team in Tubi’s engineering organization, carrying a large amount of core R&D work and product.

In September 2016, the second little angel in my life—Xiaobei—was born. So that Xiaobei and Xiaobao would have a good living environment, we gritted our teeth and bought a house in West San Jose, in the South Bay next to Cupertino, so that the two little angels could receive the best education.

In early 2017, I tried to introduce Elixir into Tubi—not only Elixir, but also many ways of thinking about software development. The Policy Engine I wrote in Elixir improved the efficiency of the rule parser I had written with Jison (a JavaScript version of Flex/Bison) by two orders of magnitude, laying the foundation for promoting Elixir within the team. We then gradually increased the share of Elixir and Scala on the backend: Elixir for server-side development and Scala for the advertising system.

All of 2017 was a year of great leaps in my devOps abilities—I had previously only written Ansible systematically, and I gradually evolved into a capable user of both Ansible and Terraform. At Tubi, engineers had to take full responsibility for their services: from writing the service to deploying it, monitoring it, and iterating on it afterward. We also gradually converted all services to GRPC—letting GRPC flow like blood vessels into and between every service. On that foundation we introduced a sidecar to handle traffic management, load balancing, circuit breaking, and other functions.

In early 2018, we gathered most of the engineering team’s strength and migrated all services from one AWS data center to another. The main goal of the migration was to script all of devOps and realize “Infrastructure as Code.” A quarter of hard work produced enormous results, and the project laid a solid foundation for the company’s expansion over the next two or three years and beyond. At the same time, we developed a high-concurrency transcoding tool—a video file could be split into any number of segments, transcoded separately, and then reassembled. In the industry, it seemed only Netflix had this capability.

After two and a half wonderful years at Tubi, in May 2018 I followed Laomao to ArcBlock, moved to Seattle, and began a long exploration of blockchain technology. Constrained by the size of the team, I tried from the very beginning to push automation to the limit in order to reduce labor costs. I built a DSL in Elixir that could start from a protobuf definition file and generate GraphQL interfaces (optional), GRPC interfaces, database schema code (optional), and documentation. Through this DSL, our engineers could iterate APIs quickly, and once an API was stable, they needed to implement only one set of logic to have internal interfaces, service-to-service GRPC interfaces, and external GraphQL interfaces all at once. Because there was no devOps engineer, I built our entire devOps platform single-handedly using Gruntworks modules—this was my first attempt to build an entire cloud architecture on AWS using three-tier subnets and multiple VPCs. I drew on many lessons learned at Tubi and brought this platform to a good balance of automation, security, and availability.

At the end of 2018, with a gradually maturing understanding of blockchain, I led the team in evolving our own application development framework from a PoC—the Forge framework. We worked day and night until March 2019, when we had a decent version.

Work and family are like the two ends of a seesaw: push one end down, and the other rises. Originally, in September 2018, Xiaobao had been lucky enough to win a place at Murdock-Portal, a wonderful experimental elementary school in the South Bay that ranks among the best in California. But because of my work, my wife had to move with the two children to Seattle at the end of the year. Of course, every loss brings a gain—they quickly fell in love with the greater Seattle area, with its mountains, water, and Vancouver nearby. More importantly, Xiaobao met her favorite piano teacher, Mrs. Olga, a Russian grandmother who was both very strict with Xiaobao and devoted to her, and whose students were to be found everywhere.

2019 was a year of ups and downs. The longer I worked on blockchain projects, the more I appreciated the elegance, simplicity, and inclusiveness of Git. I conceived a technical book about blockchain that I have not yet begun to write—most of it would introduce the unglamorous technologies that laid the foundation of blockchain: cryptography, p2p networks, network security, various data structures and algorithms (such as Merkle trees and Shamir’s algorithm), Paxos/Raft consensus algorithms, and so on. I feel that, compared with flashy incentive mechanisms and bewildering consensus algorithms, these are the technologies with real vitality. People always mistake means for ends. Only when we return to Bitcoin’s original goals do the related means become meaningful; if the goals are different but the same means (such as miners) are forcibly applied, we are chasing the branch and neglecting the root.

In September, a parent-teacher meeting turned my guilt toward my child into motivation, and I began an experiment: setting aside half an hour to an hour every evening to teach Xiaobao. After three months, Xiaobao was no longer the old Xiaobao, and neither was I. I quietly marveled: “Every child has the potential to become a genius; it all depends on how that potential is cashed in as they grow.”

In October, I ran the most perfect marathon of my life, finishing in 4 hours 32 minutes. At thirty-seven, I finally outran the footsteps of my thirty-two-year-old self. I then successfully influenced the children, and they all fell in love with running. Now we run together at 7:30 every weekend morning—I remember that in middle and high school, I would nearly cough up blood after running 1,500 meters in PE class; now Xiaobao can run 4 km in one go, and Xiaobei, with my help, can run 2 km. Running not only exercises the body but also tempers perseverance and character, and more importantly, it is a wonderful time for father and daughters to be alone and talk.

In the last days of 2019, I also did something I considered a “big deal”: because of GitHub’s generous permanent code preservation project, the Arctic Code Vault, I began selecting from the nearly four hundred articles I had published, scattered across three or four repos, the more than one hundred worth keeping and gathering them into the book_next repo I am currently using, then open-sourcing it. The PDF compiled from this repo runs to 900 pages. I compiled it into three PDFs—“Technology,” “Growth,” and “Miscellany”—as a retrospective and summary of the past six years of my life.

Interested readers can download it at github.com/tyrchen/book_next (remember to give me a star).

A Toast to the Value of Time: Ten Years, One Vintage

Looking Ahead

A person’s life should be lived so that when he recalls the past, he will not regret having wasted his years, nor be ashamed of having accomplished nothing. — How the Steel Was Tempered

On the last weekend of 2019, while running with Xiaobao, we looked ahead to the next decade. Ten years from now, Xiaobao will be seventeen and a university student.

I remember once when Xiaobao asked me: “If I go to Tsinghua to teach and teach students like Qian Sanyi, do I have to study all the way to a PhD?” I said yes. She said: “Dad, when I’m in high school, why don’t we go back to Beijing? I want to get into Tsinghua, then stay at Tsinghua until I finish my PhD, so I can teach there.” I laughed and told her: to prevent academic inbreeding (my explanation to her is omitted here), a university cannot hire its own PhD graduates as faculty. So if you want to teach at Tsinghua, you cannot have gotten your PhD from Tsinghua. She said: “Then I’ll go to Stanford, get my PhD there, and will Tsinghua want me?” I laughed heartily: “If you do that, then apart from Stanford, you can teach wherever you want!”

During the run, I brought the topic up again with Xiaobao and asked how much she wanted to go to Stanford. She said very much. I told her that studying at Stanford looked impossibly far away, but if we worked hard together, there was still some chance. She said, “Then Dad, you work hard to make money, and I’ll work hard to study.” I laughed: “Just studying hard is far from enough. You still need to find what you truly love—something you think about even when eating and sleeping, something you are willing to spend a lifetime on.” She asked, “Like how Dad loves programming?” I nodded and told her: the next ten years are the decade that will establish the lower bound of your life—no one can predict a person’s upper bound, but often after ten or twenty years, a person’s lower bound is set. So in the next decade you should try to find as early as possible what you truly love—and in the process of searching, we need to read widely, to understand and master the truths that the great sages—Euclid, Zu Chongzhi, Newton, Descartes, Euler, Einstein, and others—spent their whole lives discovering. Ten years is not long, but it is not short either. Strive so that ten years from now, the books you have read and the knowledge you have mastered—mathematics, physics, history, and so on—will be richer and more solid than your father’s; that you will have the ability to think independently and solve complex problems; that you will have a powerful will that can overcome all kinds of difficulties, finishing your goals through gritted teeth, just like running; and that you will also have a strong body and a mature mind. Xiaobao stuck out her tongue and nodded.

For me, in the next decade, family comes first. Ever since I discovered Xiaobao’s distinctive interest in mathematics and her way of thinking that exceeds that of her peers, I have felt a deep sense of responsibility: I must not let my own inaction bury this potential in my child. As long as she is still willing to learn (and as long as I still have the ability to keep her interest hooked), I will continue to teach her in the evenings. In addition to the current content (Chinese history, algebra, programming, exploration, documentaries, geometry), I may also add computer-related topics: from the history of development and principles of operation to various interesting algorithms. If her mathematical foundation is solid, we will also explore more science (physics) topics.

Beyond family and work, I have some larger personal goals:

  • 2020: Publish an interesting but still rigorous math book that connects mathematics with life. Target audience: fathers.
    • 2020–2029: If possible, gather the other parts of Uncle Tian’s Tales into a book and produce a series.
  • 2020–2029: Build a distributed ledger service that embraces the ideas of Git (a ledger, not a blockchain).
  • 2020–2024: Publish at least two Chinese technical books (topics to be determined). Target audience: programmers.
  • 2020–2024: Publish one English technical book (topic to be determined). Target audience: programmers.
  • 2020–2024: Read Zizhi Tongjian twice and reread Selected Works of Mao Zedong once.
  • 2025–2029: Apply to a school near home and pursue a PhD (which means taking TOEFL, GRE…).
  • 2020–2029: Run at least one of the six major marathons. (Hmph—I refuse to believe that if I enter the lottery year after year, I can miss out on Berlin, London, New York, Tokyo, and Chicago every single time.)
  • 2020–2029: Run at least one half marathon and one full marathon hand in hand with Xiaobao/Xiaobei.
  • 2020–2029: Write five hundred essays (basically, maintaining a pace of one a week).

My wife and I have a habit of making plans for the coming year at the end of each year. We created a repo called pursuit-of-happyness, which contains our annual plans from 2017 to 2020 (earlier plans are in Google Docs). On the last weekend of 2019, we made detailed plans for 2020 in these areas:

  • Xiaobao and Xiaobei’s development plan
  • Family plan
  • Financial plan
  • Health plan
  • Travel plan
  • Reading plan
  • Learning plan
  • Writing plan
  • Work plan
  • My wife’s LLC company plan

A Toast to the Value of Time: Ten Years, One Vintage

The biggest difference from previous years was that we added many new elements to our plans, trying to apply some project-management ideas to family life. We plan to hold a family retrospective once a month, summarizing the previous month’s achievements and areas for improvement; we also added family movie night, family writing, and a family book club. For example, for the book club, we plan to meet once a month, with everyone gathering to discuss a book they read over the past month, what they learned, interesting sentences, memorable stories…

As for the plan for the next ten years, we are still finding time to think and plan. There is a good saying: today’s life is determined by the choices made three or five years ago; and life three or five years from now is determined by today. In the coming decade, Xiaobao will move away from us and gradually embrace her own life, and Xiaobei will soon follow the same path. We hope that in this decade we can endure hardships, blaze a trail, and grow together, and that as we run toward the decade after next, we can cherish and appreciate each other.

I also sincerely hope that you, in front of the screen—whether father, mother, husband, wife, child, or in some other role—can, before the next decade arrives, sit down with those closest to you and plan your future life together. After all, the clock cannot be turned back. The value of time can be savored only by those who truly understand it, are willing to follow it, and can take control of it.

MORE IN Essays & Reading

Further Reading in This Column

View all essays in “Essays & Reading” →

Happy New Year!

In the blink of an eye, a twelfth of 2020 is gone — has your New Year plan kept pace? After a month of outrage over attacks on doctors and anxiety over Wuhan's outbreak, I send New Year wishes along with a guide to a long holiday without regret: books, Rust, and time with the kids.

Book Next Chronicles (2013–2020)3,608 chars · 8 min read

Reflections on Akeelah and the Bee

Our little one came home from a piano competition defeated and sulked for days. To cheer her up, my wife picked out an inspirational film, Akeelah and the Bee, and we watched it together. I drew strength from it too — above all, the reminder of how much a harmonious family matters to a child.

Book Next Chronicles (2013–2020)2,387 chars · 5 min read