Computer Science
Algorithm
Data Processing
Digital Life
Distributed System
Distributed System Infrastructure
Machine Learning
Machine Learning Application
Network
Operating System
Android
Linux
MacOS
Tizen
Windows
iOS
Programming Language
C++
Erlang
Go
Rust
Scala
Scheme
Type System
Software Engineering
Storage
UI
Flutter
Javascript
Virtualization
Life
Life in Guangzhou (2013)
Recent Works (2013)
东京之旅 (2014)
My 2017 Year in Review (2018)
My 2020 in Review (2021)
十三年前被隔离的经历 (2022)
A Travel to Montreal (2022)
My 2022 in Review (2023)
Travel Back to China (2024)
A 2-Year Reflection for 2023 and 2024 (2025)
Travel Back To China: 2025 Edition (2025)
My 2025 in Review (2026)
Projects
Bard
Blog
RSS Brain
Scala2grpc
Comment Everywhere (2013)
Fetch Popular Erlang Modules by Coffee Script (2013)
Psychology
耶鲁大学心理学导论 (2012)
Thoughts
Chinese
English

My 2025 in Review

Posted on 12 Jan 2026 in /Life
life

Here we are. The year of 2026!

Moved to A New Place

Each year of my life seems to have a theme. For example, immigration, Covid, having a daughter and so on. For the year of 2025, it’s about moving. Not to another city (well, technically it is another city, but still belongs to Greater Toronto Area), but from downtown to suburb.

The Urban Planning Problem of Toronto

The sign of moving came when I was still travelling in China last year. I received an Email from the Condo manager said there was a new development proposal just in front of our building. The proposal is a 50+ storey high rise. It’s embedded into multiple surrounding buildings, with gaps only between 15 meters to 25 meters. Because it’s much taller, it will block all the surrounding buildings on its side. The area is already one of the highest density area of Toronto. I thought the proposal was ridiculous and never thought it would be approved. However, I was wrong and it went through.

I was very disappointed by it. I don’t think of myself as a NIMBY, and I actually like the high density urban area. I grew up living in high density Chinese cities and always lived in apartments since around the age of 10. It’s convenient and efficient. I thought it was normal until I started to get interests in urban planning, watched videos about North America zoning problems, and experienced it first hand after I moved here. Toronto as the largest city of Canada, has two problems instead of one problem that is typical in most American cities. The two problems can be summarized by a single phrase: the missing middle. Let’s first talk about the typical problem across North America that Toronto has: too many low density areas. The problem is especially obvious in Toronto: even at downtown core, there are lots of single family homes just beyond the popular retail streets like Queen West. It’s really a waste of land and cannot be sustainable. Just in the year of 2025, Toronto failed to legalize sixplexes across the city, even with the most left leaning mayor in years, even with the risk of losing federal housing funds because of that.

On the other hand, Toronto tries to resolve the problem by creating another problem: creating areas with density that is too high. Toronto is famous for building lots of high rise Condos, even far outside of its downtown core. I really appreciate the desire of having higher density, but sometimes the density is too high for the infrastructure to support it. Especially for education: during the house hunting, I’ve seen lots of school catchment exclude the Condos just across the street. The floor plan for those buildings are also often very awkward, for example, irregular room shape, pillars in the middle of the room, mostly small one bedrooms or very small two bedrooms with no enough space for kids. It’s also very noisy. I’ve been to lots of big cities and Toronto is one of the loudest, maybe just behind New York. Instead of proper planing of the high density, Toronto just throws as many homes as possible to the land they are able to build without much push back, like in old factory and commercial area. It’s like cleaning up a house: instead of proper cleaning it, you throw all the garbage into one room and call it a day. A coworker once visited Toronto and wondered: you have so many high rise buildings, why do you still have a house shortage? Well, that is why.

As a result, most of these buildings don’t suit or even consider families with kids. People are mostly passers-by which don’t see the place as their long term destination. In this feedback loop, the residents of those buildings are mostly treated as second-class citizens: they are supposed to have noise, less good schools and so on. When people complain about problems like noise in forums, other people say “well, it’s downtown and what you’d expect”. The people are just never lived in a proper built high density area that just works and pleasant to live.

