Tao Zhang, Software Development Developer in Houston, TX, United States
Tao Zhang

Software Development Developer in Houston, TX, United States

Member since February 24, 2015
Tao is a senior full-stack developer/architect who has been working in a large-scale (14M+ line of code) real-time acquisition software projects for more than 11 years, primarily on the back end. His expertise is mainly at C++/C#, Java, Python web development, performance optimization, and troubleshooting in Azure and AWS.
Tao is now available for hire

Portfolio

Experience

Location

Houston, TX, United States

Availability

Part-time

Preferred Environment

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

The most amazing...

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

Employment

  • Senior Software Engineer

    2019 - PRESENT
    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 make sure zero downtime during deployment of app service, web jobs, azure function, etc.
    • Created web jobs in Azure to communicate with different payment hosts by different payment type, such as Google Pay, Apple Pay, Samsung Pay, or Chasepay.
    • 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#. It is a LRU cache that 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 together to finish payment workflow. Each web job will act as consumer and/or 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: Visual Studio, Oracle Service Bus, Service, Azure Cosmos DB, C#, ASP.NET
  • Developer

    2019 - 2019
    Palmetto Wood Shop, LLC (via Toptal)
    • Integrated CorelDRAW and ShipStation.
    • Extracted Excel data and processed it using VBA.
    • Utilized CorelDRAW API to automate interaction with CorelDRAW UI.
    • Used hashmaps, collections and arrays, etc. data structures to process and convert data from ShipStation to CorelDRAW.
    Technologies: Microsoft Excel, CorelDRAW, Visual Basic for Applications (VBA)
  • Senior Software Engineer

    2007 - 2019
    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.
    Technologies: JSON, Windows Presentation Foundation (WPF), ASP.NET, Moq, Docker, Microsoft SQL Server, COM, Python, Node.js, Java, C++, C#, Visual Studio
  • 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 commands and bash shell.
    • 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: Solaris, C++, Java
  • 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 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.
    Technologies: IIS, C++, JavaScript, ASP.NET

Experience

  • CI System for a Large-scale Project (Development)

    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 (Development)

    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 (Development)

    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 toolstring combination; performance data analysis to find out potential performance bottleneck; 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 NonSQL 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 (Development)

    Designed and implemented the REST APIs/endpoints for a payment workflow serving as an e-payment web service or serving for a mobile app. The web service is running in Azure and communicates with different payment service providers to finish payments. It is built on top of C#/ASP.NET/.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 built different web pages with Node.js and Angular. Those web pages can serve for 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 (Development)

    I developed a web service to provide different format files (such as DLis, or PDF) as the client requires as deliveries of a large real-time acquisition system. I used Java as a back-end coding language to support a web service running in AWS as well as Cassandra as DB and AWS S3 as data storage, Node.js for the front end to set up a simple UI and do API testing, and TDD applied through the whole lifecycle of the project.

  • Telecommunication Device Management System (Development)

    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 special protocol.

    Java code builds whole systems based on MVC include UI, business logic, and data model. I used JNI to connect Java MVC parts with C++ components so that we can get and set configuration of 3G devices from the UI all the way down to hardware.

Skills

  • Languages

    C#, C++, Java, XML, SQL, Python, Visual Basic for Applications (VBA), JavaScript
  • Tools

    WinDbg, Visual Studio, TFS, Git, Postman, Apache JMeter, Microsoft Excel, CorelDRAW, Oracle Service Bus, Eclipse IDE, Mercurial, Rational Rose, GitLab, cURL Command Line Tool
  • Paradigms

    Test-driven Development (TDD), Socket Programming, Design Patterns, Agile
  • Platforms

    Windows, AWS Lambda, Amazon Web Services (AWS), Oracle, Linux, Azure, Solaris, Docker, Google Cloud Platform (GCP), AWS Cloud Computing Services
  • Other

    Back-end, Debugging, COM, Software Development, Memory Leaks, C++ Memory Model, Mobile Payments, AWS, Chrome Extensions, IIS, Web Services, Google Pay, Worldpay, ISO 8583, HTTP REST, HTTP, HTTPS, Chase Paymentech, Service, Unix Shell Scripting, FirstData, Machine Learning
  • Frameworks

    .NET Core, .NET, ASP.NET, Windows Presentation Foundation (WPF), Windows PowerShell, ASP.NET Core 2, ASP.NET MVC, Google Test (GTest), Spring, Spring 5
  • Libraries/APIs

    Node.js, REST API, Standard Template Library (STL), Moq, Web API, Google APIs
  • Storage

    SQL Server 2012, Azure Cosmos DB, JSON, Redis Cache, Microsoft SQL Server, Oracle DBMS, AWS S3

Education

  • Bachelor's degree in Mathematics and Application Software
    1992 - 1996
    Jilin University - Changchun, Jilin, China

Certifications

  • Google Cloud Platform Fundamentals: Core Infrastructure
    APRIL 2018 - PRESENT
    Google Cloud
  • Machine Learning
    OCTOBER 2017 - PRESENT
    Stanford University
  • Java Certified Programmer
    MAY 2004 - MAY 2014
    Sun

To view more profiles

Join Toptal
Share it with others