junhao

Senior Golang Engineer

Experience: 4 years

Yearly salary: $90,000

Hourly rate: $60

Nationality: 🇨🇳 China

Residency: 🇨🇳 China


Experience

Developer
BiliBili
2022 - 2024
1. 【Algorithm service】Responsible for the Triton reconstruction and maintenance of the service modules of illegal identification, blood violence, foreign media watermarking and illegal game algorithm, using Nvidia's Dali framework for data preprocessing, TensorRT for inference acceleration of algorithm model, and Nvidia's Triton framework for multi-model arrangement and tuning. The service supports tens of thousands of qps, the success rate is 99.9\% and above, and the p99 delay is reduced from 2-3s to 50-300ms, saving the company about 30 T4 cards. 2. 【Frame extraction process optimization】The distribution service involved in the optimization of video machine audit iteration frame extraction transformation changes the original logic of extracting all frames at once and sending them to the model together. When starting a new process to extract frames, the output is redirected to the popen object PIPE pipe and then handed to fdpexpect, and the loop obtains the newly decoded frame data of the child process from fdpexpect. It is quickly returned as a yield iterator to the model for inference. The end-to-end latency of a single video is reduced from 40s to 20s. 3. 【Frame extraction strategy optimization】In order to improve the recall rate of video review, useful slice frames should be selected as high as possible from the distribution side, and a tisi frame selection service was set up. The url of the video was obtained by subscribing to the review stream through the message queue databus, and then multi-process was used to select the frames with the greatest spatiotemporal differentiation using the tisi feature of ffmpeg. The selected frames are then written to redis, increasing the number of recalls per day by 8k. 4. 【Frame extraction strategy optimization】In order to solve the situation that sometimes the process of the audit service is suddenly dumped, the process monitoring and restart module is contributed to the utils package of py\_common, which supports the status detection, message reporting, automatic restart and other functions of the specified process, improving the stability of the machine audit link, and increasing the 7-day health of the machine audit from 99.634\% to 99.645\%.
Developer
ByteDance
2020 - 2022
1. 【Rendering gateway internal information system】The herz framework is used to implement a rendering gateway internal information management system, which can query the information of rendering DAG tasks, change the priority, change the static information such as tenants, and reduce the communication cost of upstream and downstream joint investigation. 2. 【Current limiter】Implement a token bucket limiter using Go's Limit to limit the flow of upstream rendering tasks at a fine-grained level.

Skills

ai
git
java
javascript
python
redis
golang
english