Scroll To View More
Zhexuan Liu, Software Developer in Hangzhou, Zhejiang, China
Zhexuan Liu

Software Developer in Hangzhou, Zhejiang, China

Member since August 13, 2017
Since 2013, Zhexuan has been developing both the front-end and back-end of applications. He's worked on the Microsoft Dynamics team delivering massive features across multiple versions of Microsoft Dynamics. He has a thorough knowledge of different front-end and back-end frameworks, test-driven development, and CI/CD. He also develops hybrid apps and has academic and project experience with machine learning.
Zhexuan is now available for hire

Portfolio

  • Kiwi, Inc.
    Electron, Docker, Node.js, TypeScript, HTML/CSS, React, Vue.js, Next.js...
  • Microsoft
    TypeScript, React, Node.js, C#, SQL, .NET, HTML/CSS
  • Microsoft
    TypeScript, React, C#, SQL, HTML/CSS, .NET, Bash Script, Python

Experience

  • TypeScript 3, 6 years
  • React, 4 years
  • Django, 4 years
  • Vue.js 2, 4 years
  • Docker, 3 years
  • React Native, 3 years
  • Nuxt.js, 3 years
  • Electron, 2 years
Hangzhou, Zhejiang, China

Availability

Part-time

Preferred Environment

macOS/Linux/CentOS/Ubuntu, GitHub/GitLab, VSCode

The most amazing...

...thing I’ve developed were the (Meshkit.com) Mesh product lines which are projects across different areas—empowering drone users with a whole solution.

Employment

  • Partner | Tech Lead

    2017 - PRESENT
    Kiwi, Inc.
    • Delivered and deployed stable back-end projects handling the business logic, data syncing, and socket communication across mainland China and overseas servers (on both Aliyun and AWS); used Docker, Node.js, and TypeScript.
    • Created a test-driven development workflow and CI/CD process for the entire back-end of the project.
    • Delivered a 3D modeling service by using OpenDroneMap and a Panorama Stitcher service in order to process images collected via our products. It was developed by Python.
    • Integrated with Altizure SDK by using GraphQL.
    • Delivered the official website for our company using Next.js, and deployed it using Docker.
    • Delivered a cross-platform desktop application (i.e., the Mesh Desktop) for our company, using Electron, Vue.js, Webpack, and finished the unit test as well as E2E test.
    • Delivered a lightweight JavaScript engine (a React Native-like framework) which enables the JavaScript development of DJI drone applications faster and more easily. Mainly used the paradigm of Vue.js and utilized well-known libraries MobX and snabbdom; also used rollup to pack up and ship the library to NPM.
    • Delivered a WebView-handling user account and privilege management using Vue.js and Webpack.
    • Delivered a WeChat mini app, a UGC platform that could query and mark a no-flight zone status in mainland China.
    • Delivered admin portals for several back-end projects by using Django.
    • Participated in delivering the mobile application Mesh (available in Chinese App store), which contains views that are built by a light-weighted ReactNative (developed by ourselves, as mentioned in the above experience).
    Technologies: Electron, Docker, Node.js, TypeScript, HTML/CSS, React, Vue.js, Next.js, Nuxt.js, MySQL, Java/Android, Couchbase, Python, Django, Celery
  • SDE II (Software Development Engineer II)

    2015 - 2017
    Microsoft
    • Continued working on an OfficeGroup integration with a CRM and delivered OfficeGroup's solution v1.0, v2.0, and v2.5 in Microsoft CRM.
    • Acted as the owner and leader of the solution since v2.0, and handed it to vendor team after v2.5. It also became one of the most popular solutions on the CRM platform.
    • Was "borrowed" by another team to work on Project TBX, a plugin on the Microsoft CRM and guarded the project till its GA.
    • Contributed to the development of Unified Client for CRM, which is aiming at the OneCRM Solution and it will become the CRM unified client across different platforms and devices. This is a big milestone and refactored the entire CRM product line, and I have participated in this project since the very beginning.
    • Shared knowledge with colleagues about React, TypeScript, and CSS as well as back-end development with C# and Node.js.
    • Took charge of the localization and accessibility features of several projects.
    • Communicated with vendors and tracked their progress and testing outcomes against an OfficeGroup integration with the CRM.
    Technologies: TypeScript, React, Node.js, C#, SQL, .NET, HTML/CSS
  • Summer Intern for the Microsoft Dynamic Office Group App

    2014 - 2014
    Microsoft
    • Built a file management system for OfficeGroup integration in a CRM.
    • Joined the brainstorming, designing, and prototyping sessions with the PMs for the OfficeGroup integration.
    • Designed and worked on CI/CD and tested the entire project.
    • Implemented functionalities and fixed bugs in the back-end endpoints using .NET.
    • Participated in the entire package and deployment workflow using Webpack and Rollup.
    • Wrote helper scripts for project development and tested using Bash and Python.
    • Delivered the documentation and several blog articles for internal usage.
    Technologies: TypeScript, React, C#, SQL, HTML/CSS, .NET, Bash Script, Python
  • Summer Intern for the Microsoft Dynamic Web App

    2013 - 2013
    Microsoft
    • Worked on a Windows 8 application that would help project managers to manage projects. It shows the hierarchical tree structure of tasks in a project, along with timelines for each task in a Gantt chart view.
    • Wrapped up the environment of Microsoft Dynamics AX and its business logic.
    • Created a system design before coding it which ensured that my code was clean, maintainable, extendible, and reusable.
    • Applied MVVM patterns by using Knockout.js in the front-end development.
    • Contributed to a certain back-end endpoint design and implementation; gained practical experience with SQL and C#.
    Technologies: TypeScript, Knockout.js, Node.js, C#, SQL

