Zhanlin Shang, Developer in Sydney, New South Wales, Australia
Zhanlin is available for hire
Hire Zhanlin

Zhanlin Shang

Verified Expert  in Engineering

C++ and Python Developer

Location
Sydney, New South Wales, Australia
Toptal Member Since
March 8, 2021

Zhanlin has been a developer since 2012, specializing in C++ and Python. He has also designed programming languages and developed compilers. In addition to freelancing, he interned at Microsoft Research Asia and worked for a company on the ASX 100 List. Zhanlin is a programming polyglot who learns new business domains and technologies quickly and easily in order to develop and deliver exceptional work.

Portfolio

MongoDB
C++, Python, MongoDB, Databases, Query Plan, Static Analysis, Data Modeling...
Carousell PTE LTD
Python, MongoDB, Blockchain, PostgreSQL, Flask, Web Crawlers, API Integration...
TestBox Inc.
Python, UI Automation, Python 3, APIs, Python API, API Integration...

Experience

Availability

Full-time

Preferred Environment

Linux, C++, Python

The most amazing...

...thing I've created was Graph Assembly, a programming language I developed at Microsoft Research Asia.

Work Experience

Software Engineer

2021 - PRESENT
MongoDB
  • Involved in the development of a PoC for an AI powered query optimization.
  • Developed tools for static analysis for C++ codebase to identify coupling on different levels.
  • Created a PoC for stream processing as a part of MongoDB.
  • Developed EDSL for MongoDB aggregation pipeline in Python.
Technologies: C++, Python, MongoDB, Databases, Query Plan, Static Analysis, Data Modeling, Real-time Data, Python 3, Python Dataclasses

Python Developer

2022 - 2022
Carousell PTE LTD
  • Rewritten API calls to MongoDB in MongoDB aggregation for an NFT marketplace project.
  • Implemented and updated web endpoints in Flask for corresponding operations.
  • Refactored database operation layer from MongoDB into PostgreSQL for better relational query performance.
Technologies: Python, MongoDB, Blockchain, PostgreSQL, Flask, Web Crawlers, API Integration, Data Modeling, Web Scraping, Real-time Data, Python 3, REST APIs, Python Dataclasses

Python Back-end Developer

2021 - 2021
TestBox Inc.
  • Implemented webpage automation via Python and Selenium for a software evaluation startup.
  • Applied API for automatically managing support desk forms.
  • Implemented Python APIs for the corresponding operations.
Technologies: Python, UI Automation, Python 3, APIs, Python API, API Integration, Data Modeling, Web Scraping, REST APIs, Python Dataclasses

Software Developer

2020 - 2021
Immutable
  • Fine-tuned Go runtime performance by reducing GC times.
  • Implemented an Ethereum event listener and message dispatcher.
  • Deployed the back-end server of an NFT (cryptocurrency) exchange platform.
  • Implemented a transaction log observation service using Flask and PureScript.
  • Deployed and maintained Python services running on AWS.
Technologies: Go, TypeScript, Python, C++, PostgreSQL, Compilers, Compiler Design, Flask, Back-end, SQL, Amazon Web Services (AWS), HTTP, APIs, Docker, Mathematics, Algorithms, Blockchain, API Integration, Serverless, Data Modeling, Web Scraping, Real-time Data, Microservices, Python 3, REST APIs, Python Dataclasses

Research Student

2019 - 2020
CSIRO | Data61
  • Initiated the LLVM back end of the purely functional system programming language, Cogent.
  • Wrote an LLVM IR generator in Haskell, which generates an LLVM IR from Cogent AST.
  • Implemented interoperability between Cogent and C through an LLVM IR and LLVM Linker.
Technologies: LLVM, Haskell, C, Compilers, Compiler Design, Mathematics, Algorithms, Data Modeling

Software Developer

2018 - 2020
WiseTech Global
  • Designed and implemented a configurable pipeline for an internal content service in Python.
  • Led the development of a legal text processing platform.
  • Performance-tuned data science projects using C++.
  • Implemented and deployed data science microservices for internal use.
Technologies: Python, C++, C#, Clojure, Common Lisp (CL), Compilers, Compiler Design, Flask, Back-end, SQL, NoSQL, MongoDB, Amazon Web Services (AWS), HTTP, Docker, Mathematics, Algorithms, Data Modeling, Microservices

Research Intern

2018 - 2018
Microsoft Research Asia
  • Designed a lower-level programming language called Graph Assembly.
  • Executed the specification interpreter of Graph Assembly.
  • Implemented the prototype compiler of Graph Assembly.
Technologies: C++, LLVM, Compilers, Compiler Design, HTTP, Mathematics, Algorithms, Data Modeling

Developer

2012 - 2017
Freelance
  • Developed a mobile game, using Cocos2d and C++ on iOS.
  • Built a meta web framework in JavaScript and Lisp.
  • Developed a compiler for a superset of JavaScript that supports macros.
Technologies: C++, Common Lisp (CL), JavaScript, Python, Go, Cocos2d, SQL, NoSQL, MongoDB, HTTP

Graph Assembly

https://www.graphengine.io/
A lower-level programming language designed for high-performance usage for Microsoft Research's distributed computational graph engine. I designed the language and implemented the specification interpreter in C++ and the compiler in C++ and LLVM.

Cogent

https://github.com/NICTA/cogent
Cogent is a purely functional, system-level programming language. I initiated and implemented the LLVM back end for its compiler, using Haskell. In addition, I supported the interoperation between Cogent and C via LLVM.

Bytecode

https://pypi.org/project/bytecode/
Bytecode is the Python library for generating Python bytecode. I added a proper stack depth computation functionality to it so that code generation will not generate codes that will cause a runtime crash due to stack underflow.

LICPP

https://github.com/Z-Shang/LICPP
LICPP is a header-only C++ library that heavily utilized modern C++ templates to provide a Lisp-flavored C++ experience and included many Lisp concepts, such as mapping, reducing, and multiple variable binding.

Immutable X

https://www.immutable.com/
Immutable X is an L2 exchange for trading NFTs on the Ethereum blockchain. My contributions include the core engine and the public API components in Go, the database in PostgreSQL, the committee node in Python, and the request handling library in TypeScript.

MongoDB Atlas Stream Processing

https://www.mongodb.com/products/platform/atlas-stream-processing
The project aimed to build a stream processing engine for MongoDB Atlas. I designed and implemented the PoC, mainly on the core logic of handling windows through a stream and implementing queries on streams by reusing MongoQL.

Languages

C++, Python, Common Lisp (CL), Python 3, Go, TypeScript, JavaScript, Clojure, Haskell, C, SQL, C#

Frameworks

Flask, Cocos2d

Platforms

Linux, Amazon Web Services (AWS), Docker, Blockchain

Other

Back-end, HTTP, Python Dataclasses, Compilers, LLVM, APIs, Mathematics, Algorithms, Blogs, Documentation, Static Analysis, API Integration, Data Modeling, Web Scraping, Real-time Data, Full-stack Development, UI Automation, Web Crawlers, Serverless, Streaming

Libraries/APIs

REST APIs, Python API

Tools

Query Plan

Paradigms

Compiler Design, Microservices

Storage

NoSQL, MongoDB, Databases, PostgreSQL

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring