2023 was my laziest year in a long while. I went the entire year without updating the blog, so the most recent post is still my 2022 year-end review. That is a little embarrassing. Was it laziness? Partly. But it was also the year of the biggest changes since I entered the workforce.

The project disappeared, and a plugin appeared

Not long after we returned from the Spring Festival holiday, my project team was dissolved. Teammates left one after another, and I suddenly had no idea where I was going. For a while I could not keep myself together. My plans were thrown off, I often lay awake at night, and after work I simply stopped thinking too hard and let things slide.

Over the years I have noticed a pattern: when work gives me a challenging problem or a sense of satisfaction, it fuels my urge to learn and write. When work is dull and unchallenging, I slide into a passive, checked-out state. I call this the motivation feedback loop. It cuts both ways, and this time it kept me drifting for a while.

Then something changed by accident. A friend had a problem, and I wrote him a small plugin in about an hour. Unexpectedly, that plugin brought me extra income over the next several months that far exceeded my regular salary. The technical difficulty was low—any programmer could have done it—but for ordinary users it cut costs by an enormous factor, so they were strongly willing to pay. Word spread, and my WeChat contacts went from fewer than 200 to more than 1,000.

I admit this was pure luck. It does not mean I have brilliant business insight, and I cannot promise the model could be repeated. It was luck, full stop. I knew it was a short-lived side business without durability, so when revenue began to fall, I sold the plugin.

The biggest gain was obviously money. I had never imagined making money could be so easy. Please forgive someone as inexperienced as me for borrowing and bending Rogue's line: 'Wake up whenever my body decides, and collect money until my hand cramps.'

But what else did I get? First, a lesson that sounds like chicken soup but held up: maybe the key to success is not always a brilliant decision; luck plays a critical role. That luck is not completely random, though. It is the result of what you accumulate day by day. To catch an opportunity faster than others when it arrives, you still have to keep putting in the work.

I had built similar plugins before but never thought to charge. In the past, my reward was a thank-you or a small red packet. This was my first attempt at charging, and the result was surprisingly good. If you are thinking about charging for a product, ask yourself first whether you would pay for it.

Also, do not chase perfection at the start. A plugin written in under an hour is bound to be rough, maybe even semi-automatic, but that did not stop it from working. As Randy put it, automation can and must be done, but not from day one. Before you understand customers' habits, rushing to solve the problem with your existing mental model can mean a lot of work in the wrong direction.

For example, if we need ordering or membership features, most developers would think of building a mini program or website and letting customers handle it themselves. In reality, customers may not buy that at all. Believe it: even in 2024, some people genuinely cannot use these things. Customers are the people who keep you alive; sometimes you have to accommodate them. In their minds, sending you money directly on WeChat is far more convenient than a cold mini program.

So 'collect money until my hand cramps' was not entirely a joke. Imagine hundreds of people transferring you a few yuan each day on WeChat. Even in that situation, there are ways to automate without changing customer habits, and that is when automation becomes truly valuable. But it is not the mini-program recharge idea you imagined at the beginning. The key is still getting customers to accept it.

Those were, to me, more valuable than the money: lessons that can help me make better choices next time and avoid a few pitfalls.

Two gifts to myself

At the beginning of the year I decided to replace my computer. After comparing M1 Pro and M2 Pro, I chose M1 Pro with 16GB RAM and 512GB storage, bought through PDD's subsidy program for 10,500 yuan. After a year, it has met all my needs and never stuttered; it was one of my best purchases of the year.

The second gift was a Niu U+B electric scooter I had wanted for a long time. Spending 6,000–7,000 yuan on a commuter scooter may sound extravagant, but in practice it was worth it. Riding it to and from work every day lifted my mood and expanded my daily radius, and it maxed out my sense of well-being.

A new chapter

Yes, I completed a major life event this year: I got married. By the usual age for Chinese men, I may be a little early, but everyone's situation is different. For me, now is the right time to take on family responsibility. She and I have been together for seven years—from first love to marriage, steady as an old dog. Our relationship had long gone beyond being simply lovers; even before we registered the marriage, we were already living like an old married couple.

Weddings burn money. Even though Guangdong weddings are cheaper than in many other parts of the country, it still emptied my savings. As a socially anxious person, I was not eager for a banquet, but tradition pushed me to follow the rules. The overall feeling: exhausting, very exhausting.

A shift in thinking

I feel I changed a lot this year. In the past, when a friend and I disagreed, I would feel uncomfortable and sometimes argue until I won, as if I had to prove I was right. Looking back, that was pointless and childish. Why did I need to do that? I wanted others to think I was correct. But everyone grows up in their own small world and naturally sees things from different angles. On V2EX, I used to block opinions I disliked without hesitation. Now I think that was narrow. People's views change. Someone I disagree with today might give me a fresh perspective tomorrow. So I no longer block people so readily. Who knows what they might say that opens my eyes?

In the past, many things made me furious. Gradually, as I got older, I began to realize that things are not that simple and may not be what I first thought. Now, when I encounter something that would once have been unbearable, I can stay calm and look at it with a quieter mind.

But I also wonder: is this a form of cynicism? Have I started caring less, or is this just escape? After thinking it over, I concluded that even if I face things calmly, I cannot lose the desire to pursue justice. Cynicism can make people cold, but I still hope that after seeing the world's complexity, I can keep some enthusiasm and try to change things. Recognizing that the world is not black and white does not mean we stop pursuing something better.

Blogging is the same. I was lazy this year, but the bigger reason is that whenever I want to write something, a voice inside says, 'Maybe you are just talking nonsense,' and I drop it. That is not a good way to think. I hope to overcome it in 2024. I have long believed that blogging is mainly for my future self, and if it helps someone else along the way, even better. So I want to keep going.

What work taught me

As I mentioned, at the start of the year I drifted for a while, but not for too long. Although this year's work was not in my plan, it brought unexpected experience. Let me back up: when I first entered the workforce, I joined a company's frontend infrastructure team, working on things like improving development efficiency. That experience has influenced every job I have had since. But because I never really worked on a product line, my view was largely limited to efficiency work; I had not developed a fuller product mindset. My users were mostly developer colleagues, so I was constrained by a developer perspective. Technically I could solve problems elegantly and efficiently, but what I built was often not friendly enough for end users. That problem was especially obvious in a few small projects I built myself.

Later I chose a role responsible for 2C projects, where I actually faced users. I learned a lot. For example, I did not use to have a 'pixel eye,' but after designers stared at me while I fixed styles enough times, I developed one. I also learned to think about features from the user's perspective. But 2C projects often have tight iteration cycles, and we had to trade off elegant code against shipping features. While working on that project, I tried to solve some team collaboration and development efficiency problems, but you have to understand that colleagues can be set in their ways and used to the status quo. Promoting a new approach across a company is very difficult without leadership support.

Then our project team was dissolved this year. My original plan was not fully realized, but I went back to frontend team infrastructure work. After several years, returning to that field let me learn more about design on top of thinking about elegant implementation. So I count that experience as a blessing in disguise. After two years on a product line, I found that I prefer this kind of infrastructure work.

One small episode: at the end of the year, during company awards, the decision-makers chose another candidate over me—a colleague who could bring more revenue to the company. I was a little disappointed, but I understand the decision. At the same time, I think I still have the chance to do work I like and am good at, and my output was recognized by leadership. To me, that recognition is no less important than a company-level award.

2024

In short, this was a year of big changes for me, but I did not keep up my good habits. I hope to pick them up again in the coming year.

Happy New Year.