Sun Hui

Skills

  • Familiar with Golang, understand Golang programming features, such as goroutine,channel, etc., read the source code of Golang Runtime partly, understand the concurrency mechanism of Golang
  • Familiar with Docker and Kubernetes, understand the basic principle of Docker and Kubernetes, have experience in using Kubernetes
  • Can use the following languages: Python; Javascript; C/C++
  • Familiar with Linux, AWS and other development environments
  • Able to break through the limitation of high-level programming language level, understand the assembly under x86 platform, understand the C language system programming under UNIX /Linux environment
  • A certain understanding of the operating system principle, currently studying the XV6 source code
  • Complete knowledge system of Web front and back end, understand HTML/CSS/ JavaScript and other front-end knowledge, have experience in using VUE
  • Skilled in using Git for version control
  • Familiar with basic data structures and algorithms
  • English CET-6, skilled in using Google/StackOverflow/Wikipedia, able to collect and research English technical materials from the source, and output English technical documents

Project Experiences

OpenNESS(Open Network Edge Service Software)

Jul. 2020 - Now

OpenNESS is an open source edge application management system based on Kubernetes that enables service providers and enterprises to build, deploy and operate their own edge applications on the edge of any network, enabling easy migration of apps running on the Telco/Public Cloud to the edge.

Jul. 2020 - Aug. 2020

The development of unit tests for part of the core microservice components of OpenNESS, increased the code unit test coverage from about 50% to 100%, the development language is Golang.

  1. Fix a bug introduced by project members via go.mod during development.
  2. The was introduced by me to cover code branches which the test framework could not test under the normal situation.
Sep. 2020 - Nov. 2020

Investigate the application of blockchain and TCF(Trusted Compute Service) projects in OpenNESS. The main work is the Avalon and Fabric ramp-up, which are the sub-project of Hyperledger, and investigation of the open source project Intel K8s Device Plugin and K8s Add-on NFD(Node Feature Discovery) which can support the deployment of Avalon in OpenNESS.

The general idea behind this application is that Avalon1 and Fabric2 which both are distributed computing platforms will be deployed by OpenNESS to show OpenNESS's ability to manage edge computing applications in blockchain and trusted computing scenarios. The blockchain scheme adopts Fabric and Avalon will be used to connect Fabric to do the off-chain computation. Meanwhile, TEE mode is adopted in the Avalon platform to provide trusted compute. TEE uses Intel SGX(Software Guard Extensions) instruction set Extensions and supporting Software, including SGX PSW(Platform Software), Intel K8S SGX Device Plugin3, NFD4 and custom NFD SGX Extension.

During investigation:

  1. I read the official documentation of Fabric and Avalon projects, understood the overall architecture of Fabric and Avalon, walk through the code of Avalon according to the business logic process, clarify myself about how the data is uploaded to blockchain and sent to Avalon for off-chain trusted computing.
  2. I setup a complete set of hardware and software verification environment by deploying a Fabric cluster, and a Avalon platform base Intel SGX hardware, test and verify the whole process of trusted compute.
  3. I studied the official documentation of Intel SGX to understand the concept of SGX, and make knowledge reserve for the correct use of Intel K8S Device Plugin and NFD.
  4. I read Intel K8S Device Plugin SGX related part of the source code, as well as the source code of NFD, setup a test environment to figure out how to use both in order to enable SGX on OpenNESS.
  5. Two technical slides, about Avalon and SGX NFD , are exported, as well as several technical specification documents.
Nov. 2020 - Apr. 2021

Participate in the integration development of EMCO (Edge Multi-Cluster Orchestrator) and OpenNESS to ensure the delivery of tasks at a critical time-point. EMCO is a software framework that provides multi-cluster cloud native application deployment capabilities, it is integrated into OpenNESS to enhance its edge deployment capabilities.

Job content:

  1. I complete the ramp-up of EMCO in several days, take over the existing work, clarify the development tasks, cooperate with foreign developers of EMCO project, and complete the development of Ansible script of OpenNESS automation integration tool.
  2. I coordinate with the integration developers of the other modules (Harbor and Smart City) involved in the EMCO integration effort to ensure that the task is progressing smoothly.
  3. I complete relevant automation scripts and output internal test manual documents, and assist the QA for validation.
  4. I resolve bugs reported by QA and other teams using this feature.
Apr. 2021 - Now

Participated in the integration development of Private Wireless Experience Kit (PWEK) All in One, which is a sub-project of Smart Edge Open (SE) platform. The underlying layer of SE is based on K8s and Intel related hardware and uses Ansible to automatically deploy the edge server computing environment. On the basis of SE, PWEK All in One deploy the 5G core network data plane and control plane to the edge servers.

Job content:

  1. Responsible for the overall ansible Playbook design and Ansible script development of PWEK on SE
  2. Responsible for the debugging of Ansible scripts during the development and test of PWEK All in One, the location and repair of K8s and Docker faults involved in the deployment process, and the code review of the bug patch codes submitted by relevant developers involved in the faults.

XTAR

Jul. 2019 - Dec. 2019 Decentralized trading system based on blockchain

Project introduction

XTAR is a decentralized value trading platform based on VRF(Verifiable Random Function Algorithm) and PBFT(Practical Byzantine Fault Tolerant Algorithm) to implement DPOS(Delegated Proof of Stance) mechanism. The unique two-stage consensus algorithm improves the block output speed of the whole system, and achieves on-chain governance through the native system contract to ensure the democratic fairness of the consensus.

Main duties and responsibilities
  • XTAR Function reconstruction and performance optimization of the P2P network layer (P2P network layer)
  • XTAR Cross review of the code
  • XTAR System Bug check and repair
  • XTAR Development of back-end services within the system ecosystem
  • Based on XTAR system SDK system process testing and development
