Eight years from school to Ali P9: how to pick up the Pearl of software industry crown

Time:2020-3-31

Just now! Ants “school recruitment season” is coming! In addition to the introduction of ant‘s technical talents, we also invited some people who came to ants through school recruitment to share their customs clearance experience and experience. There may be industry technical talents and your direct school elders and sisters here at any time“School recruitment season” column will continue to output rich content about “ant Recruitment”, please look forward to!

In recent two years, there have been more and more topics about operating system in China. However, for many new students, the threshold of operating system development is too high, which is daunting. Even if we know that the industry is in urgent need of relevant technical talents, with high salary and excellent treatment, most people are still afraid to try.

Is operating system R & d really not suitable for the field of new students? For this problem, what do people think of the relevant R & D in the enterprise? We found Qin Chenggang, a senior technical expert in ant financial’s system software development, to see his views.

From a paper

The operating system Qin Chenggang developed is applied to cloud computing. With ant financial’s overall transformation of cloud native architecture, in order to ensure application performance and data security under the new architecture, and to meet the new challenges under the cloud native architecture, we must conduct in-depth mining at the system level.

Talking about whether the new student is suitable for operating system research and development, he mentioned that there was such a thing recently.

Asplos, a top academic conference with programming languages and operating systems in the computer industry, was originally scheduled to be held in Europe from March 16 to 20 this year. Due to the epidemic, it was held online.

Last year, ant financial participated in the conference for the first time, and two papers were selected, one of which was written by Qin Chenggang’s team.

There are two co first authors in this paper. One is Yu Tianyi, a new intern of the team, and the other is a graduate student of the school of software, Shanghai Jiaotong University.

The theme of this paper is the hot start-up speed of serverless technology in recent two years. This problem has been puzzling the industry, which is one of the reasons why serverless is difficult to be applied in large-scale production environment. The team has successfully reduced the cold start-up time of serverless to sub millisecond level, and the key technology is lightweight operating system.

It turns out that this was originally a technical pre research project of Qin Chenggang’s team. In the past 18 years, cloud primitives has been very hot, but serverless did not appear for a long time and was not widely accepted by people. Chenggang predicted that this technology would have great potential in the future, so he chose this direction to carry out technical research.

Because it involves some forward-looking technologies, the team needs the participation of scientific research forces, that is, academic cooperation with universities. Yu Tianyi herself comes from Shanghai Jiaotong University. Through her role as a technical communication bridge, the team successfully built a parallel and distributed system research institute with Shanghai Jiaotong University, and the two sides cooperated.

The operating system used in this paper is Google’s open-source gvisor in 2018. At the operating system level, this paper optimizes the instance startup delay in the serverless scenario, which can complete the startup of the operating system and application in a few milliseconds.

The lightweight operating system developed by Chenggang team is also based on gvisor, but it has made many improvements and enhancements, and made many innovations in the virtualization technology network protocol stack. Many of these improvements will be gradually fed back to the open source community. The above paper is one example.

How to participate in system research and development

The above paper is just the tip of the iceberg of Chenggang team’s work. The system software they developed is an important part of ant financial’s trusted native technology puzzle.

The so-called trusted native technology is based on the cloud native technology of the community to realize the security of the whole hardware and software link, so that the whole system can not be broken from the inside or the outside, so as to realize the trustworthiness.

In the past, when people discussed cloud nativity, the security issue did not receive much attention. Compared with virtual machines, containers in cloud native are more likely to cause security problems. In cloud native, traditional containers share the same CPU and other resources, which is lack of isolation. Once a security problem occurs in one container, it is likely to affect other containers and even invade the whole system. The system software developed by Chenggang team adds a layer of isolation between the underlying operating system and the container application, thus improving the security.

Chenggang team’s work is to deal with the operating system on the one hand, so the research on the Linux kernel will be in-depth. There will be special personnel in the team to participate in the Linux kernel open source community and follow up the academic research progress related to the system software. On the other hand, the team needs to make the application run better and safer in the cloud original environment, so it will also involve the engineering efficiency at the operating system level R & D work such as operation and maintenance delivery, safety and credibility.

Because the most cutting-edge cloud native architecture collides with the oldest operating system, it brings great challenges to R & D. in many cases, some bottlenecks are difficult to solve by experience alone, so it is necessary to use the power of the academic community to solve the problems. The above paper was born in such a background.

Therefore, the new student is certainly suitable for operating system software development, and Chenggang team has always wanted to have excellent new students to join.

Chenggang hopes that two types of new students will join in, one is the research intern mentioned above, who will study the cutting-edge technology and seek for technological breakthroughs. The other is the common development position, and the team also needs fresh blood injection.

After the newcomers join the team, in addition to the common technical training, they will also be equipped with a “senior brother” for each newcomer. The senior brother will not only be responsible for preaching and dispelling doubts, but also, like the elder brother, accompany, protect and grow together with them.

In terms of work arrangement, we will not arrange difficult work for new employees as soon as we come up, but let new employees start from simple work, gradually learn and integrate into the team, and then undertake larger tasks like upgrading.

Suggestions for new students

