James C. Hu
jxh@yahoo.com
http://www.ungerhu.com/jxh/

Objective

Pursue research interests in the development of high performance distributed systems.

Technical Skills

Distributed and System Software Architecture, Object-Oriented Design, C and C++ Programming, Multi-threaded Programming, UNIX and POSIX Programming, Network Programming with Sockets, Formal Specification, Formal Verification, System Administration, BSD Kernel, Technical Writing

Experience

Brocade, July 2002 - Present
Staff Software Engineer

July 2002 - May 2003
Member of Core Services Team. Team technical lead for the V-Switch product. Area technical lead for the high port count switch product. Team technical lead for the scalability effort.

Collaborated in the design of a scalable zone database merge protocol. Implemented a stream based IPC API to reduce latency of first byte of output.

June 2003 - Present
Member of Fabric Infrastructure Team. Co-lead of the Management Server daemon. Designed an asynchronous state machine for the management server and implemented a prototype. Implemented build infrastructure to facilitate the bring-up of the software system on new hardware platforms.

Participated in the development of the FICON feature of the switch software. Owner of the logical path database implementation and link control functionality. Assumed ownership of other SB3 functionality when the original implementor was reallocated to a different project. Designed a fairness algorithm for concurrent handling of multiple channel devices.

Cacheflow, December 2000 - July 2002
Principal Engineer

February 2002 - July 2002
Contributor to HTTP Application Group. Responsible for specification, design, and implementation of SOCKSv4/4a/5 proxy server. Applied object-oriented multi-threaded design. Implementation in C++. Target platform is a proprietary embedded OS (CacheOS).

October 2001 - February 2002
Responsible for research, analysis, design, and implementation of software prototypes. Provided engineering support to various projects.

December 2000 - October 2001
Team and technical lead for Web Protocols and Application Services group with 5 members. Architect for UNIX kernel HTTP proxy cache and user space plugin framework. Designed and implemented state machine framework. Applied object-oriented design patterns. Implementation in C. Partitioned work and assigned projects to team members, and helped track their progress. Wrote detailed functional specifications and design documents. Established software development process. Enforced process through code review. Tracked defects.

Entera, August 1998 - December 2000
Principal Engineer

April 2000 - December 2000
Project lead for the Advanced Agent Framework project. Architected, designed, and implemented a new multi-threaded software framework to solve specific performance problems in the existing HTTP proxy cache implementation. Guided team of 3 members toward a new HTTP proxy cache implemtation. Prototype showed a 15% performance improvement while using only 5 threads. The existing implementation required hundreds of threads.

August 1998 - December 2000
Team leader for the HTTP proxy agent. Maintained a multi-threaded HTTP proxy cache application on Solaris 2.7. Implemented critical features escalated from customer support, including support for range requests and SSL tunnels. Provided assistance in the use of C++, ACE and design patterns. Involved in hiring process.

Washington University in Saint Louis, MO
Distributed Object Computing Laboratory
Research Assistant, 1996-1998
MDA Fellow, 1997-1998
Doctoral Candidate,
   Dr. Douglas C. Schmidt, Advisor,
   1997-1998
Doctoral Student,
   Dr. Douglas C. Schmidt, Advisor,
   1996-1997

The research focused on studying optimization strategies for high performance Web servers over high speed networks. Demonstrated that optimal performance can be achieved by developing Web servers that can adapt their concurrency strategies, I/O, caching, and protocol handling to changing conditions.

Washington University in Saint Louis, MO
Computer Visualization Laboratory
System Administrator, 1994-1996
Research Assistant, 1993-1996
Doctoral Student,
   Dr. Catalin Roman, Advisor,
   1993-1996
Siemens Fellow, 1995-1996

Research activities focused on developing a methodology that allows the construction of large distributed systems by a discipline of composing together reliable components following a set of simple rules. The work is directed toward systems whose control and communication structure is isomorphic with its physical organization. It is conjectured that such systems provide intuitive boundaries along which decomposition can be applied to create subsystems, and that these subsystems can later be reconnected in a compositional fashion to create arbitrary instances of the application.


Education

Doctoral Candidate in Computer Science, 1995-1998 (ABD)
Washington University in Saint Louis, MO
M.S. in Computer Science, May 1995,
Washington University in Saint Louis, MO
B.S. in Mathematics and Computer Science, May 1992
Kansas State University, Manhattan, KS

Research Interests

Object-Oriented Design, Client-Server Performance Optimizations, Dynamic Software Adaptation, Static Software Adaptation, High Performance Web Systems, Adaptation in Web System Design, Design Patterns, Reusable Software Components, Formal Design Methods, Compositional Correctness

Selected Publications

Developing Flexible and High-performance Web Servers with Frameworks and Patterns, with Douglas C. Schmidt, in ACM Computing Surveys, Vol. 32, Issue 1es, Mohamed E. Fayad ed., March 2000.

JAWS: A Framework for High-performance Web Servers, with Douglas C. Schmidt, in Domain-Specific Application Frameworks: Frameworks Experience by Industry, Mohamed E. Fayad ed., John Wiley & Sons, 1999.

Techniques for Developing and Measuring High-Performance Web Servers over ATM Networks, with Sumedh Mungee and Douglas C. Schmidt, in Proceedings of the IEEE INFOCOM '98, April 1998.

Measuring the Impact of Event Dispatching and Concurrency Models on Web Server Performance over High-speed Networks, with Irfan Pyarali and Douglas C. Schmidt, in Proceedings of the IEEE GLOBECOM '97, November 1997.


References

Available upon request.