Brief introduce:

My name is Zhu Jinhui, and I graduated from Nanjing University of Information Science and Technology. After graduation, I have been engaged in mobile software development. I have worked at JD Daojia, Alibaba, and Bilibili, gaining rich experience in mobile development.

I have led several projects at the company, which required collaboration between front-end and back-end teams. Therefore, I also have experience in backend development and Android development.

My strengths:

I have experience in developing large-scale projects (experience working at large companies). JD/Bilibili/Alibaba are all listed companies, and their products serve tens of millions of users. Due to the large user base, we encounter various challenges. Solving these problems requires a deep understanding of technology, such as low-level knowledge of iOS, otherwise, user churn can easily occur, which is something you cannot learn in small companies.

Another thing you cannot learn in a small company is communication skills. Large companies have many departments, each of which is relatively independent. If you have a good idea that you want to implement, you need to persuade various departments to cooperate with your work. This is very difficult because it is not their KPI, but yours.
The best way to persuade them is to initiate a meaningful project, such as one that can bring benefits to the company. Ensuring that other teams can also benefit from this project is essential.

You also need very standardized development/deployment processes in big projects.

My projects:

I worked in the Bilibili international team, engaged in player business development. The entire team has over 200 people, with more than 60 mobile developers. Our player team belongs to the mobile end, involving audio and video playback/subtitle optimization. The Bilibili international team is relatively new, primarily targeting Southeast Asian users, currently with over ten million users, and will later expand to the European and American markets.

The video field is a very challenging domain. The video goes through several processes from opening to playback: download-decoding-demultiplexing-playback. There are many challenges, such as caching/audio-video synchronization/instant start/stuttering, which are part of my daily work.

At Alibaba, I served in the local life team, developing an app called Ele.me, where merchants join the platform. You can order food online through this app, and couriers will deliver it to you. I completed the management work for couriers from scratch, primarily to confirm whether couriers are wearing helmets/uniforms and whether it is the courier himself delivering the food.

At Alibaba, everyone has their independent module, and the module's performance affects your evaluation. This requires you to have a stronger sense of ownership, being personally involved from project initiation to design, rather than just simple coding.

Player bussiness detail:

when I was at bilibili player business . There are 6 people in the team, three of them are iOS developers and three are Android developers. Our daily work includes completing the construction of the player page and optimizing the player itself. The player kernel uses ijkplayer, which is a player developed by Bilibili. It has made some modifications based on ffmpeg. ffmpeg is very powerful and can play videos in various formats. IJK does not have much innovation at the player level, but only adds some special functions, such as zooming in and out, hardware decoding, and software decoding.
The biggest work of the player business is to control various states. For example, if a user suddenly switches to another app while watching a video, we need to record the state of the player. In this way, the user can directly watch the content played last time when he opens it next time. In addition, we also need to implement a series of problems such as video caching, downloading, pausing, fast forwarding, seeking, and double-speed playback.
The optimization of the player is mainly to reduce the jamming during playback. There are many reasons for jamming, such as network problems and mobile phone performance problems. We have multiple strategies to deal with jamming, such as caching more data when the user's network is good, or reducing the resolution when the user's network is poor.

Bilibili app detail

What is the name of the app?

The international version of the app is also called Bilibili, but it is not the same as the domestic app. In fact, there are currently three versions of Bilibili: one for mainland China, one for Hong Kong and Macau, and one for overseas. This strategy is similar to that of TikTok.

Why choose Southeast Asia as the target market for international expansion?

This is because there are many Chinese people in Southeast Asia, and the language and cultural differences are not significant. Moreover, China currently has close relations with ASEAN and is its largest trading partner. Many companies choose Southeast Asia as their first option for international expansion.

Future 5-year plan:

The development of domestic internet in China has reached a bottleneck. Now even in small towns, you can order food delivery, indicating the limited space for domestic internet growth. This is why I moved to Bilibili's international business. However, Bilibili's internationalization efforts have not been successful, resulting in an 80% workforce reduction.
Joining a mature international team is currently very appealing to me. I enjoy exchanges between different countries, both culturally and professionally. Over the next five years, I hope to become more global.

Talk about Gap:

After leaving Bilibili, I was not in a hurry to find a job, but wanted to think carefully about what my next job should be like. Although the salary in a large company is high, I often work overtime and spend less time with my family. Therefore, I want to find a job that can better balance my life. Of course, in addition to spending time with my family, I can also have more time to learn low-level knowledge, such as C language, such as operating systems, which has always been one of my hobbies. In this year, I have indeed been working in this area. I reviewed algorithms and some low-level knowledge of iOS.

My major:

I studied Japanese in college, and I have continuously pursued computer science as a hobby. After graduation, I tried to find work related to Japanese. My first internship was developing a map software for the Japanese market called Dokomo Maps. After graduating, I faced a decision: whether to choose a job related to Japanese or one related to computer science. Since the internet was very popular at that time, I chose the latter.

Project from 0 to 1 by myself

How to quickly deliver orders to customers is our primary concern. From the time a courier accepts an order until the final delivery, there are many stages, each of which can be optimized. Undoubtedly, the delivery stage is the most critical. In our research, we found that many new couriers spend a lot of time finding building numbers after entering residential complexes, a part that map navigation software does not cover. To solve this problem, we added residential complex map navigation to the Fengniao Delivery app, which greatly facilitated couriers' deliveries.

However, this project involved many details that needed to be addressed. For instance, where do we get building data from? Through our research, we found that some savvy couriers had already downloaded building map apps, so we only needed to integrate the building map data into our app. This sounds simple, but we encountered many issues in practice and solved them one by one:

  1. The building data was sometimes inaccurate, so we provided a function to report errors, allowing us to continuously optimize our feature.
  2. Building display is not needed at every stage, so we needed an algorithm to determine whether the user had already reached the vicinity of the residential complex. Once we determined that the courier had arrived near the complex, we would zoom in on our map navigation and display building information. Most importantly, we also displayed the navigation route.
  3. Since rendering building data is very resource-intensive for mobile phones, we needed to conduct a series of tests to determine whether it should be displayed on the courier's map. We reported the courier's phone model, memory data, etc., and let the algorithm and other departments analyze it. They would decide whether to enable the building number rendering feature.

I have a very deep impression of this project because I initiated it and completed it with the cooperation of both front-end and back-end teams. The process was very challenging, but the results were excellent. Our team received an award because of this project.

Problem about company:

xxx is one of the greatest companies in the world. I understand that this position is for the development of the xxx app. I would like to know the current situation of the team and what is the product vision?