Today, system software R & D is not a popular industry. Many companies have positions in charge of developing and maintaining the system kernel, or even developing a new operating system. However, system software R & D experts are still scarce in the market, so this is a promising direction.

From another point of view, system software development is indeed a high threshold technology field, so there are certain requirements for the quality of employees.

The first threshold is to be enthusiastic and willing to engage in system software development. Because most of the time, engineers need to deal with the underlying hardware and software, and need to understand the operating principle of the operating system and processor in depth. This process is very boring, and it is difficult to persist without enthusiasm. In addition, the system software is different from the industry software. The industry software may have output after one or two weeks of employment, but the system software may need a longer period, which also requires perseverance.

Secondly, for the fresh students, if they want to engage in the research and development of system software, they need to learn the basic courses of computer specialty well and lay down their basic skills. They need to be familiar with the functions and principles of computer hardware, processor, operating system, virtualization, etc. In addition, continuous learning is needed, such as self-study of some papers and books related to system software and paying attention to the latest academic progress. Here, Chenggang also recommends several books for students to learn in advance:

  1. 《Computer Architecture: A QuantitativeApproach》
  2. 《Systems Performance: Enterprise and theCloud》
  3. 《Understanding the Linux Kernel》
  4. Run Linux kernel
  5. System Virtualization: principle and Implementation

In addition, if you are engaged in this field, academic conferences that need attention include: osdi, sosp, asplos, eurosys, etc.

However, the research and development of the system software is not unattainable. College students can participate in the research and development of the system software during the period of school. First, they should be familiar with the Linux system, understand the system principle, develop some small functions, even small tools and scripts, and improve their understanding of the system software.

The advanced version of this project is to participate in the open source community of system software, such as Linux kernel, gvisor, etc., from the most basic translation and document writing to participating in the development of a functional module. Through these actions, students can grow rapidly.

Finally, if you are interested in the research and development of system software, and want to know how to interview, you can also look at the interview experience of your predecessors, and I wish you all can find a satisfactory job as soon as possible~

Join us

>Job description

department: ant financial – CTO line – trusted primary technology department

place: Hangzhou / Shanghai

post: Trainee Development Engineer

Face: Bachelor / graduate students graduated from November 2020 to October 2021

Form of interview: usually it’s a telephone interview. You can make an appointment in advance

Delivery mailbox[email protected]

> Who Are We?

Our team has undertaken the R & D and innovation of ant financial operating system. We are committed to combining advanced system technology with ant’s financial business scenarios, and constantly innovate and implement in the system field. At present, our new operating system is gradually serving the core business of ants. We have a large number of self-developed products in protocol stack, file system, virtualization and other components. And published a paper on asplos 2020, the top conference in the system field. At the same time, we are also in-depth innovation in the combination of software and hardware. Welcome students who are interested in system technology to join us and create brilliance together. We hope you understand the operating system, virtualization technology, network protocol stack, file system, etc. you’d better have relevant project experience. I also hope you can use C, go, rust and other languages to be proficient in programming. I hope you have the technology ideal, the curiosity to the system field, and can learn new technology quickly.

>Domain direction

1. Virtualization direction: engaged in the research and development of high security and lightweight virtualization technology of ant financial services. Familiar with Intel x86, arm and other processor virtualization technology, familiar with KVM and other typical hypervisors. R & D experience in virtualization is preferred.

2. Research and development direction of operating system: engaged in the research and development of ant financial security operating system kernel. Familiar with Linux kernel or other operating system kernel. Familiar with memory management, file system, network protocol stack, process scheduling and other core components of operating system. Experience in operating system development is preferred.

3. System security technology direction: familiar with arm TrustZone, amd sev technology, and relevant experience of system security technology.

4. research on system technology: doctoral students engaged in the field of system and security have published papers with high level and solid research results.

>Basic requirements

1. Proficient in C, golang, rust and other programming languages, system technology R & D experience is preferred;

2. Solid algorithm and data structure foundation, good understanding of software engineering;

3. Those who have participated in Linux kernel, gvisor, dpdk and other open source communities are preferred.

4. Familiar with Intel x86, arm and other processor technologies and principles is preferred.

5. Have technical enthusiasm and sense of responsibility. Those who are committed to system software development and innovation are preferred.

On March 26, I entered Alibaba cloud cloud habitat online classroom, Ant financial opened a [ant financial classroom] ant financial digital classroom live room. Wen Zujie, senior algorithm expert of ant financial, will share the main station algorithm framework of ant intelligent customer service system, including recommendation, dialogue, scheduling, experience related algorithms, focusing on guessing your questions, sequence recommendation based on reinforcement learning, knowledge distillation, machine reading, reinforcement learning scheduling, etc Work.

Scan QR code to participate in live broadcast.

Eight years from school to Ali P9: how to pick up the Pearl of software industry crown

Recommended Today

PHP Basics – String Array Operations

In our daily work, we often need to deal with some strings or arrays. Today, we have time to sort them out String operation <?php //String truncation $str = ‘Hello World!’ Substr ($STR, 0,5); // return ‘hello’ //Chinese string truncation $STR = ‘Hello, Shenzhen’; $result = mb_ Substr ($STR, 0,2); // Hello //First occurrence of […]