Tao Zhang
Verified Expert in Engineering
Software Developer
Kirkland, WA, United States
Toptal member since May 6, 2015
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
Experience
Availability
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
Oracle
- Developed a highly available, high performance and highly scalable REST API service in Oracle OCI using Go language in the back end to provide authorization service for internal client.
- Developed and maintained CI/CD pipelines build script to deploy REST API services in Kubernetes pods running in Oracle OCI and troubleshooting with Kubernetes CLI.
- Designed async API to support bulk operation for clients to import or upload huge amounts of data to our authorization service and stored data to Oracle DB.
Senior Software Engineer
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.
Senior Software Engineer
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.
Developer
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.
Senior Software Engineer
Schlumberger
- Redesigned data structure, re-architected software, and introduced parallel programming in back end to improve the performance of web services and desktop apps. Improved performance from 30%-80% in large scale real tie acquisition system.
- Set up the CI system to improve development efficiency for a large population of the community. Improved the development life cycle time from 3-7 hours to 10-60 minutes which save 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 session.
- Created web service to host an automatic log file analysis and dump file analysis. Promoted the project troubleshooting and monitoring to higher level and saved a lot of money for the project.
- Introduced the static code analysis tool Coverity to project for C++, C# and Java. Has been integrated to CI system in 2009 and still acts as one of the most important metrics data to measure code quality.
- Worked as a full-stack developer to create REST API with Java and Node.js/JavaScript to support real-time monitoring and alarm. Created a service that provides a good view about healthy status of all apps running in either cloud or desktop.
- Implemented tool control system via Socket in C++. Controled behavior of hardware by sending a command to hardware and it also read messages sent from hardware to know the real-time status of hardware.
- Used Amazon Lambda to host a small web service to maintain hardware inventory info. Compared Lambda and EC2 and chose Lambda by its lower cost and fast deployment. Done in Java.
Senior Software Developer
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.
Senior Software Developer
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 function.
- 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 high 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 automatically fax module by integrating it with hardware in C++. Converted a text into a TIFF format file, sent it to hardware, and to the target fax machine.
Experience
CI System for a Large-scale Project
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
Automated Workflow Analysis and Troubleshooting
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
We built different web pages with Node.js and Angular. Those web pages can serve developer troubleshooting purposes, statistics, and reporting purposes for managers and operation stuffers, testing REST APIs and making demos for clients, etc.
Data Interpretation and Conversion
Telecommunication Device Management System
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
• 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
Call Center Project
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
Education
Bachelor's Degree in Mathematics and Application Software
Jilin University - Changchun, Jilin, China
Certifications
Certified Developer – Associate Certification Preparation for AWS
Cloud Academy
Google Cloud Platform Fundamentals: Core Infrastructure
Google Cloud
Machine Learning
Stanford University
Java Certified Programmer
Sun
Skills
Libraries/APIs
Node.js, REST API, Sockets, Standard Template Library (STL), Moq, Web API, React.js, Google APIs, PyTorch
Tools
Apache JMeter, WinDbg, Visual Studio Development, C#, Jenkins, TFS, Git, Postman, Excel Development, CorelDRAW, Eclipse IDE, Mercurial, IBM Rational Rose, Git, cURL Command Line Tool, Oracle DBaaS, Apache
Languages
JavaScript, Java, C#, C++, Python, Go, .NET, XML, SQL, CSS, HTML, Visual Basic, XSD, DYNAMO, Python
Frameworks
.NET Core, .NET, Google Test, Spring Boot, ASP.NET, Windows Presentation Foundation (WPF), Windows PowerShell, ASP.NET Core 2, ASP.NET MVC, Spring, Spring 5, Bootstrap
Paradigms
Agile Development, Socket Programming, Object-oriented Programming (OOP), Automation, Back-end Developers, Microservices Development, Design Patterns, Agile Development
Platforms
Windows Development, Azure, Windows Development, AWS Lambda, AWS, Oracle Development, Linux, Kubernetes, Apache Kafka, Solaris, Docker, Cloud Engineering, AWS
Storage
SQL Server, DB, Database, Cassandra, MySQL, SQL Server, Azure, JSON, Redis Cache, XML, Oracle Development, Oracle RDBMS, Amazon S3, NoSQL
Other
Back-end Developers, Performance, IIS, Debugging, COM, Software Development, Memory Leaks, C++ Memory Model, HTTP REST, APIs, CI/CD Pipelines, Cloud Architecture, Architecture, SDKs, RESTful Services, Mobile App Design, Chrome Extension Development, Software Architecture, Web Services, Google Pay, Worldpay, ISO 8583, HTTP, HTTPS, Chase Paymentech, Fintech Development, Serverless, Payment APIs, Leadership, CTI, Mobile App, Telephony, SIP, Regular Expressions, Service Design, Oracle Development, Unix Shell Scripting, E-commerce Development, Machine Learning, API Integration, Serializer/Deserializer (SerDes), Excel Development, Excel, Office 365
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring