Reflections After Two Years as a Software Engineer

Originally published in Chinese on 2022-02-22; this English edition preserves the original scope and technical context.

In 2019, I met my current director during a Tencent summer internship interview. During that period, I moved in with a roommate and spent the entire interview process on the phone with the interviewer for two hours. Although I didn’t end up joining the summer internship, this opportunity led to a direct internal promotion from my director after the internship and a spot in the project team. After undergoing four rounds of technical interviews, I received a voice message from my director in the library one day, followed by a phone call from HR. I was finally confirmed to be relocating to Shenzhen for the project team a few months before returning home.

Over the past two years, I have experienced many trials and errors in both my professional and personal life. Here, I attempt to summarize and reflect on my experiences.

Impact

Initially, I believed that work was simply completing tasks assigned by my boss and earning a salary equivalent to the time spent on the job. Therefore, I assumed that the more time I spent working, the more time I spent working overtime, and the more I worked on weekends, the more benefits I could receive from my boss. This is why many people in China are so eager to work overtime and over weekends.

1

In reality, some people who never work overtime or on weekends can still earn high performance bonuses and create significant impact. As Le Cédric Li put it, impact is the difference between the world with you and the world without you. For example, my girlfriend is very fond of studying in the library study room and needs to log in to the school library website every day at 9 PM to reserve a spot for the next day. If I spend a few hours writing a script that automatically reserves spots for her every day, saving her a few minutes every day, the impact of this script is the sum of the time and energy saved per day multiplied by the number of days. If I share this script with my friends who are also studying, the impact is further multiplied by the number of users. To quote Professor Limu, impact is the product of (number of beneficiaries * average time per beneficiary * difference in unit time value). The unit time value difference depends on how well the task is completed. If someone creates a more user-friendly and faster response script, the unit time value difference of this script is higher. Whether it’s work output, technical sharing, guiding new hires, or planning and determining directions for the team, the impact can be evaluated using this formula, and the ability to create impact is more sustainable than continuously working overtime. Backend development is essentially two parts: CRUD operations and high-concurrency architecture. The former requires knowledge of data structures and algorithms, while the latter requires system design skills, including caching design, cloud-native, asynchronous storage, and data sharding. Additionally, game backend differs from internet backend in having stateful services and being sensitive to latency. There are also significant differences in system design.

Game backends typically first read and write data in memory before persisting stateful memory data to a database, rather than querying the cache or database every time. This differs significantly from the current internet backend architecture principle of “separation of business logic and data.”

Server cloud integration utilizes Service Mesh for communication, injecting and hijacking traffic to inspect packets. After these steps, if the latency is 100ms, it may be acceptable for internet services, but for mobile games, it is already nearly intolerable. Additionally, breaking down different modules into microservices significantly increases the network overhead between these modules.

Game backend cloud-scale up and downscaling must also consider the efficiency of Kubernetes resource scheduling and migration procedures for stateful services. Migration should avoid downtime and minimize the granularity.

Different businesses have their own needs and pain points. When applying these internet-age technologies to the gaming business, adjustments should be made based on their value to the product, rather than adopting them mechanically.

Game Industry

In 2021, regulations protecting minors and a pause in game approvals pushed Chinese game companies toward two strategies: higher-quality products and international expansion.

Because of the shortage of game licenses, game companies need to invest more resources into long-term operations, such as spending on premium features to generate long-term cash flow. On the other hand, they can only cautiously replicate successful models (MOBA, card games, shooting games) to capture the existing market. Eventually, players will become desensitized, which stifles teenagers’ interest in games. The relevant authorities can gradually increase their efforts to cut off the prospects of the domestic game industry. Finally, they can completely eradicate it, leaving no room for educational training and games. This would enable young people to focus on dating, thereby increasing the birth rate and addressing the population crisis.