Asia countries have lots of high density areas and they are pleasant to live. For example, I find an interesting zoning pattern difference in Toronto and Chinese cities: in lots of Chinese cities, even for large cities like Beijing and Shanghai, they usually have multiple high rise buildings at the center of the block called “小区”, literally means “small area” but actually means a (sometimes gated) building compound that is built by the same developer and managed by the same company. They usually have amenities like green space, playgrounds, community centers and so on. It’s quiet because there is enough room between buildings, most of the buildings are not right next to busy road and almost all the traffic are local traffic, or even no traffic at all because of underground garage. You will trust small kids running there freely. Because of it’s at the center of the block, it doesn’t block the sun light and views on commercial streets, which makes walking and shopping on such streets pleasant. Where in Toronto, the high rise buildings are mostly on the busy streets, with single family homes at the center of a block. It makes the majority residents unpleasant to live because of the noise, and the pedestrians unpleasant to walk on the street because of the blocked sun light and wind tunnel, especially for a city with long winter.

The two problems makes Toronto has too few affordable quality homes. When the city brags how many new homes they have built, they are building homes no one wants to live. The new buildings proposed near my home is a good example of that: it adds lots of new homes on paper, but destroys many more homes near it. It just makes me sad because Toronto not only doesn’t develop with its full potential, but also actively destroys neighbourhoods I liked.

House Hunting

With the new building makes the current place really unpleasant to live, also with my daughter growing up, we decided to move to a new place. During the house hunting, I got disappointed again and again about the urban planning of the city (or cities with Greater Toronto Area). The two problems not only happens in downtown Toronto, but all over the places. There are lots of neighborhoods considered to be good but have no place to go within walking distance. There are lots of “new downtowns” in surrounding cities that built lots of high rise residential buildings, but with no commercial as planned, and even teared down some existing ones. When some of them have some commercial at the ground level, there are lots of parking space and fence separate them from the street so the street has little hope to become a vibrant shopping street.

The house hunting process is stressful because it’s a really big life decision: I don’t want to move often as I did before having a kid. There are so many possibilities, and the economic uncertainty makes it’s hard to make the big financial decision. It’s also time consuming: in addition to work and taking care of the kid, house hunting pretty much occupied all of my remaining free time.

As much as we still want to stay in the city, we were priced out for good neighborhoods with decent schools, unless it’s some really old houses which I really don’t have much confidence to maintain. So after investigated lots of places in Greater Toronto Area, we settled in the suburb. I tried my best to still make it possible to not totally depend on a car, so while the place is remote, it’s in walkable distance to schools, multiple parks, a Go train station and plazas that have grocery stores, pharmacy, fast food and so on. The Chinese community is strong here. It’s less than 10 minutes drive to some walkable main streets that usually host some events in the summer and holidays. There is also a plan to re-develop a street nearby to make it higher density and more main street like, even though I have very little confidence based on the past experience. At least I still have excuses to walk when I feel like it instead of sitting in front of a computer or in a car all day.

But even with all the plannings and careful considerations, it’s still a major life style shift. I’ve never lived in a suburb in my life. I’m not really sure if I would enjoy it or not. I still feel downtown Toronto really exciting and enjoyable. In the late spring of 2025, when I picked up a food order on a Friday night, walking along the lively Queen Street and Chinatown, looking at the vibrant lights from the shops and restaurants, where well-dressed people walking on the street, cars and street cars slowly driving by, I felt I would definitely miss the place I’ve lived for 5 years. It’s the place where I owned the first home in a new country, where my first kid was born. So I wrote a poem:

木兰花

华灯初照长街晚, 衣袂翩翩车缓缓, 参天老树影婆娑, 春夜好风无限暖。

明年许是长街远, 此梦劝君多缱绻, 关山遮月水茫茫, 青鸟去时难复返。

It’s hard to translate it to English but I’ll give it a try:

Lanterns wake the long street as evening descends,

Dresses flutter soft, and slow the traffic wends.

Old trees cast shadows, trembling, swaying low,

Spring night, sweet wind – such warmth without end.

Next year this street may lie far away,

So hold this dream close, let it gently stay.

Mountains veil the moon, and waters stretch to mist –

The bluebird, once flown, returns not this way.

Daycare

A milestone for my daughter also happened in the same spring: she started to go to the daycare. I almost overlooked this when I write this year end review blog: with the moving, the events that happened at the beginning of this year seems a few years away. Anyway, it’s such an important change to my life since my wife and I don’t need to stay with her all the time, so that we finally have some time of our own. It has huge benefit to both her and us, but with a rocky start. As expected for every child, she needed to adapt to the new schedule, which can be hard for me as well when seeing her being so sad to leave us at the beginning. But with the help of the really nice teachers there, she adapted pretty quickly and enjoyed the daycare. However, perhaps happened to every child starting a daycare, she caught all kinds of virus and the whole family was sick on and off the whole spring.