Experience

  • Office Group Integration | Microsoft (Development)
    https://docs.microsoft.com/en-us/dynamics365/customer-engagement/basics/collaborate-with-colleagues-using-office-365-groups

    This project was done for Microsoft.

    This is a project which migrated the Office Group service from SharePoint and also integrated it with the Microsoft Dynamic CRM.

    It is a classic single-page application (SPA) that uses TypeScript, Knockout.js, and LESS. It allows CRM users creating, joining, and managing their own group as well as Office resources (documents, sheets, emails, conversations, and more) in the group. This is the project is one of the crucial projects for the One Microsoft strategy as it offers users the one-stop experience in Microsoft Dynamics.

    For the back-end, it uses C# and .NET to migrate the back-end endpoints and APIs from SharePoint and uses the One Microsoft's OAuth portal to handle account registration and management.

    I was the core developer of version 1.0 of this project and owner of version 2.0 and version 2.5 of this project. I also took charge of the implementation of the accessibility and localization for the entire project.

  • B.B.E. Official Website (Development)
    http://bbe-io.dev.bbe.io/

    This project was done for my Toptal Client B.B.E. (Bbe.io), and it is a small static sever-side-rendering website project that reworks their official website (their original official website is at the provided link).

    In this project, I set up and bootstrapped a project, determined the tech stack to be used, designed the project architecture, handled the development and deployment, and wrote detailed documentation.

    I used Nuxt.js to develop the website and also introduced TypeScript, and Vue-property-decorator to help improve the coding and development experience and quality. In addition, I also leveraged libraries such as moment, Vuex, Vue i18n, and Sass to achieve desired features from my client. I broke down the design to specific and reusable Vue.js components, and made them data-driven, which means data is separated into a corresponding JavaScript file and could be later replaced/hooked with client’s CMS back-end easily.

    During the entire engagement, I communicated with my client every day to sync my progress as well as asking questions in the early stages.

  • Fliteboard Official Website | B.B.E. (via Toptal) (Development)
    http://fliteboard.dev.bbe.io/

    This project is also done for my Toptal client B.B.E. (Bbe.io). In fact, this project was not scheduled in the original plan, but was scheduled before the previous project (i.e. B.B.E. Official Website) was finished, as they would like to extend my engagement to work with this project.

    In this project, I made full commitments in setting up and bootstrapping project, determining tech stack to be used, designing project architecture, development, deployment, and detailed documentation.

    This project involved migrating their old website (Fliteboard.com) which was written in WordPress and PHP to Nuxt.js and to remain exactly the same. In other words, my responsibility was to rewrite the website by Nuxt.js, and make the website data-driven so that they could easily plug it with their CMS back-end.

    I used pure JavaScript to write this project and utilized Nuxt.js to implement it as a server-side-rendering website. In addition, I leveraged libraries such as Vue i18n, Font Awesome, Vuex, Slick Carousel, Fancybox, and Turntable.js to implement the desired features from my client. Moreover, I broke down the entire website into highly reusable Vue.js components and implemented them with clean and well-commented code.

  • Mesh App (iOS, Available in Chinese App Store) (Development)

    An iOS application to communicate and operate with DJI drones. With this application, end users can easily:
    1. Create a flight mission and plan flight routes for DJI drones.
    2. Invite other users to join a mission and share real-time images as well as drone operations.
    3. Develop functional packages for customers from different industries.

    The application consists of two parts:
    1. Native application to handle user login, account management, and mission creation.
    2. Inside a mission, views are built with a lightweight React Native-like framework (i.e., the envoy framework we built and mentioned in my portfolio).

    One could log-in into the application to play around with the following credentials.

    phone: 18344408081
    password: Eric911216

  • Unified Client Interface | Microsoft (Development)
    https://blogs.msdn.microsoft.com/crm/2018/04/11/unified-interface-overview/

    A milestone project for Microsoft Dynamics.

    The project is a model-driven app and it was built using TypeScript and React together with many useful libraries such as Moment.js and so on.

    Starting from the very first stage, I participated in the design of the app state and most of the controls such as the grid, dialog, dropdown, sidebar, navbar, breadcrumb, forms, timeline, search, tab, and more.

    After the designing and prototyping stage, I participated in the implementation (both the CSS and React) of the whole project—owning the dashboard page, dialogs, and activity pages as well as the controls inside these pages. Moreover, I worked with the team to deliver on the accessibility and localizations for the pages I owned. Additionally, I also helped with back-end portal implementation using C# and .NET.

  • Task Based Experience (TBX) | Microsoft (Development)
    https://www.cloudfronts.com/mobility-feature-in-crm-2016-task-based-experience/

    Task Based Experience is a service/feature in Microsoft Dynamics 365 that enables users to focus on tasks and brings data from different entities together as a one-stop user experience.

    In this project, I participated in the implementation of the task flow process, the card control, and the form control as well as the accessibility feature. The back-end portal for this project was already fully supported so we are mainly working on this project for the client-side using C# and .NET.

  • Mesh Desktop (Development)
    http://mesh-desktop-release.meshkit.cn/MeshDesktop-v2.1.0.dmg

    This is a cross-platform application running in production currently, serving hundreds of Kiwi Inc.'s enterprise clients in mainland China.

    The project is an application based on the famous electron library, together with Vue.js and TypeScript. I designed the whole architecture of this application and implemented it from scratch, including all of the controls, pages, state management, file system, interaction with the back-end (and related back-end APIs as well), localization, Webpack packing, and deployment.

    It supports both Windows and macOS and is structured well and commented.

  • Mesh Official Website (Development)
    https://meshkit.cn

    The official website for Kiwi, Inc., developed by the SSR framework Next.js and deployed using Docker.

    Now this project is running in production serving our company (Kiwi, Inc.) to introduce our products and our teams to hundreds of enterprise clients in mainland China and several in South America.

    Inside this project, I applied my React knowledge and experience to structure the project architecture and used Qiniu (Qiniu.com) as a CDN service for any static resources. In addition to the built-in Webpack configuration supported by Next.js, I added customized PostCSS rules and JSX rules for better development experience. Now the project is using the latest Next.js framework which I just migrated from v2.0+ in October 2018. Moreover, this project is already localized for both English and simplified Chinese, and it is highly maintainable.

    Currently, this project is deployed on the Aliyun server.

  • Drone Flight Route Planner (Development)
    https://github.com/oozliuoo/drone-route-planning-demo

    A working demo which helps route-planning for a drone's flight on a general polygon area.

    Inside this demo, I used the Gaode Map API for demonstration and display purposes.

    In this project, it will accept an array of vertices representing any polygon and outputs a series of vertices representing the ordered route for a proper drone flight covering the whole polygon area.

    In this project, I applied an algorithm and geometrical knowledge to calculate the dot product/cross product of two vectors, the vector intersection, to check whether a point is inside a polygon, to count intersections between a vector and a polygon, and to obtain the type of polygon. Moreover, I used the A* algorithm to find the optimal path between two points inside the polygon so that the path will not step outside of the polygon.

    The output of this demo is now used in our production Mesh application and serving our clients in the architectural industry.

  • Mesh-dev-cli (Other amazing things)
    https://www.npmjs.com/package/mesh-dev-cli

    This is a tool for front-end development in Kiwi, Inc., a uniformed development CLI tool that helps bootstrapping, building/compiling, testing, and deploying a Vue.js application.

    This development tool contains Webpack configuration for projects developed with Vue.js and TypeScript in different environments. It allows users passing in global environment variables that could be used in the web project.

    This development tool is a CLI tool which enables a user performing expected actions by passing inappropriate parameters (user could type -h) for help. It also supports deployment and Slack notifications. Once the project is built, a user could fork the project and update the server and Slack token for customization.

  • Mesh-envoy (Development)
    https://www.npmjs.com/package/mesh-envoy

    A lightweight JavaScript engine used by Kiwi, Inc., enabling JavaScript developers who are quickly developing to control and communicate with DJI drones and other devices.

    This project applies the logic of several front-end frameworks such as Virtual DOM, change detection, and so on. It also defines the lifecycle of a typical envoy component.

    It utilizes the popular library snabbdom to handle the virtual DOM and change detection and also implements a change queue to allow the registering, monitoring, and management of changes. Additionally, it provides an event manager which includes an event emitter, allowing custom-event forwarding and receiving across different devices (e.g., iOS devices).

  • Mesh-envoy-mobx (Development)
    https://www.npmjs.com/package/mesh-envoy-mobx

    A modified version of MobX, specifically developed for the JavaScript engine "envoy" used in Kiwi, Inc.

