With nearly 3 years of professional experience under my belt, I have primarily focused on backend development. Proficient in Python, I also possess solid familiarity with C++ and Golang.
My skill set encompasses working with a variety of relational and non-relational databases, including MySQL, MongoDB, Elasticsearch, Minio, and Redis. Additionally, I have container expertise and am well-versed in the common operations of Docker and Kubernetes.
Upholding a high standard of code quality, I master object-oriented programming design and stay well-versed in programming best practices and secure coding principles.
Notably, my previous work experience at Huawei has equipped me with full-cycle commercial project development expertise.
Graduating from Beijing-Dublin International College (BDIC), a joint international program between University College Dublin (UCD) and Beijing University of Technology (BJUT), I have developed strong English proficiency, enabling seamless communication in my daily work.
Additionally, I excel at data structures and algorithms. During my university years, I actively participated in algorithm competitions, repeatedly earning accolades. I also have a solid grasp of compiler principles, having completed an interpreter project as my university graduation work, which can be found on my GitHub (https://github.com/SanyueHan/Degree-Project).
Furthermore, I am proficient in using Git and skilled in AI-assisted coding.
1. Edge Device Management Module Development in C++ & Python (2022)
Primarily responsible for the code development, testing, end-to-end validation, and related documentation of the edge device management software DEVM (Device Manager). As part of the Huawei Device-Edge-Cloud Collaboration project, DEVM northbound interfaces with the Ascend edge device management OM software, and southbound interfaces with various module drivers. It unifies the interfaces (open, close, setattr, getattr) provided by different drivers to the upper layer, facilitating configurable loading and read/write operations. This approach not only reduces the coupling between upstream and downstream components but also enables third-party vendors (ISV) to quickly develop secondary applications based on the existing templates. For detailed information, please refer to the "Module Development" section of the Huawei Ascend MindX-Edge official documentation on the OMSDK product (https://www.hiascend.com/document/detail/en/mindx-edge/500/overview/index.html).
2. Incremental Learning Management System Development in Golang & Python (2023)
Involved in the POC (Proof of Concept) of the incremental learning technology project and the subsequent commercial software development. In the technology project, I'm primarily responsible for end-to-end integration and validation, testing, and debugging, successfully connected various key processes, including inference on Huawei Ascend Atlas500 edge devices, hard sample selection as well as incremental training on Ascend Atlas800 servers, and also model updating for the edge devices. I Played a crucial role during the POC phase. In the commercial incremental learning project, I served as a key member of the team, responsible for the development, testing, issue resolution, and documentation of the ics-manager and ics-installer modules. The ics-manager module provides a unified management interface for incremental learning tasks, supporting the creation, querying, and deletion of tasks, as well as the upload/download of human-annotated data, the initiation of incremental training, and the deployment of new models to edge devices. It integrates with a workflow engine based on the Kubeflow pipeline for task container orchestration. The ics-installer module is responsible for the system-level installation, deployment, and uninstallation on a Kubernetes (k8s) platform. For detailed information, please refer to the "AccDECS" product of the Huawei Ascend MindX-Edge official documentation (https://www.hiascend.com/document/detail/en/mindx-edge/500/overview/index.html).
3. LLM Inference project in C++ and Python (2024)
Joined the Mindie-Service development team, primarily responsible for integrating with the underlying acceleration library (ATB) to achieve model decoupling. Conducted compatibility verification for different CPU architectures, operating systems, and models. Also supported other teams within the company in setting up demonstration environments and troubleshooting functional issues for customer presentations.
I'm responsible for the storage and retrieval of non-relational data using ElasticSearch and MongoDB.
The data will be regulated before storing it in the database for further search purposes. The methods applied in this stage include summarizing some regular expressions for information extraction, validation, or speculation, calling some third-party APIs to get a normalized result, and sometimes using machine learning models to make some estimations to improve the completeness of the original data.
To adapt to different search requirements, appropriate indexes should be designed for the databases, and the performance and maintainability should be balanced.
The search could be divided into conditional searches and general searches in which different kinds of ElasticSearch queries will be constructed. For general text search, one optimization direction is to make the results appear in decreasing order of relevance, and the relevance is defined by giving different boost arguments on different fields.
The web frameworks implemented in our projects include Flask and Tornado.