The daycare creates another challenge to the house hunting: the waiting list is really long for the daycares across Greater Toronto Area (or maybe across Ontario). And we really didn’t want to change my daughter’s school as she just fitted in. Luckily it turned out good after we moved to the new place and she enjoys the new daycare a lot nowadays (I touched on that a little bit on a previous blog). The larger new home also provides necessary space for her growing needs.

Moved In

Other than the daycare change, the moving doesn’t seem to have as much big impact to me as I thought. I work from home anyway, and didn’t really depend on downtown for things like socialize events. The only change is I need to drive for 10-20 minutes instead of walking for 10-20 minutes for decent shopping, which is less pleasant but still acceptable. I also lost the lake view when I bike in the summer, but I moved in not long before winter so that disadvantage has yet to be seen, and with much closer distance to nature, I feel like there will be some other outdoor activity to fill that gap. The disturbance was mainly because of the process of moving instead of life style change: when I moved, the team at work also had a small re-org, when I also needed to go on a business trip. Combined with the transition of my daughter’s daycare (she needs to wait for one month after we moved for the daycare), everything seemed to happen all at the same time.

But the end result is good after we moved in. I’m really glad about the layout of the new home and feel it meet the everyday function very well: I have a very bright workspace with some impressive book shelves. My wife has space for working at home if needed. My daughter has much larger space to play. We have room for a second child if we want in the future, or for family to visit. We finished the basement and now I have the room for workout (hopefully something I pickup again in the new year). With the finishing of the network setup so that I can continue to use my workstation, I finally felt settled down. Which is a perfect ending of the whole moving theme of the year.

Distributed System

Before I traveled back to China and envisioned the new year, I thought I would continue with the distributed PostgreSQL project started from the Jepsen test of Patroni. However, with the house hunting and moving, I had little time. But I’m glad I still explored the possibility to setup high available PostgreSQL with drbd, which is the next direction I discussed in the article. While doing that, I found the approach had fundamentally flaws, which I captured some in the blog Why Consensus Shortcuts Fail in Distributed Systems. I think it’s my best blog post in the past year even though the structure may not be very clear to other readers: I was mostly recording the different scenarios I explored and why they would fail. Still, some people Emailed me about the article and we had some deep discussions, which rarely happens on the Internet if I didn’t create an opportunity by writing the article.

So with the fundamental flaws of existing solutions, I started to explore my own solution. In order to do that, I need a lower level language than Scala, the language I liked the most and used in most of my personal projects. I selected Rust since it’s gaining popular on projects like Linux kernel. With that I ended the year with two Rust projects to getting familiar with the language. The first one is mostly a toy and I didn’t really touch it much after it’s finished. However, the second one resolved a long time problem of mine and really showed the advantage of Rust: fast and low resource requirement. I feel like those are good starting point to write more complex distributed system in Rust.

For the new distributed system project in Rust, I’m not aiming for something that can be used in production, but rather to learn things and provide a theoretically solution. For example, when writing a simple file lock so that no two process can run on the same machine, I explored the OS API that provides file locks and found Rust actually provides such an API. There are lots of such little things that seems to be easy and trivial when not actually implementing it. I hope when writing the project, I can fill all such gaps.

Reading and Writing

Other than the distributed system project, this blog and readings are projects that continued. I feel like I did a decent job to write down the explorations I did in the past year in the blog, even with little free time. I’m pretty proud of that.

On the reading side, the number of books are less that I’d like. But I made a pretty big change on my blog to Improve Books Section of My Blog. With that, I started to write notes after I finished a book. I feel like I get more out of a book instead of just “finish” reading it.

At the end of the year, I started a reading project about the human history, start from the most ancient ones like near east civilizations and Egypt, to classic world like Greek, Rome and Persia, to Islamic Empires, to ancient India. I already have a book list and finished the first one. Hopefully I can finish most of them in the next year. I hope this transition of systemic readings can make me understand things better and more comprehensive.

In the last year’s review, I mentioned the project RSS Brain. Unfortunately, I had little time in the past year to work on that. Even though there are some little changes, I didn’t release any version in the past year. One reason is the project is pretty mature: I use it everyday as my main gateway to the Internet’s information, and find there is little feature missing. On the other hand, the Rust projects made me have less reason to touch this Scala project. Not sure what the new year would look like for this project. Maybe I’ll add some features I wanted like 2FA login and some quality of life changes, but likely nothing big.

