Tao Zhang, Developer in Kirkland, WA, United States
Tao is available for hire
Hire Tao

Tao Zhang

Bio

Tao is a senior full-stack developer and architect who worked on over 14 million lines of code on large-scale, real-time acquisition software projects. He primarily focused on the back end for more than 11 years. Tao's expertise is mainly in C++, C#, Java, Python web development, performance optimization, and troubleshooting in Azure and AWS.

Portfolio

Oracle
Go, Kubernetes, Oracle DBaaS, REST APIs, API Integration, SQL, APIs...
JPMorgan Chase
Amazon Web Services (AWS), Performance, Spring 5, Postman, JSON, Web API...
P97
Software Architecture, Postman, JSON, ASP.NET Core 2, Moq, TFS...

Experience

  • Software Development - 18 years
  • .NET - 10 years
  • C# - 8 years
  • Java - 6 years
  • Web API - 5 years
  • ASP.NET - 4 years
  • Spring Boot - 3 years
  • Apache Kafka - 2 years

Preferred Environment

Amazon Web Services (AWS), Spring, Azure, ASP.NET, Python, Java, C++, C#

The most amazing...

...web service I've created was for a large-scale project which automated log analysis and problem troubleshooting workflow.

Work Experience

Principle Software Engineer

2021 - PRESENT
Oracle
  • Developed a highly available, high-performance, and highly scalable REST API service in Oracle OCI using Go language and Java in the back end to provide an authorization service for internal clients.
  • Developed and maintained CI/CD pipeline build scripts to deploy REST API services in Kubernetes pods running in Oracle OCI, and troubleshot issues using the Kubernetes CLI.
  • Designed an async API to support bulk operations for clients importing or uploading large amounts of data to our authorization service and storing the data in an Oracle database.
  • Used Codex with OpenAI GPT-5 to generate unit and integration test code, and automated DevOps manual steps using Python, JavaScript, and TypeScript.
Technologies: Go, Kubernetes, Oracle DBaaS, REST APIs, API Integration, SQL, APIs, Oracle PL/SQL, Oracle, Spring Boot, Object-oriented Programming (OOP), Automation, Back-end Architecture, DB, Architecture, Databases, Leadership, Agile, Git, Linux, Microservices, SDKs, Regular Expressions, RESTful Services, Scripting, Workflow Automation, TypeScript, Data Migration, JSON Web Tokens (JWT), OAuth, Full-stack, Role-based Access Control (RBAC), User Permissions, Angular, Full-stack Development, Web Services, Chrome Extensions, Docker, CI/CD Pipelines, Error Logging, SQL Stored Procedures, cURL Command Line Tool, Dashboards, Large-scale Distributed Systems, Distributed Systems, System Integration, ERP Systems

Senior Software Engineer

2020 - 2021
JPMorgan Chase
  • Provided a scalable, highly available, and low latency data transformation web service in a public and private cloud with a Java back end.
  • Worked on performance enhancement and troubleshooting to better support more than 1000 TPS during peak time.
  • Built-up a CI/CD pipeline to generate metrics data for every build, unit test/integration test execution, deployment, and more. Also, achieved zero downtime during every deployment.
Technologies: Amazon Web Services (AWS), Performance, Spring 5, Postman, JSON, Web API, Design Patterns, HTTP REST, JavaScript, Node.js, Back-end, REST APIs, Apache JMeter, Cassandra, Jenkins, Python, Java, XML, SQL, Bootstrap, Spring Boot, Apache Kafka, Object-oriented Programming (OOP), React, Back-end Architecture, DB, Architecture, Databases, Leadership, Agile, AWS Lambda, Git, Linux, Microservices, SDKs, RESTful Services, Scripting, Workflow Automation, TypeScript, Data Migration, Full-stack, Angular, Full-stack Development, Web Services, Docker, CI/CD Pipelines, Error Logging, Redis Cache, cURL Command Line Tool, NoSQL, Amazon DynamoDB, Redis, Dashboards, Large-scale Distributed Systems, Apache Tomcat, Distributed Systems, System Integration, ERP Systems, Financial Systems

Senior Software Engineer