Regarding overseas releases, only domestic game companies with both financial and technical resources to compete directly with overseas firms are currently available, and that company is Tencent. However, for regulatory authorities, sanctioning a company is much simpler than overseeing the entire industry.

2

Technology and Products

The game backend places the highest importance on n instances of high availability and is most fearful of bugs appearing after a release. Two of the most memorable external network bugs from the past two years stand out. One occurred six months after joining, where a bug was triggered due to not carefully reading the names of multiple similar interfaces in the files. Another happened during a feature release on New Year’s Day, where a bug arose because the data entries from a certain path were underestimated, leading to insufficient allocated array length during peak traffic. Neither of these issues stemmed from a lack of technical skill, but they did severely impact the personal reputation. When practicing or competing, minor issues typically result in a drop in ac rate and a five-minute penalty. However, once transitioning to work, the lack of rigorous technical reviews can severely affect the product and the entire team.

Employee and Company

When first starting work, I would treat the company as a school and my desk as a library or lab. When I have no work to do and no other personal matters, especially on evenings and weekends, I enjoy reading on my desk. This habit often sacrifices personal free time and can make colleagues and managers view me as extremely hardworking, thereby affecting how others evaluate my work attitude and results. Therefore, any activities unrelated to work should not take place within the company.

The relationship between employees and their companies can also impact productivity. In internet companies, the relationship between employees and their employers is typically simple, either an employment or cooperative relationship. However, in many departments of Tencent, especially during the period from the company’s anniversary to the Spring Festival, people often refer to each other as ‘family members’, which is extremely annoying. This is not a healthy relationship between employees and their employers.

When I first joined, Mo Xingyun Senior was sitting less than 10 meters away from me, often chatting with the client developers or discussing technology with them. After he passed away, most of the hundreds of people in the office seemed to carry on as if nothing had happened, doing their daily tasks as usual. It made me feel both cruel and melancholic. During my sophomore year, if it weren’t for accidentally stumbling upon Shian Mo’s DX tutorial on CSDN, my computer graphics might have ended up in the trash. Quoting the idea of YouTuber Vincent Chan:

One day he stopped showing up. I thought he was just on vacation, but then a week went by, a month went by, and there's still nothing. I have no idea what happened. He could quit, he could have been fired. What was weird was that nothing changed, everything was exactly the same. People went to the office, people left the office. It was as if he never existed within these walls ever. I knew in the back of my head that a company is not going to stop running just because someone isn't there anymore but I felt really weird to witness this firsthand that someone that you've seen every day just disappeared and nothing changed. We are all replaceable, every single one of us. You're really only as good as the hours of life that you can give to the company. Once you can't give them any more hours, they'll find someone else who can.

Life and Housing Prices

Talking about life in Shenzhen is quite amusing. Here, people don’t discuss the sunset and night view of Lujiazui from the rooftop bar of MGallery Hotel, nor do they meet at Jiapu Bridge to capture a good shot on weekends. In 2020, everyone used to talk about stocks, funds, and real estate. Now, they hardly mention anything, focusing mainly on the local and Hong Kong pandemic situations, and experiencing a colder winter than before.

Average property prices in Shenzhen are higher than those in Beijing and Shanghai. Most people in Shenzhen could not afford a home even after living frugally for 30 years. A short walk from Futian’s bustling CBD can take you into a neighboring area where prices average around RMB 100,000 per square metre, which feels surreal. With the end of monetized shantytown redevelopment, the use of price increases to stimulate sales, and a shift in monetary policy, property—effectively a long-duration asset—appeared to have reached the peak of that economic cycle. Still, the government would not allow the market to collapse and trigger a financial crisis, so it would continue using purchase restrictions, lending restrictions, and property taxes to try to deflate the bubble. Neither the United States nor Japan managed this successfully; I hoped China could.

Summary

The most instructive question during a summary is: What choices would be different if we were to start over? And what impacts would those changes bring? Once understood, one can move on.

Hope to focus on learning and growth and make new breakthroughs in the future.