2020 Year-end Summary

2020 has passed, in this year, so many things happened, I am extraordinary 27 years old! First of all, the epidemic has changed everyone’s life, and epidemic prevention has become the norm. The rest is to work under the cloud of the virus. Any work should be carried out under the condition of protecting ourselves. Overall, 2020 is a good year.

In general, the technology of 2020 is to put some of the previous things together, and at the same time to refine the new things. Here first want to thank my brother, he gave me a chance, and then have the chance to play me so much, although not earn much money, but young people don’t worry most is to make money, I just want to use their expertise to cash, so I now more like the corresponding to continue on technology breakthrough yourself.

Let’s start with what we did in 2020.

2020.02.17 Join a startup

A few days ago, my colleague from the former company (hereinafter referred to as Tiezi) agreed to join this start-up company after constant negotiation with me. In fact, I have contacted XX State-owned Enterprise through my family before this, and the annual salary is similar to the current company, but I will not discuss the details between the start-up company and the state-owned enterprise.

Special equipment

Now the company’s special equipment project, in fact, on the whole, I do not like this equipment, it does not give me a good feeling. And I came to this company, where many programmers came with a joke mentality, thinking THAT I could not handle their affairs, and finally fixed the second version of the project after a painful struggle. In the middle of the project, we met the resignation of the core staff and the assistant (an older programmer), and finally repaired the project in pieces (thanks to Tie Zi and Da Jin Ge, their selfless cooperation to complete the repair of the project).

Subsequently, in order to solve the problems of the project and improve the stability of the project, the third generation of products were derived. The core architecture of the product changed. First of all, many services were completed at the back end in the past. The problem was that all front-end services were serialized and strongly synchronized, resulting in heavy back-end services and serious coupling between services and architecture, which made it impossible to achieve high availability of devices. To solve this problem, a new composite architecture design pattern is proposed. Front-end business integration, using the embedded server as the front-end core, the front-end business is integrated into the embedded server, the rest of the back end is to provide event process model and message event synchronization, using MQTT Internet of Things communication protocol to achieve high availability of front-end equipment.

In the final version of this project, my main contributions include backend architecture design, device side architecture design (one main multi-plug-in), business migration mode explanation, etc.

Translation machine

In fact, to this company, the main idea of the company is to do the online version of high-speed and stable translation equipment, the boss mentioned the goal is also very clear, make money + cents, the company does not do too big, non-core programmers can open ape throttle at any time.

Version changes experienced by translator:

  • Traditional Request-Response model
    • Advantages: Easy to develop
    • Disadvantages: the translation function is seriously unstable, and the output quality is poor
  • Fully synchronize websocket communication
    • Advantages: Simple architecture design
    • Disadvantages: Poor stability of translation function, relatively slow response (60% faster than the previous)
  • Fragment synchronization webSocket communication
    • Advantages: Fast data synchronization and stable service improvement
    • Disadvantages: High development cost, complex architecture design
  • Shard synchronous webSocket communication + OPUS audio coding extension + aggregation translation source
    • Advantages: All the advantages of the previous version, while improving the stability of network transmission, support multi-language services
    • Disadvantages: More complex architecture design, high development cost, difficult to horizontal and vertical expansion
  • Distributed asynchronous translation service open platform
    • Advantages: Inherits all the advantages of the previous version, faster translation service, scalability across cloud platforms, support for multiple communication protocols (MQTT, GRPC, Websocket, HTTP), ultra-low latency communication within the service
    • Disadvantages: There is no mature and stable open source framework at present, I need to maintain all core products by myself, and I need to constantly evolve the core framework and architecture

whiney

In fact, in the end, that is, in the current stage of the product, the core competitiveness of the product is still very strong under the availability of services, and it has caught up with the queue level of first-line intelligent voice recognition (even surpassed, faster than Tencent and Youdao, basically on par with HkUST). But it’s in this situation that the last thing I want to see happen to a startup is a problem. When the members of the team are looking out for their own interests, something has gone bad in the team. At the same time, I had some conflicts with the boss, and I clearly realized my shortcomings in team management and the boss’s evaluation of the value of what I did. Similarly, some of my ideas have moved away from what I originally intended, and I’ve become more concerned with myself.

This year, my overall status changed from unpaid overtime to haggling over every ounce. Generally speaking, everyone is responsible. Similarly, my position as technical director is not worthy of the name, which is in line with some of the boss’s ideas. A lot of bits and pieces of things, let my idea more and more offset, care more. There is no labor in the heart so.