2019 - 2020
P97
  • Developed a web service for a mobile payments app in .NET/.Net Core and C# running in Azure. Utilized SQL Server DB, Azure Cosmos DB, Redis Cache, and In-memory cache as a data storage strategy to achieve the best performance.
  • Applied the blue-green deployment strategy in Azure to ensure zero downtime during app service deployment, web jobs, azure functions, etc.
  • Created web jobs in Azure to communicate with different payment hosts by different payment types, such as Google Pay, Apple Pay, Samsung Pay, or Chase Pay.
  • Used C# to create a new payment workflow with Worldpay. Got payment info from the Service Bus topic and packed them into ISO 8583 message format, sent to WorldPay server, and returned transaction result as Service Bus message.
  • Implemented in-memory cache with TTL in C#. An LRU cache can get data from SQL Server and Cosmos DB. It also supports REST API to access the cache.
  • Used Service Bus to support event-driven workflow to combine different web jobs to finish payment workflow. Each web job will be a consumer and producer of a specific Service Bus message.
  • Worked on a data analysis project which tries to gather performance metrics data by different payment workflows. Data came from Cosmos DB with indexes created to get better performance.
Technologies: Software Architecture, Postman, JSON, ASP.NET Core 2, Moq, TFS, Chase Paymentech, ISO 8583, Worldpay, Google Pay, Microsoft SQL Server, .NET Core, .NET, Visual Studio, Oracle Service Bus (OSB), Service, Azure Cosmos DB, C#, ASP.NET, XML, XML Parsing, Fintech, REST APIs, API Integration, SQL, APIs, Bootstrap, Azure, Object-oriented Programming (OOP), C#.NET, Back-end Architecture, DB, Architecture, Payment APIs, Databases, Leadership, Agile, SQL Server 2012, Microservices, Regular Expressions, RESTful Services, Scripting, Workflow Automation, Data Migration, Google Cloud Platform (GCP), PostgreSQL, Full-stack, Angular, Full-stack Development, Windows, Web Services, Mobile Payments, Docker, CI/CD Pipelines, Error Logging, SQL Stored Procedures, Redis Cache, NoSQL, Amazon DynamoDB, Redis, Dashboards, Large-scale Distributed Systems, Distributed Systems, System Integration, Financial Systems

Developer

2019 - 2019
Palmetto Wood Shop, LLC
  • Extracted Excel data and processed it using VBA script.
  • Utilized CorelDRAW API to automate interaction with CorelDRAW UI. Integrated CorelDRAW and ShipStation.
  • Used hashmaps, collections, arrays, and data structures to process and convert data from ShipStation to CorelDRAW.
Technologies: CorelDRAW, Microsoft Excel, Visual Basic for Applications (VBA), CSS, Chrome Extensions, System Integration

Senior Software Engineer

2007 - 2019
Schlumberger
  • Redesigned data structure, re-architected software, and introduced parallel programming in the back end to improve the performance of web services and desktop apps. Improved performance from 30%-80% in a large-scale real-time acquisition system.
  • Set up the CI system to improve development efficiency for a large population of the community. Improved the development lifecycle time from 3-7 hours to 10-60 minutes, which saves a lot of money for the projects.
  • Worked as one of the authors to write C++ and C# coding standards for projects. Around 150 developers all over the world followed this coding standard in daily work and code review sessions.
  • Created a web service to host an automatic log file analysis and dump file analysis. Promoted the project troubleshooting and monitoring to a higher level and saved a lot of money for the project.
  • Introduced the static code analysis tool Coverity to the project for C++, C#, and Java. It was integrated into the CI system in 2009 and still acts as one of the most important metrics used to measure code quality.
  • Worked as a full-stack developer to create REST APIs with Java, Node.js, and JavaScript to support real-time monitoring and alarms. Created a service that provides a good view of the healthy status of all apps running in either the cloud or on desktop.
  • Implemented a tool control system via sockets in C++. Controlled hardware behavior by sending commands to the device and reading messages from it to determine the real-time status.
  • Used Amazon Lambda to host a small web service in Java to maintain hardware inventory information. Compared Lambda and EC2 and chose Lambda due to its lower cost and fast deployment.