Skills

  • Languages

    TypeScript 3, HTML5, CSS3, JavaScript 6, Less, Python 3, Python 2, Java, GraphQL, C#, C#.NET
  • Frameworks

    JavaScriptCore, Next.js, Nuxt.js, Electron, Tailwind CSS, Angular, AngularJS, Redux, Knockout.js, Django, React Native, Cordova
  • Libraries/APIs

    React, Vuex, Vue.js 2, Vue.js, Bootstrap Vue, Node.js, Chai, REST APIs, NumPy, SciPy, Pandas, MobX, Snabbdom
  • Tools

    Vue CLI, Mocha, PostCSS, Docker Compose, Makefile, Celery, Babel, AWS ECS, AWS CLI, Webpack, NPM, Rollup, Microsoft Dynamics AX
  • Paradigms

    Model View Viewmodel (MVVM), Functional Programming, Declarative Programming, Continuous Integration (CI), Continuous Delivery (CD)
  • Platforms

    Docker, Anaconda, AWS EC2
  • Storage

    MySQL, Couchbase, Couchbase Lite, MongoDB
  • Other

    Vue-router, WeChat Mini Programs, Front-end Development

Education

  • Master's degree in Computer Science and Artificial Intelligence
    2016 - 2019
    Georgia Institute of Technology - Atlanta, GA, USA
  • Bachelor's degree in Computer Engineering and Computer Science
    2010 - 2014
    University of Wisconsin-Madison - Madison, WI, USA
I really like this profile
Share it with others