Technical details
  • The development language is ' Golang '
  • The third party library of network layer is ' libp2p '
  • The P2P network layer of the back-end service development system in the XTAR ecosystem was modified by me from a structured P2P network (implemented by Kademlia algorithm) to an unstructured P2P network to improve the node search performance.
  • In XTAR system P2P layer node network quality management, using EWMA(exponential weighted moving average) record of Peer node RTT(round-trip Time, round-trip Time) statistics for the ranking of the current node's peer.
  • The function of message limiting flow is implemented in the P2P layer of XTAR system to prevent the node crashing caused by message overload
  • The coroutine pool is implemented in the P2P layer of XTAR system to reduce GC pressure and improve system performance
  • Setup XTAR system Docker cluster development and debugging environment
  • XTAR Native System Contract Test Process Development
  • The development of XTAR system online IDE(integrated development environment) backend

Linkeychain Public Blockchain

Jun. 2018 - Feb. 2019
A public blockchain based on ‘DPOS’

Project introduction

Linkeychain is the second generation of blockchain system, which supports smart contracts and authorized equity proof mechanism DPOS, and provides underlying technical support for the company's commercial application of blockchain.

Main duties and responsibilities
  • Setup the underlying services based on blockchain
  • Responsible for the construction and maintenance of ‘P2P’ network layer of blockchain system
Technical details
  • The development language is ' Golang '
  • Refer to the open source project [Nebula] (https://github.com/nebulasio/go-nebulas)
  • The development is based on the third party ‘P2P’ network library ‘libP2P’, which provides the data structures and functions needed to develop ‘P2P’ network services

Conspace object storage system

May 2017 - Oct. 2017
Object Storage System Based on ‘Ceph’

Project introduction

Conspace is a network disk system based on ‘Ceph’

Main duties and responsibilities
  • Setup and deployment of ‘Ceph’ cluster in the development environment
  • Setup and deployment of ‘Ceph’ object storage system in the development environment
  • Development of Django back-end based on the ‘Cech’ object storage which provided ‘Amazon S3’ compatible RESTful interface
Technical details
  • AWSv4 signature authentication of HTTP protocol layer, file manipulation function and user information management of object storage layer were completed by using Python third party libraries’ Boto3 ‘and’ Requests’ on Amazon S3 compatible RESTful interface provided by ‘Cephs’ object storage system
  • Use ‘Django’ to manage ConSpace objects to store system business data
  • Use the ‘Django REST Framework’ to provide ‘JSON’ format data for the front end

Work Experiences

CIeNET Technologies

  • Jul. 2020 - now

  • System integration software engineer

    • Edge computing cloud platform software integration development
    • Edge computing cloud platform application landing investigation

Shanghai Qiri information technology co., LTD

  • Jul. 2019 - Dec. 2019

  • Golang development engineer

    • Blockchain system development
    • Web backend development

Linkey Intelligent Technology (Shanghai) Co., Ltd

  • Jun. 2018 - Mar. 2019

  • Software Development Engineer

    • Investigate the blockchain protocol and operation mechanism
    • Participate in base-level implementation and develop network application layer function

Inner Mongolia Junzheng Internet Microfinance Co. Ltd

  • Nov. 2017 - May 2018

  • Python development engineer

    • Develop internal tools by shell and Python
    • Manage services and applications on the AWS cloud platform,

Shanghai Rongshu Information Technology Co., Ltd

  • May 2017 - Oct. 2017

  • Python backend development engineer

    • Investigation Ceph (An open source distributed file system)
    • Development of the document management system based on Django through the object storage interface of Ceph

Self-employment

  • Sep. 2013 - Apr. 2017 Manage the family business

AVIC Huadong Optoelectronics (Shanghai) Co., Ltd

  • Mar. 2012 - Sep. 2013

  • FPGA engineer

    • Participated in the preliminary technical investigation of the project, responsible for the encoding and testing of the FPGA communication interface protocol in the hardware system
    • Designed the external driver circuit module of a device based on FPGA, and developed the transformation function between UART protocol and I2C protocol, make sure the hardware system can communicate with the I2C bus interface device through this module.

Education

  • Huazhong University of Science and Technology,2009 - 2012 Software Engineering (Master)
  • Wuhan University of Technology,2004 - 2008 Electronic Information Engineering (Bach.)

Note


  1. Avalon (Python/C++) is a Trusted Compute Service (TCF) software framework that aims to provide off-chain trusted computing for blockchains, addressing pain points such as scalability and privacy while maintaining the security and resilience of transactions. It supports Trusted Execution Environment (TEE), Zero Knowledge Proofs (ZKP), and Multi-Party Compute (MPC). ↩︎

  2. Fabric (Golang) is an Enterprise-level Consortium blockchain project with access mechanism. Its core consensus component has been upgraded from the Kafka cluster to the Raft cluster which is a CFT(Crash Fault Tolerance) cluster and will continue to evolve into the PBFT(Practical Byzantine Fault Tolerance) cluster in the future to enhance the decentralized nature of its blockchain. ↩︎

  3. Intel K8S Device Plugin is mainly in the form of customized K8S system Pod controller, which adds the ability to discover worker node hardware feature to the K8S cluster, and has the features of operation and maintenance automation. ↩︎

  4. NFD provides the K8S cluster with the ability to discover the hardware feature of worker nodes in the form of conventional deployment of K8S application Pod, but it also provides an extension interface, which can flexibly customize the strategy when discovering the hardware feature of worker nodes. ↩︎