Experience
2017 — Now
2017 — Now
San Francisco Bay Area
2001 — 2017
Alameda - California
As technical director I was responsible for the direction and vision of the Perforce Server including its C/C++ API, command line client and various replication technologies. I managed a team of 10+ engineers, mostly all senior and actively contribute as an individual to the server code base.
Designed and developed major enhancements to the Perforce Server:
Added many performance optimizations that improved concurrency by factors of 10X for large scale access of Perforce (10000+ users). Including early lock-release, journal log buffering, batch updates, high-level consistency for lockless reading of btree.
Lobbied company to add native replication to the product, building on top of this architecture provided early design for federated support that now allows for horizontal scalability through workspace servers.
Rewrite of Diffmerge (3-way merge algorithm).
Implemented server support for renaming files 'p4 move', this feature allows for continuous refactoring during development. (highest ranked improvement request at the time).
Implemented server support for shelving work in progress 'p4 shelve', this feature enables developers to code review, task switch and collaborate more effectively during development.
1996 — 2001
Oakland - California
Cloudscape:
Cloudscape enterprise replication group (5 months)
Joined a group working on database replication, specifically to enable Mobile (cloudscape) clients to synchronize data to an Informix Foundation database.
• completed work on datatype conversions, allowing for bidirectional transfer/synchronization.
• developed code to detect schema evolution and trap related errors.
Informix:
Developer/architect of 'webdriver' for the Informix Web Datablade Product.
Webdriver is the glue that connects the Illustra/Informix database to the internet via the various flavors of HTTPD processes,
Initially responsible for maintaining the early version (1.0) Illustra webdriver product, improved performance by adding a daemon process to eliminate DBMS startup overhead.
Designed and developed the next generation of webdriver specifically for Informix. Created an abstraction layer of generic features: database connection pooling, large-object/application page caching and session management that allowed the HTTPD APIs cgi, nsapi, isapi apache to share 90% of code in their implementations.
Debugged and consulted on performance issues of many customers and internal applications (Informix media360) that used the web datablade as their web platform.