Welcome to Zhijiang TAO's homepage!

Current

I am just an ordinary programmer with more than 5 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
  • Lots of monitor system only offer display and alert function, few of them support monitor information retrive API, which is very important in feedback-robust system. Some service can take quick measures accordingly when accident happends, if it can get information quickly.

    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, and can not fulfill all situations (though it was also developed by myself before). Suffering from pains I get the idea of desired requirements which I think should be implimented, so this is the result I come out.

    I have not finished detect and alarm module, so it can not be called monitor currently. But you can use it as a light-weight information collection and storage tools. Example, it can be use to record and evalution your service call time information.

  • tzhttpd: high-performance and easy-to-use HTTP service framework.
  • The project was developed for the purpose of simulators firstly to satisfy test requirements. It was developed based on boost.asio, which means high-concurrency with high-performance. It supports HTTP 1.0/1.1 GET/POST handler regex routing, and some what can be configured dynamicly without restart system. It is tiny, simple but I think is very useful, it can be easily integrated into your project. It can be used in many situations such as: HTTP application gateway, HTTP protocal adapter, web manage interface, etc.

    Later on, I also add VHost, Cache Control features, and can be built to a simple webserver. This site you are visiting, and my blog are hosted by this library.

  • 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.

    Education

  • 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.

    粤ICP备17002382号粤ICP备17002382号