Welcome to Zhijiang TAO's homepage!


I am just an ordinary programmer with more than 4 years' software development experience, and I've always been fascinated by C/C++ program language, especially under Linux environment for large-scale backend service.

I am now working as a Senior Backend Developer primaryly using C++ and Boost for about 2 years. The majority business of the company I am working at now is 3rd-party payment service, and I am responsible for the Cash-out System of Settlement Department Team. During my worktime, I did the service refactoring task, and transformed the legacy monster to a new high-perf, more-reliable and maintainable system.

Skills & Interest

  • Mainly focusing on C++ and Boost, hating and despising legacy C++98, and embracing modern C++. In addition to the language rules and characteristics, I am also interested in Patterns and Idioms.
  • Working on Backend development all the time recent years, proficient in high-perf async and event-driven model. Experienced in MQ, RPC, Cache, etc.
  • Debug and optimize skills are very important after function development task, but make full use of it is really challenging.
  • Distributed System is so amazing, voting in quantum is fair and democratic, right? I've read many Distributed System related algorithm and implementation articles and papers, hope can be made the best of in the future.
  • Project

  • tzmonitor: a retrievable service monitor system
  • There are lots of monitor system already, they only offer display and alert function, few of them support monitor information retrive API, which is very important in feedback-reliable system. Our RouteService in Payment system highly dependent on these statistics and information, and takes quick measures to adjust route rules accordingly when accident happends.

    Previously these functions were implimented by meanings of 3th-party shared storage such as Redis, but I think it is really so ugly, inefficient and not elegent (though it was also developed by myself). Suffering from the pains I get the idea of desired requirements should be implimented, so this is the result I come out.

  • tibank: general http server frame work
  • The project was developed for the purpose of settlement channel simulators firstly, used to satisfy the Cash-out System test requirements. As an independent and logic-complete system, it was developed based on boost.asio high-perf framework, contains good HTTP 1.0/1.1 GET/POST route, parse and handle function, along with lots of backend service developing component such connection pool, timer service, task queue, and etc.

    It can be modified to fulfil your own test requirements and purpose, also can be treated as a good study material for backend service development newcomer.

  • rabbitmq_cpp_wrapper: easy-to-use rabbitmq cpp client wrapper
  • RabbitMQ in C/C++ is not a easy job for lacking of official client library, and thanks for alanxz's rabbitmq-c. But it still too low-level and over-detail-exposed, another work SimpleAmqpClient depends on boost-1.47.0 preventing deployed in production environment.

    I add a high-level C++ wrapper for librabbitmq, make it easy to use espicially for newer. It has been tested and deployed in our product environment for a period, and can be considered stable enough.

  • libto: another coroutine library base on boost.context
  • Coroutine has been more and more popular these years, I consulted many coroutine implements and work out this library. It is of stackful type, and using boost.context for underlaying resource switching and management.

    Has not been strictly tested, use at your own risk.

  • readmeinfo: rss fetcher with news recommend agent based on python
  • Once upon a time I was interested in Recommend System and Machine Learning, so I created this tool. It was built by python with simple tornado web interface, fetching supplied rss feeds, and recommend through SVD、MaxEnt methods. This project was discontinued, and won't update any more!

    And acctualy, I am not very good at mathematics, so I will not focus on ML or something related, please do not contact me about these any more.


  • Sep, 2010 - Jul, 2013 Sichuan University, M.Eng.
  • Focus on the research of Image and Signal Process(Paper1, Paper2, Paper3). In addition to these academic points,I also studied backend service and large project development related fields, and had internships in Shanghai Bell and Redhat.

  • Sep, 2006 - Jul, 2010 Sichuan University, B.Eng.
  • I undergraduate life, my interest mainly in hardware and embedded system design and implement. At a time, almost all the spare time was put on the Atmel ARM9 chip-level design and manufacture, including Linux porting and apps development. My graduate thesis was an implemention of a health monitor system based on that ARM board I've made before.

    Another thing need to mention was I first heard of Linux in sophomore, and this wonderful thing always with me till now, and will in future. Thanks Linus, I really love it!

     You may also enjoy my other sub-websites list below:
    Tech Blog { Overseas Mirror1, Mirror2 } | Photo Gallery | Reading List

    Copyright © 2015-2018. All Rights Reserved.