A Turbulent World at the Age of AI

The past year is surely an eventful year, with Trump became the new president of the US and slapped tariffs on all the countries, and even talk about annexing Canada and Greenland. In the last year’s travel back to China blog, I talked about the possibility of a war between China and Taiwan, but even I thought it’s a stretch. Who would thought a war between US and Canada would on the table in this year? With Trump testing the democracy resilience of the US, it’s hard to take anything for guaranteed. For example, what if there is really a war between US and Canada?

Ever since I migrated to Canada, watching the local events and events in the US, I started to think democracy is flawed. It’s a paradox: the average people may not have the expertise to make the best decision for their own benefits in this complex world. But if outsource the execution to the experts, they may not represent the benefit of the average people. In China, because of the authoritarian government, democracy seems to be the potential answer to everything. But now, I’m really not sure what’s the best answer. I feel lots of people in China realized the same thing (maybe something to observe when I travel back to China this year). The only thing can prevent that maybe education to equip all, or at least most voters with enough knowledge. But that needs a desire from both the people and the politicians. I don’t see any trend like this in North America. Probably China actually has a better chance once it adopts democracy because it values education a lot, even the hope is still very dim.

The development of AI has only increased the uncertainty. My daughter was born at the same year as ChatGPT was released. I thought at the time, what a world my next generation is born into! In the past year, the LLM application, especially coding agents with tool uses, have advanced so much. I started from using LLM tools as a search engine, to a more advanced editor, to solve small tasks, to complex ones in large code base and even creating the whole project with supervised planning. I feel the AI coding tools can do a really meaningful part of the software engineering now. Even if there is bubble in AI, the revolution has surely started. It’s far from the consensus though: even on tech heavy websites like HackerNews, I still see lots of denial. Some people say it’s just a static machine that output words. So what? As long as it can finish the job. Some people say it can make mistakes. So what? Lots of business and engineers are also making mistakes, incidents happen all the time and they are doing fine. I know that when work on distributed systems: lots of companies are using half baked distributed systems that can lost data, make mistakes, but the business is still running as usual.

The AI tools still need experienced software engineer to use it well for now, and it still cannot solve really hard and complex problems. But it’s only the starting. Give it a few years, and combined with the remote work in tech jobs, I feel like the tech jobs will be like manufacturing jobs, shift from developed countries like US to low cost areas like India and east Europe. When that happens, what will happen to the current software engineers that get very high pays? In the past, I sometimes thought about the path to retiring, just to continue programming, but freely without doing things I don’t like. But recently, I started to think seriously about how to survive with salary cliffs, just to make sure I have enough to support the family even if the tech industry in Canada has been destroyed.

Thinking more about longer term, what will happen if AI replaces jobs and the replaced jobs don’t have higher tech jobs to migrate? In the past, when manufacture jobs are replaced by automation, the next generation can go to tech jobs that do the automation. But if AI can figure out better AI by itself one day, what’s left for human to do? Is it an end to the job? What does that mean? Does that mean everyone will have AI that produces enough things for them so that they don’t need to work anymore, and everyone can be like ancient Greek philosophers to really have free time to think deeper things like the meaning of the life? Or does that mean capital has everything and the labour has no leverage to bargain, and the rich will get richer and the poor will get poorer with almost zero class mobility? You may ask why rich need to get richer if AI produces so much that it’s enough for everyone? Well, I think one thing AI cannot replace is for some human to be tools to make other human feel superior and powerful. I know not every human is like that, but unfortunately it’s that kind of human to be motivated enough to stay in power.

So I don’t know what the future would look like. Even what would look like next year. Trump started the year to invade Venezuela. Would 2026 mid term election limit Trump or would Trump start something bigger to capture more power? How advance would the AI develop next year? Is there anything else than RAM (after GPU) that AI makes the average people not able to afford? With this much uncertainty, it can feel pointless to do things, like spend most time of the year to find a good long term home for the next decades. But the theme of life is uncertainty, always have been, starting from ancient times, which has been explored by lots of philosophers and religions. I cannot control all of those things but I’ll focus on the things I can control, which is taking care of my daughter and my family, continue my projects on distributed systems, reading and blogging. And I’ll explore to replace Claude Code with some open source tools like Open Code to not let a single company to control such an important tool in my workflow. Let’s see what future will give us.