Technologies: Performance, Software Architecture, MySQL, Web API, TFS, Google Test, Standard Template Library (STL), Design Patterns, IIS, JavaScript, .NET, JSON, Windows Presentation Foundation (WPF), ASP.NET, Moq, Docker, Microsoft SQL Server, COM, Python, Node.js, Java, C++, C#, Visual Studio, XML, XML Parsing, APIs, Azure, .NET Core, Object-oriented Programming (OOP), C#.NET, Automation, React, HTML, Back-end Architecture, DB, Architecture, Databases, Leadership, Agile, SQL Server 2012, Git, SDKs, C#.NET WinForms, Regular Expressions, Sockets, RESTful Services, API Integration, Workflow Automation, Data Migration, PostgreSQL, Full-stack, Angular, Full-stack Development, Windows, Web Services, Error Logging, SQL Stored Procedures, Redis, Dashboards, System Integration

Senior Software Developer

2004 - 2007
Nortel Networks
  • Designed an Oracle database and developed stored procedures.
  • Programmed in Java to add new features for the network and telecommunication device management system.
  • Utilized Solaris/Linux commands and Bash shell as a small tool in daily development.
  • Programmed in C++ to create an interface between hardware and the Java application.
  • Used Eclipse as an IDE to do the coding work for C++ and Java.
Technologies: Eclipse IDE, IBM Rational Rose, Unix Shell Scripting, Design Patterns, Solaris, C++, Java, Software Development, Oracle PL/SQL, .NET Core, Object-oriented Programming (OOP), CTI, Telephony, SIP, System Integration

Senior Software Developer

2001 - 2004
HInnovation
  • Designed MySQL database tables and developed stored procedures to support a medical remote diagnostic system.
  • Developed ASP web pages with JavaScript to provide query and statistic functions.
  • Developed COM objects as back-end or business logic layer in C++. Those COM objects acted as a small service to combine the whole workflow together.
  • Created IP phone functionality based on the H.323 protocol. Integrated with a highly efficient compression and decompression algorithm. Also integrated with the echo elimination algorithm.
  • Created a C++ program based on different medical image formats, such as CT and MRI.
  • Created an automated fax module by integrating it with hardware in C++. Converted text into a TIFF file, sent it to the hardware, and forwarded it to the target fax machine.
Technologies: MySQL, Standard Template Library (STL), IIS, C++, JavaScript, ASP.NET, Software Development, Object-oriented Programming (OOP), DB, App Installation, Web Services, System Integration

Experience

CI System for a Large-scale Project