To be honest, there are some things, not my side of the heart, but there are some things, I can clearly feel the boss side of the attitude towards programmers. “The core programmers with souls we keep, and the rest we don’t need at any time.” Which begs the question, who is at the core? The boss calls the shots. Poor migrant worker.

The most people in the r&d department of the company are Android, but their favorite phrase is “you don’t understand Android”, but I actually submitted a lot of core code to their Android project. And some of the so-called “all-rounders” my boss likes haven’t helped me much so far.

The state of the open platform

Our intelligent voice open platform meets the current situation of hybrid cloud, multi-access protocol, multi-language, multi-channel, ultra-fast response, multi-service assembly and so on.

  • Core:
    • Springboot (basic integration service for quick development)
    • WebFlux (reactive programming, springBoot dependent, asynchronous non-blocking server development essential)
    • Rsocket (provides inter-microservice communication, supports multiple request patterns, and intra-service message push (no external components required))
    • Project Reactor
    • Transparent routing: When an application invokes a service, the Broker does not need to know the application information of the service
    • The core broker, which provides service registration, service discovery, invocation routing, message push, and more
    • Multi-protocol Gateway access

In fact, the core of this project relies on Alibaba’s Alibaba-rsocket-broker. Of course, in this project, I developed service stickiness call and load balancing in the case of stickiness call based on actual business needs (the official version of service stickiness call has no effect of load balancing. At the same time, the fixed link can only be switched after the service ends). For some consideration, I did not synchronize the project to the company’s private warehouse, but maintained it all the time by myself. This decision was also made because I had seen too many problems of start-up companies. I still remember the problem caused by the uneven distribution of interests between an older programmer and a start-up company, so I also want to leave a minimum guarantee for myself.

This open platform, it has always been my dream, when I found this intelligent speech recognition service, my idea is very simple, actually is the scenario in the Internet of things, we can meet more equipment, cloud services, multi-protocol, across a cloud platform of intelligent speech recognition technology, a little bit more simple, I hope I can easy make street light know we speak. This matter, is I have been pushed around in July, but there are finally starting to progress is at the end of September, then our cloud platform to go up after the first edition, our translation machine equipment (cloud butler project) and our international video conferencing system are provided powerful voice service access entrance, avoiding the complex of our sass product integration, Finally, unified PASS access service will be provided.

conclusion

Here are some things I did for the company in 2020 after working through bits and pieces:

  • Urgent repair of project problems to ensure the timely and stable delivery of special projects
  • Springcloud scaffolding provides common microservices
  • Unified project management services
  • Unified document management services
  • Unified project traceability platform
  • Unified cloud server policy management (server policy, database production test specification and management specification, Redis server specification)
  • Unify back-end project management standards
  • Adjust the architecture design idea of special equipment, unify the interaction mode of special equipment (a device template, independent embedded server, Internet of Things link, message event interaction model)
  • The interaction rules of translation device access are innovated and websocket single-channel concurrency is realized
  • The open platform of intelligent voice service is promoted and realized, which makes it possible for mixed service access and mixed multi-terminal access
  • The concurrent processing buffer of speech data is realized, which provides stable linear audio data input for speech recognition model
  • Realizing various assembly and integration services based on short speech (long speech implementation recognition, dialogue translation mode, etc.)
  • The stable back-end concurrent processing opus library, based on the open source code of opus C++ implementation, provide support for win, macos, Linux

Some things I do for myself:

  • Develop asynchronous reactive microservice framework
    • Asynchronous server interaction
    • Reactive or reactive programming
    • Ultra-low latency for remote service invocation (1 ms response when the network is stable and reachable)
    • Private protocol communication within microservices
    • Sticky invocation of services, and load balancing during sticky invocation
  • Summarize the skills I have learned
    • Java
    • springboot
    • springcloud
    • netty
    • Reactive programming
    • Some c + +

In this year, I did not do well in management. There are many reasons for this, and I deliberately caused the situation. I also did something that made me extremely sad. That was to break up with the object I had been talking about for three years. In Shenzhen, I became an object with another girl. I have to talk to my boss about something tomorrow. I hope 2021 will be better. Of course, the main focus of this year is to improve the concurrency performance of the asynchronous reactive microservices framework.

Finally, I would like to send you a word: no pain is more painful than the pain of the present, but they will become the joy of the past, the future is not far away from us.