The Story

Software is a great part of my life. Inspired by my father when I was about 10 years-old on an Apple II. Wrote my first TSR application using C at 16 and started hacking in C++ at 19.

In the years of my software engineering career, I got more and more proficient at utilizing my technical skills in different domains. Motivated by personal interests and professional demands, I became an expert in areas including C/C++, concurrency (multi-threading), I/O multiplexing and system programming. I am a heavy user of C++ Standard Library and the Boost C++ Library. Possibly one of the best C++ programmers available in Taiwan. Most of my code is in highly portable C++. [1]

Networking and communication is another segment of my interests, knowledge covering from layer 3 and up - IP, transport protocols (i.e. TCP, UDP and etc) and some application layer protocols. Very familiar with NAT traversal and some areas of SIP/SIMPLE. Implemented significant portions of an open source SIP stack which features session level management. Helped reviewed a couple of SIP related IETF drafts.

At my current employment, my team and I are heavily involved in delivery of my employer’s Cloud Computing strategy.

I believe in Internet, information technology and the benefits they brought this world, and I am convinced that there is yet much more to be explored and applied. I am supportive to the Free and Open Source Software ideal, as well as an active contributor. Following is a list of projects that I’ve and/or still contribute to (with commit privilege, excluding projects those I’ve contributed patch(es) only):

  • Open Native Template Library (NTL), C++ in the Windows kernel
  • reSIProcate, a C++ SIP stack implemented (the project is very well and alive, but due to personal reasons, I am not involved actively anymore)
  • libk2, C++ library featuring building blocks for application layer protocols, middle-boxes and general system programming (inactive project)

Also a few more personal (one-manned) projects:

When in leading rules, in addition to carrying out mandated tasks, I do my best to smooth out miscellaneous issues causing troubles within the team and among teams, I also try to find and emphasize on common interests of all parties, hence improve the process and increase productivity. Frankly, I wouldn’t be your best candidate for a heavy management position, but rather suitable for senior engineering or leading positions, those require hands-on hard core technical skills [2] and good people interaction at the same time.

Goals I strive for:

  • Simplicity and scalability in architecture,
  • Rationale, usability and reusability in design,
  • Robustness, portability and efficiency in implementation,
  • Most importantly – always, have a lot of fun while you hack :-)

To sum up, what I am:

  • A C++ master,
  • Resourceful in system and networking design/programming,
  • Knowledgeable in TCP/IP, some signalling protocols,
  • Familiar with NAT behavior, A.K.A. the P2P guy,
  • A self-motivated friendly peer.

What I am NOT:

  • Not a Linux kernel hacker,
  • Not a development process engineer, though I am for development processes those “work” for a particular organization,
  • Not a proficient GUI programmer,
  • Not a system/network/db administrator.

Click here for my email.

Professional Experience

A world class information security software company, Taipei site, May 2008 to date

  • Architect, Cloud Computing Software Infrastructure, Core Tech (since June 2011)
    • Techology roadmap
    • Backend distributed system architecture
    • Technical guidance for backend teams (~50 members)
  • Sr. Manager, Cloud Computing Software Infrastructure, Core Tech (since Oct 2009)
    • Led dev team with 15 members
    • Double-sized the team
    • Batch and realtime data processing workflow management
    • Scrum pilot
    • CI adoption: Jenkins
  • Project Lead, Cloud Computing Software Infrastructure, Core Tech (since Feb 2009)
    • New team in Core Tech group
    • Led feature team with 5 members
    • Event-driven message bus
    • Big data analytics: Hadoop
    • Codereview practice adoption: Review Board
  • Project Lead, Host-based Intrusion Prevention System (since Sep 2008)
    • Core-module/product integration window
    • Performance tuning
    • Efficient and correct STL usage, and secure programming
    • Leader of cross-team taskforce
  • Staff Engineer, Host-based Intrusion Prevention System (since May 2008)
    • Core-module/product integration window
    • Performance tuning
    • Efficient and correct STL usage, and secure programming
    • Leader of cross-team taskforce

    In addition to my primary responsibility in the company, I also serve as tech lead of a cross module task force for cloud computing on endpoints, from Aug 2008 to mid 2009.

A large (400+ staffs) online game maker in Shanghai, Aug 2007 to Feb 2008

  • Senior Technical Manager, leader of server/networking group, reports to R&D director
    • Post in Shanghai
    • Recruiting and team building
    • Large scale gaming network planing/design
    • Game server architecture
    • Design and lead implementation of online game networking library based on Boost.Asio.

A managed peer-to-peer network service provider, Sep 2004 to July 2007

  • Special Assistant of Greater China President. (since July 2006)
    • Concept prototyping.
    • New product system architecture.
  • Lead Engineer in Edge Service team, reports to CTO (since Oct 2005)
    • Peer-to-peer communications through NATs, e.g. STUN, TURN, ICE and etc.
    • SIP Edge Proxy
    • Located in Beijing most of the time
  • Senior Engineer, reports to CTO (since Sep, 2004)
    • SIP protocol stack implementation
    • SIP User Agent
    • SIP Proxy

A layer 7 network device and solution provider, Jan 2004 to June 2004

  • R&D Manager, leader of network management application team, reports to CEO
    • Multi-location management, 5 members in Taipei and 3 members in China
    • Cross platform development, servers run on Linux and Window
    • Ajax front-end, PHP core with C/C++ acceleration
    • Resigned because a senior family member required my full time attention due to bad health condition

A networked digital surveillance device provider, Aug 2002 to Dec 2003

  • Project Manager, leader of a team with 4 members, reports to senior R&D manager
    • Digital Video Surveillance
    • MPEG4 streaming/broadcasting
    • Resigned because company was in very bad shape, company went out of business about 2 months after my resignation

    A mobile data network equipment provider, Feb 2000 to Jul 2002

    • Member of Technical Staffs
      • Lead engineer in a team with 4 members, report to R&D director
      • GPRS/3G core network
      • SGSN/GGSN
      • GPRS Tunneling Protocol (GTP) implementation
      • Mobile network common software components design/implementation
      • Advanced C++ training to peers

    A monitor manufacturing automation equipment provider, Jul 1998 to Nov 1999

    • Software Engineer
      • Machine vision
      • C++ GUI framework
      • Hand­held CRT inspection device

    Misc

    I would like to stay in Asia, Taiwan in particular. However, career opportunities elsewhere those are so interesting that I couldn’t resist would be considered, but I am reluctant to work in the United States. (short term biz trip is okay, though)

    Lastly, in addition to Taiwanese (R.O.C.) citizenship, I am also a Canadian citizen, if that means anything.

    PS. reference available upon request.

    1. From one Unix variant to another and/or to Windows. []
    2. Learn more about the geeky me here. []