I have been working with a large scale software system that has a total of 14 million lines of code (C#/C++) for 11 years. It used to take 8-10 hours to build and generate the installation kit or deploy it to the cloud. With the old baseline build, it could only generate one build and one kit per day.

We built the CI (continuous integration) system in Python mainly and also used Powershell, Jenkins, and other technologies to implement automated processes in the development cycle.  After setting up the CI system, the average build time is about an hour and installation kit generation/deployment takes about 1-1.5 hours.

We also introduced many code metrics such as compile warnings, code complexity, and unit test coverage into the CI system. In addition, the CI system also helps to run all kinds of automation testing and generate reports. The CI system improved development efficiency for about 200 developers, QAs, and managers.

TDD Applied to a Large Legacy C++ Codebase

I redesigned many complicated classes in a large-scale C++ codebase following different design patterns, such as singleton, factory method, composite, adapter, or observer. The C++ codebase was refactored to make it testable by extracting to interfaces. I used GTest/Gmock provided by Google to test our legacy C++ class. 

Automated Workflow Analysis and Troubleshooting

As a large-scale real-time acquisition system, we set up a central place to store logs, performance data, dump files, etc., which are collected from different desktops or public cloud deployments.
We developed a web service to provide automated processes for different purposes, such as log file analysis to find the most popular tool string combination, performance data analysis to find out potential performance bottlenecks; dump file analysis to find the root cause of a crash or exception. We use C# with .NET Core and Python to develop the back end and Node.js and JavaScript to develop the front end.
SQL Server and Cosmos DB NoSQL as DB were implemented for data storage, and Redis cache and memory cache as another layer of data storage to achieve better performance. This web service was deployed to Azure.

Payment Workflow API

I designed and implemented REST APIs and endpoints for a payment workflow, serving as an e-payment web service or a mobile app. The web service runs in Azure and communicates with different payment service providers to finish payments. It is built on top of C#, ASP.NET, and .NET Core. It utilized different layers of data storage: SQL Server, Cosmos, Redis Cache, and an in-memory cache in different stages of the whole workflow to achieve the best performance.

We use a Python script to perform the automation testing and build a CI/CD pipeline on top of Azure DevOps.

We built different web pages with Node.js and Angular. These web pages serve developer troubleshooting, statistics, and reporting for managers and operations staff, REST API testing, and client demos.

Data Interpretation and Conversion

I developed a web service to provide different format files, such as DLis, or PDF, as the client requires deliveries of a large, real-time acquisition system. I used Java and Python as back-end coding languages to support a web service running in AWS. For the database, I used Cassandra and Amazon S3 as data storage. Further, I used Node.js for the front end to set up a simple UI and perform API testing. TDD is applied throughout the whole lifecycle of the project.

Telecommunication Device Management System

I built a 3G device management system running in Unix for Nortel Networks. That system was developed by Java together with a small part of a C++ component. The C++ code mainly communicates with 3G devices via socket connection based on a special protocol.
Java code builds whole systems based on MVC, including UI, business logic, and data models. I used JNI to connect Java MVC parts with C++ components to get and set the configuration of 3G devices from the UI down to the hardware.

.NET Core REST API Server Development

I rewrote a Java-based REST API service using C#/.NET Core. This REST API server performs the following things:
• Receive XML requests from a financial organization
• Deserialize the raw XML request to a specific data model based on different request types in XML
• Apply different logic to convert data models in different workflows
• Serialize the final data model to XML and send it back

Excel Add-ins Development

The client produces metrology software. The software allows for gathering precision measurements and allows its customers to test their measurement equipment to see if it is reliable. The client needs to create an Excel add-in from scratch that takes various inputs and then creates the Excel sheet template dynamically.

Call Center Project

Created a call center platform to support different industries, providing the following common functionalities:

1. An IVR system integrated with Nortel PBX system to support the configurable automatic voice response system to provide information query, booking, etc.
2. An automatic fax system.
3. IP phone call.

Java and Spring Boot REST Service

I worked in the data security department to provide tokenization and key management service to support large volume transactions for internal customers in the bank. I built up a highly scalable, highly available, and high-performance web service that deploys to AWS and a private cloud (based on CloudFoundry) with Java and Spring Boot as the back end, Cassandra and DynamoDB as data storage, and Apache Kafka as a message queue. I also mentored new team members to catch up on project and technical stacks quickly.

Authorization Service in Oracle

The Authorization service is a highly available, high-performance, and scalable REST API solution built in Oracle OCI using Go for the back end.

The solution includes three core microservices:
1. Policy and Role Management: Manages roles, artifact types, data security conditions, and policies stored in Oracle DB.
2. Authz Decision Service: Delivers runtime policy decisions and maintains an in-memory store synchronized with Oracle DB.
3. Job Service: Schedules and monitors long-running tasks, and supports asynchronous APIs for importing large volumes of data into Oracle DB as the source of truth for the authorization decision service.

To improve development efficiency, the team implemented:
1. Using Codex with OpenAI GPT 5 to generate unit test code, integration test code using Go, Java, Python, Shell, etc.
2. Using Codex with OpenAI GPT 5 to automate the DevOps manual steps using Python, JavaScript, TypeScript, etc.
3. CI/CD pipeline scripts for deploying services to Kubernetes pods in Oracle OCI.

Web Application for Loan Management with a Python Back End and Svelte Front End

1. Cerbos Authorization Integration (Primary Focus)
• Integrated Cerbos Policy Decision Point (PDP) with the Python back end.
• Implemented authorization checks across the application.
• Created and maintained Cerbos policy files for resource-based access control.
• Developed database integration supporting both SQLite and PostgreSQL.
• Added feature flag protection for Cerbos functionality.

2. User Invitation System
• Implemented a complete user invitation system (back end and front end).
• Created user role assignment functionality.
• Fixed multiple issues with user invitation after merge/rebase operations.
• Updated database schema for user invitation tables.

3. Docker and Infrastructure
• Created Docker support for the Cerbos server.
• Fixed Docker Compose configuration for both demo and local environments.
• Updated Helm chart templates for Cerbos deployment.
• Created scripts for building and launching services via Docker.

4. Front-end Development
• Implemented user invitation UI components in Svelte.
• Created AcceptInvite.svelte component.
• Updated Users.svelte and InviteUser.svelte components.
• Integrated authorization UI elements.

ShipStation and Shopify Automation and Integration

I developed the script using Python and VBA to integrate Shopify and ShipStation with CorelDRAW to automate the entire process, from receiving the order to the wood shop owner making the product for the customer.

MAIN FUNCTIONALITIES:
• Extract the order information and notes from Shopify and Shipstation.
• Update the template in CorelDRAW to generate the design of the product based on the customer's needs.

Education

1992 - 1996

Bachelor's Degree in Mathematics and Application Software

Jilin University - Changchun, Jilin, China

Certifications

NOVEMBER 2020 - PRESENT

Certified Developer – Associate Certification Preparation for AWS

Cloud Academy

APRIL 2018 - PRESENT

Google Cloud Platform Fundamentals: Core Infrastructure

Google Cloud

OCTOBER 2017 - PRESENT

Machine Learning

Stanford University

MAY 2004 - MAY 2014

Java Certified Programmer

Sun

Skills

Libraries/APIs

Node.js, REST APIs, Sockets, Standard Template Library (STL), Moq, Web API, React, Google APIs, PyTorch

Tools

Apache JMeter, WinDbg, Visual Studio, C#.NET WinForms, Jenkins, TFS, Git, Postman, cURL Command Line Tool, Microsoft Excel, CorelDRAW, Eclipse IDE, Mercurial, IBM Rational Rose, GitLab, Oracle DBaaS, Kafka Streams, Apache Tomcat, ShipStation

Languages

JavaScript, Java, C#, C++, Python, Go, C#.NET, TypeScript, XML, SQL, CSS, HTML, Visual Basic for Applications (VBA), XSD, DYNAMO, Python 3, Assembly

Frameworks

.NET Core, .NET, Google Test, Spring Boot, ASP.NET, Windows Presentation Foundation (WPF), Windows PowerShell, ASP.NET Core 2, ASP.NET MVC, JSON Web Tokens (JWT), Angular, Spring, Spring 5, Bootstrap

Paradigms

Test-driven Development (TDD), Socket Programming, Object-oriented Programming (OOP), Automation, Back-end Architecture, Microservices, Role-based Access Control (RBAC), Design Patterns, Agile

Platforms

Amazon Web Services (AWS), Windows, Azure, Docker, Windows Desktop, AWS Lambda, Oracle, Linux, Kubernetes, Apache Kafka, Solaris, Google Cloud Platform (GCP), AWS Cloud Computing Services, Oracle Database, Oracle Cloud Infrastructure (OCI), OCI Vault

Storage

Microsoft SQL Server, DB, Databases, NoSQL, Redis, Cassandra, MySQL, SQL Server 2012, Azure Cosmos DB, JSON, Redis Cache, XML Parsing, Oracle PL/SQL, PostgreSQL, SQL Stored Procedures, Amazon DynamoDB, Oracle RDBMS, Amazon S3 (AWS S3)

Other

Back-end, Performance, IIS, Debugging, COM, Software Development, Memory Leaks, C++ Memory Model, HTTP REST, APIs, CI/CD Pipelines, Cloud Architecture, Architecture, SDKs, RESTful Services, Data Migration, Full-stack, Full-stack Development, Error Logging, Large-scale Distributed Systems, Distributed Systems, System Integration, Mobile Payments, Chrome Extensions, Software Architecture, Web Services, Google Pay, Worldpay, ISO 8583, HTTP, HTTPS, Chase Paymentech, Fintech, API Integration, Serverless, Payment APIs, Leadership, CTI, App Installation, Telephony, SIP, Regular Expressions, Scripting, Workflow Automation, OAuth, User Permissions, Dashboards, ERP Systems, Financial Systems, Service, Oracle Service Bus (OSB), Unix Shell Scripting, FirstData, Machine Learning, Serializer/Deserializer (SerDes), Excel Add-ins, Excel Expert, Office 365, Data Structures, Algorithms, Cosmos, Linux Servers, Security

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