Profile picture

Experience

Microsoft

A/B Testing Software Engineer Sep 2025 - Present
Technologies: C#, AB Test, Big Data, Azure
  • Work on Microsoft’s ExP (Experimentation) team.
  • Design, implement, and maintain Microsoft’s A/B testing platform (online controlled experimentation platform) that supports large-scale data processing and analysis; help teams such as Bing, Office, Xbox, and Microsoft AI with experiment design, data collection, and result analysis to optimize product performance and user experience in a data-driven way.
Distributed Software Engineer Apr 2022 - Aug 2025
Technologies: C++, C#, Distributed System, HPC, Azure
  • Work on Azure Batch team.
  • Drive the design and implementation of Azure Batch’s task scheduler (Batch Scheduler), supporting the scheduling of 100M+ tasks daily; maintain and optimize system performance and reliability to keep it running efficiently at large scale.

Huawei

Virtualization Software Engineer Jul 2018 - Apr 2022
Technologies: C, Linux, KVM, QEMU, Libvirt
  • Work on the Virtualization team of 2012 Laboratory.
  • Responsible for feature development, bug fixing, stability assurance, and performance tuning of the KVM/QEMU-based hypervisor; track industry virtualization trends and drive system innovation and research.

Projects

ExP

Microsoft - 2025-Present

ExP (Experimentation) is Microsoft’s internal online A/B testing platform (online controlled experimentation platform) that powers data-driven decisions for Bing, Office, Xbox, Microsoft AI, and other businesses.

  • Own ComputeTaskManager, which manages and schedules the compute tasks of A/B experiments; designed and implemented a batch resubmission mechanism that lets clients resubmit batches of tasks in A/B experiments, improving system flexibility and user experience.

Batch Scheduler vNext

Microsoft - 2022-2025

Batch Scheduler vNext is the next generation of the Batch Scheduler component inside Azure Batch, built to raise the system’s stability, performance, and maintainability. The project rewrites Batch Scheduler, optimizes the scheduling algorithms, and introduces new capabilities to meet growing customer demand.

  • Designed and implemented the core architecture of the Policy Engine (the scheduling algorithm framework), allowing multiple policies (scheduling algorithms) to be configured and extended flexibly.
  • Designed and implemented benchmarks and integrated them into the CI process to continuously monitor and tune the performance of Batch Scheduler vNext; found and fixed several performance bottlenecks, improving system throughput by ~20%.
  • As the Quality Owner of the project, designed and implemented the CI/CD pipeline and the end-to-end test framework to ensure the continuous integration and delivery quality of Batch Scheduler vNext.
Profile picture

Projects (Cont.)

Batch Scheduler vCurrent

Microsoft - 2022-2025

Batch Scheduler is a critical Azure Batch component that manages and schedules large-scale compute tasks.

  • Responsible for feature development, maintenance, and performance optimization of WIJ (manages the lifecycle of jobs) and ABS (manages the lifecycle and scheduling of tasks).
  • Fixed several stability issues caused by deadlocks, race conditions, and similar problems, significantly improving system reliability and user experience.
  • Ported a usable version of LSAN (LeakSanitizer) to Windows and used it to locate memory leaks in the service; fixed several severe memory leaks (~15G leaked over 3-4 hours), significantly improving system stability and performance.

QEMU hot-replace

Huawei - 2021

QEMU hot-replace is a technique to replace the QEMU binary without interrupting the workloads running inside virtual machines, which can be used to patch QEMU vulnerabilities online.

  • Designed and implemented the QEMU hot-replace feature; built the overall framework based on fork+exec; used PIPE for inter-process communication to handle device state serialization/deserialization and the lifecycle management of the two processes during hot-replace.
  • The whole hot-replace takes less than 1s, and the workloads inside the virtual machine are not affected during the process.

Support custom CPU model for AArch64

Huawei - 2020

To keep the CPU features exposed inside a virtual machine consistent before and after live migration, x86 supports a “custom” mode that can expose a customized set of CPU features to the guest; AArch64, however, did not support the custom mode and could not expose a customized set of CPU features to the guest.

  • Designed and implemented exposing the same set of CPU features to guests across different ARM CPUs.
  • Developed the related KVM and QEMU code to make CPU features configurable.
  • Implemented automatically enabling/disabling dependent CPU features.

A-Tune

Huawei - 2019-2020

A-Tune is an OS performance tuning engine powered by AI. A-Tune uses AI technologies to make the OS “understand” services, simplifying IT system tuning while letting applications deliver outstanding performance.

  • Responsible for tuning components such as Hadoop, Spark, SPECJbb2015, and Dubbo, improving their performance by 30%, 30%, 40%, and 10% respectively.
  • Refactored the data collection and parsing modules to improve their scalability and configurability, and added automatic chart generation so that engineers can analyze and identify performance bottlenecks.

Support DBM of stage-2 for AArch64

Huawei - 2018-2019

Live migration relies on dirty page logging to copy memory. AArch64 only supported software-based dirty page logging, which requires the vCPU to trap frequently and hurts the performance of workloads inside the virtual machine.

  • Designed and implemented hardware dirty page logging based on the stage-2 DBM bit, so writing to memory inside the guest no longer traps.
  • Reduced the number of guest traps by 30%~80% during migration.