Grey Li's Blog

2025 Review

What else can I do? During the period after I finally finished writing the book, I often thought about this question on my way home from work. With this pitifully small amount of time and energy, what else can I still do? The cold wind blew against my head, which had been boiling all day, and my numb feet pressed down on the pedals. I could not think it through.

I gradually came to understand why I had been so exhausted over the past few years. On one hand, it was the inevitable result of jumping into the work-centered structure of modern life. On the other hand, it was because I still wanted to keep my own ideal world at the same time. So while working, I was also trying to maintain open-source projects, build communities, read and write, learn music and languages... but clearly I did not have that much time or energy, so I always felt tired.

After the new book was published, I felt that I could not keep going like this. So I spent a lot of time thinking about and adjusting the question of "what should I do?" This year can be counted as a year of change.

Giving Up

This year I gave up a few things. I began asking myself more often: do you really want to do this?

After closing these channels, I felt much lighter. For a while, I simply went to work every day, played games after work, and went to bed early. It turns out that modern people can only maintain their physical and mental health by following this "correct" way of living. But I will not give up my vocation. I am just not yet ready to say no to work.

Starting Over

This year I also restarted some things from scratch, or perhaps things I was unwilling to give up:

Being too persistent, or sometimes perhaps too stubborn, is not always a good thing. You feel very tired. The rule that good things take time does not always work, and some things are simply very hard to solve properly. In the new year, I still need to practice giving up more, practice refusing, practice being a "bad person," and think more about my own physical and mental health.

Exploring

Although not many, there were also some new explorations this year. They mainly fall into three parts:

Work

At the beginning of the year, I experienced my first promotion, from Senior to Principal. But the biggest achievement of the year was not in my main role as a programmer. Instead, it was in my performing arts career: at the end of the year, I served as the director of the department's annual party. I spent a whole month planning and designing a stage play. Together with more than forty colleagues, we used time travel as the theme and structured the show around several key stories from the past, presenting the department's journey over the last ten years. The stage play was performed in a theater near the company. I watched the performance from below, listening to everyone's laughter and cheers, and felt a great sense of achievement and happiness. It reminded me of that classroom presentation from university.

During the planning process, we used all kinds of creative ideas. For example, we had the boss wear a captain's uniform and unveil a time engine, which was actually an air purifier with a light-up sign attached:

Boss as captain

We had a colleague wear a mermaid costume to perform a scene based on the golden axe and silver axe story:

Mermaid scene

We set the theater as a time machine and handed out flight tickets to everyone as boarding passes for the time journey. Each ticket had the person's name and "air mileage" (how long they had been with the company):

Time travel ticket

We designed various promotional posters, borrowing a line from Xu Lizhi's poem The Porter, though the shift in context was somewhat ironic. Recently I also made DVDs to give everyone as souvenirs:

DVD souvenir

CodeKitchen Community

For the CodeKitchen Community, in the second half of the year we continued to hold an offline CodeKitchen Open Source Song at PyCon China 2025, the seventh Open Source Song. I also planned two very popular community activities: the "2025 Developer Mental State Survey" and the "Wandering Notebook Project." The former was a real-time survey where people voted on site with round stickers. The latter was a message notebook randomly passed around the entire venue on the day of the event.

CodeKitchen at PyCon China 2025

Writing

At the end of the year, I published the new book that had been delayed for five years, Flask: From Beginner to Advanced, and received an endorsement from Armin Ronacher, the creator of Flask:

New Flask book

In March, I also went to the United States for the first time. With sponsorship from Microsoft, I spent a week in Seattle, attended the Microsoft MVP Summit, and experienced many new things. See this travel note about Seattle and the Microsoft MVP Summit for details.

What to Do Next Year?

There are no new annual goals for 2026, because I have not finished last year's yet... This time there are only two broad directions.

One is to become healthier in body and mind. Struggling with chronic fatigue makes people lose their love for life. I want to restore my health, and I want to regain control over my body and thoughts. For this goal, in addition to starting exercise, I will give up and adjust many of my previous plans. I will stop unimportant things, reorder the future, and continue thinking about what I truly want to do.

The other is to rebuild the order of life. I will live more offline, spend more time alone and with family, and try to immerse myself fully in everything. Return to books, music, and films. Return to science, art, and nature. Make new friends and meet old ones. Act bravely, and express myself bravely.

Finally, because I have accumulated too many games and books, I set two consumption-related annual challenges for the new year:

To avoid running into a new game I desperately want to play or a book I desperately want to read, I also set an exemption rule: after finishing five games I already own, I can buy one new game. The same rule applies to books.

I hope I can happily play games and read books in the new year.

Published at Mar 04, 2026 , Edit on GitHub