“Live up to the time, the creation of non-stop, this article is participating in 2021 year-end summary essay competition”

From online education to new energy vehicles, I traveled to the cusp of the Internet in 2021. I’m just a grain of sand in my industry — a programmer.

A running list of jobs

In November 2020, with nostalgia and reluctance, I left 360 after working for three years and seven months. In December of the same year, I joined ape Tutoring as an operation and maintenance developer, and started my happy but short journey of online education.

I have been engaged in the development of database DevOps in Ape Counseling, and the most contact is with MySQL and Redis. Before more is to stand in the user’s perspective to think about how to use the database, now stand in the perspective of operation and maintenance development to think about the problem will be different, pay more attention to the stability of the database itself, high availability and maintainability. There are many processes involved in database DevOps. For example, to automatically create a database instance, the following steps are required:

  1. Fill in the library name and other configuration information.
  2. Maintain database records in metadata tables and mark them as being created.
  3. Apply for DNS.
  4. Check whether the MySQL machine has sufficient resources and send instructions to the Agent on the machine to create the MySQL instance.
  5. .

. I don’t remember much about the more detailed creation steps. The Saga distributed transaction model is a good solution for scenarios where each step of creating an instance is likely to fail and the end result must be consistent.

In addition to DevOps platform development, I also participated in the design and development of automatic removal of MySQL Slave nodes. The high availability of the Master node of MySQL is guaranteed by the MHA architecture. When the Master node is down, the Slave node can be automatically promoted to the Master node. However, if the Slave instance is abnormal, the traffic allocated to the Slave instance is faulty and needs to be cut off in time. Therefore, the Slave instance automatic removal scheme is developed internally. The idea is to deploy the monitoring service in different machine rooms to periodically detect the survival status of all Slave instances. At the same time, the Agent is installed on the Slave instance to check the MySQL process status and report data heartbeat. The traffic switching process is invoked when an exception is confirmed.

Besides my work, I also produced some technical articles including 5 papers on MySQL and 2 papers on Linux, and translated papers on Raft protocol.

Happy time is always short. At the end of June, I left Ape Tutoring and joined ideal Car for various reasons.

During the interview for the ideal car, the interviewer gave me high recognition. After joining the company, I was mainly involved in the development of a fledgling online collaboration system. I felt it was a great opportunity to grow up with such a project.

However, I didn’t know enough about the car company at the beginning, and I thought deeply before I finally chose to join the company. First of all, under the general trend of domestic energy reform, new energy vehicles are likely to replace fuel cars as the mainstream in the future; Secondly, after the upsurge of mobile Internet faded, the car was recognized as the “mobile phone” of the next Internet era.

Just left online education, accidentally stood on another tuyere.

After joining Ideal Automobile, I was mainly responsible for the development of online forms. So far we have iterated through four minor versions of our online form system. In the process of developing online forms, there are also many difficulties. For example, the storage and update of table data is difficult to support common open source databases because a table may have many cells. If the data is stored in one row of a cell, it is difficult to support common open source databases. There is also the problem of multi-user collaboration. How to ensure that multiple users edit a table at the same time without data conflict? However, we have not solved this problem completely. For example, our first version relied on the open source Luckysheet as a front-end table plug-in, but Luckysheet itself does not support creating multiple tables on a page. We had a scenario where we inserted a table into a document, and it took a lot of effort but we ended up adapting LuckySheet to support multiple instances.

Met a lot of problems in the process of using luckysheet, and next year we have a new development plan, to support the multi-dimensional form, so we’re going to put this 150000 lines of code the front end of the open source plug-in refactoring, core functionality has now completed the split, part of the module also completed the reconstruction, the reconstruction of the follow-up work to be dispersed to developing step by step to complete daily.

In order to better support the business and prevent the wrong direction, I have done a lot of technical research on online collaboration and produced six articles on online collaboration. At the same time, I also want to use this as a starting point for in-depth communication with peers in the industry (I have communicated with many partners for many times). From the end of June when I joined Ideal Automobile, I have been feeling very good on the whole till now. What impressed me most is that personal growth can be integrated with business development.

The first part is about work, and the next part is more about personal growth.

Technical summary

After graduation, I have developed government and enterprise projects for four and a half years and Internet toC products for three and a half years. I have also used multiple technology stacks, such as Java, Golang, PHP and front-end. However, I lacked accumulation and precipitation before. Although I wrote some notes, most of them were too simple and superficial, and I forgot some things after a long time. Fortunately, SINCE I began to realize this problem last year, I pay more attention to summary and precipitation now.

My favorite technology concept: don’t stick to a particular technology just because of a position, solve a problem. This year I used OKR to manage my annual plan:

OKR completion this year was mediocre. The main reason for the failure is that there are too few times of correction during the implementation process, which leads to the deviation of the direction. Next year, we will track the progress every quarter.

One of OKR’s surprises, however, is KR4 under O1: “Public accounts have more than 100+ followers.” My public account is in March began to write, from the beginning quietly write and write notes almost. Later, when I joined Ideal Automobile, I got help from my colleagues, who helped me forward many articles and recommended some writing methods of public accounts. Now, the number of followers has reached nearly 200. I will continue to be active with the Public and the Nuggets for the next few years. Speaking of writing articles, by the way, I would like to say that the public number + nuggets next year’s upgrade direction: public number + Nuggets article upgrade:

  1. Menu of official account added: self-introduction page + book recommendation page

  2. Automatic reply to private messages has been upgraded

  3. How is the quality of the article assessed?

  4. How to ensure the quality of articles?

    • Personal: enhance my writing ability, learn more knowledge, find a unique perspective through in-depth thinking, and write more vertically in several directions.
    • Outside: read some excellent articles to apply for forwarding and publishing; Seek co-authors.
  5. How to increase exposure?

    • There are several platforms that haven’t published articles yet, so publish articles on all platforms every quarter. The quality of the article to the major public number/platform submission
  6. Create a main title and subtitle for each essay to avoid the pitfalls of entering your own world.

Next year strive for public attention to 1000+, nuggets to Lv3.

conclusion

As a technical person, I contacted two new business scenarios in my work this year and completed the business landing one by one through technical reserve and quick learning. I feel a sense of accomplishment. In the latter half of the year, I also found a more suitable research direction for myself. Next year, I will support the company’s business together with my friends, and strive to make some reputation in the industry.

In the spare time, I have produced a total of 33 original technical articles this year, which have gained a lot of praise and attention. Thank you for your support! (Architecture, Golang, online collaboration, server, front end)

One of the things that went wrong was that the OKR was implemented without periodic review as mentioned in this article, and some things were done too quickly. We will correct these two problems next year.

As the saying goes, “If you do not advance, you will fall back.” I hope you can achieve your goals next year.