Scroll To View More
Tao Zhang, Software Developer in Houston, TX, United States
Tao Zhang

Software Developer in Houston, TX, United States

Member since February 24, 2015
Tao is a software engineer who has been working in a large-scale (14+ million line of code) real-time acquisition software project for more than 11 years, mainly on the back end. He is especially good at C++/C#, Python programming, performance optimization, TDD, and debugging.
Tao is now available for hire

Portfolio

Experience

  • C++, 16 years
  • .NET, 10 years
  • WinDbg, 10 years
  • C#, 8 years
  • Test-driven Development (TDD), 8 years
  • ASP.NET, 4 years
  • Visual Studio 2013, 3 years
  • Windows PowerShell, 3 years
Houston, TX, United States

Availability

Part-time

Preferred Environment

C#, C++, ASP.NET, Python

The most amazing...

...CI system I've created for a large-scale project helped hundreds of developers to save time in building, testing, and deploying software.

Employment

  • Senior Software Engineer

    2019 - PRESENT
    P97
    • Developed a .NET and C# back end.
    • Designed a web API and implemented business logic.
    • Communicated with payment hosts such as Google Pay, Apple Pay, Samsung Pay, World Pay, etc.
    • Implemented a payment processor based on ISO8583.
    • Developed using SQL Server DB, Azure Cosmos DB, Redis Cache, and different data structures as data storage strategy.
    Technologies: ASP.NET, C#, Azure Cosmos DB, Service Bus. VS2017
  • 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: VBA, Excel, CorelDRAW API
  • Senior Software Engineer

    2007 - 2019
    Schlumberger
    • Improved the performance of a large-scale software system and fought with some difficult defects and bugs in the software.
    • Set up the CI system to improve development efficiency for a large population of the community.
    • Reviewed code and designs.
    • Mentored junior developers and other newcomers.
    • Made the final decision or helped the manager to make the final decision about any technical changes or choices.
    Technologies: VS2015, C#, C++, TDD, Python. COM
  • 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: Java, C++, Solaris
  • Senior Software Developer

    2001 - 2004
    HInnovation
    • Designed MySQL database tables and developed stored procedures.
    • Developed ASP web pages and coded in JavaScript.
    • Developed COM objects.
    • Created IP phone functionality based on TCP/IP.
    • Created a C++ program based on different medical image formats such as CT and MRI.
    Technologies: ASP.NET, JavaScript, C++, IIS

Experience

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

    The current project I am working on. It has a total of 4 million lines of code (C#/C++). It took 8-10 hours to build and generate the installation kit. With the old baseline build, it could only generate one build and one kit per day. After we set up the continuous integration system, the average build time is about an hour and installation kit generation takes about 1-1.5 hours. We also introduce 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.

  • Performance and Stability Enhancement (Development)

    I enhanced the performance and stability for a large-scale project which runs as a Windows desktop application. We used a different approach to do that:
    1. Resolve all the level 6 warnings reported by Visual Studio (Microsoft c++ compiler).
    2. Introduced a static code analysis tool to help us find some potential defects such as memory leaks, memory corruption, and null reference checking.
    3. Used some utilities to find runtime memory issues and bottlenecks.
    4. Collected dump files when runtime exceptions happened, and then used WinDbg to do analysis to find the bugs.

  • TDD Applied to C++ (Development)

    Used GTest/Gmock provided by Google to test our legacy C++ class.

  • TDD Applying to C# (Development)

    Used MOQ to help us test our legacy C# code. But before that, we did many refactorings to make the C# code testable.

Skills

  • Languages

    C#, C++, XML, SQL, Python, JavaScript, Java
  • Tools

    WinDbg, Visual Studio 2013, TFS, Eclipse IDE, Mercurial, Rational Rose, GitLab
  • Paradigms

    Test-driven Development (TDD), Design Patterns, Agile
  • Other

    Debugging, COM, Software Development, Unix Shell Scripting, IIS, Web Services, Windows Presentation Foundation (WPF)
  • Frameworks

    .NET, ASP.NET, Windows PowerShell
  • Platforms

    Oracle, Windows, Linux, Azure
  • Storage

    SQL Server 2012, Azure Cosmos DB

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
I really like this profile
Share it with others