| 2/1999 - present | Senior Staff Engineer, Sun Microsystems, Santa Clara, California |
| Engineering lead for Java web services interoperability with Microsoft Windows Communication Foundation. |
| Previously: |
| Responsible for CORBA (JavaIDL and RMI-IIOP) parts of Java Standard Edition and Java Enterprise Edition (application server). |
| Application server work includes: clustering, load-balancing and failover. |
| CORBA work includes specification, design, implementation, documentation and maintenance in all CORBA areas (e.g., POA, GIOP/IIOP, language mappings, etc). |
| Designed the PEPT 2.0 implementation architecture for JAX-WS (i.e., JAX-RPC 2.0) |
| Sun representative for OMG specifications and technical meetings. |
| Detail: |
| 11/2005 - present | (Sun) |
| Java Web Services Interoperability with Microsoft Windows Communication Foundation. |
| Leading a global team of engineers working closely with Microsoft engineers to implement WS-* specifications (e.g., WS-AtomicTransactions) enabling enterprise interoperability. |
| 1/2005 - 10/2005 | (Sun) |
| Sun Java System Application Server Enterprise Edition High Availability. |
| Shipped CORBA (and HA features) in Sun Java Application Server 8.2 Enterprise Edition. |
| Designed RMI-IIOP dynamic load-balancing and failover system used in Java Application Server 9.0/EE, and leading implementation team. |
| 11/2001 - 12/2004 | (Sun) |
| PEPT Remoting Systems Architecture. |
| Shipped CORBA in Sun Java Application Server 8.1 Enterprise Edition. |
| Shipped CORBA in Sun Java Application Server 8.0 Platform Edition. |
| Shipped CORBA in Java Standard Edition 5 |
| Shipped CORBA in J2EE 1.4 Reference Implementation. |
| Shipped CORBA in Java Standard Edition 1.4 |
| Designed RMI-IIOP static load-balancing and failover system used in Java Application Server 8.1/EE, and lead implementation team. |
| Created and patented PEPT 1.0: an adaptable remoting systems architecture. |
| Rewrote Sun's ORB to use PEPT 1.0 architecture. |
| Created and patented PEPT 2.0. |
| Used PEPT 2.0 as the implementation architecture JAX-WS (i.e., JAX-RPC 2.0.) |
| Used PEPT architecture to build clients and servers which use both IIOP and SOAP transparently to the programming model. |
| Designed RMI-IIOP static load-balancing and failover system used in Java Application Server 7.1/EE. |
| Lead communications team comprised of JAX-RPC, CORBA, JMS, JAXM and Connectors. |
| Sun representative on OMG Java-to-IDL Revision Task Force. |
| Participated in Sun's Engineering Mentoring Pilot Program with mentor David Ungar. |
| Participated in Sun's Mentoring Program as mentor to Darryl Mocek. |
| Took course "Effective Presentations". |
| Took course "The 7 Habits of Highly Effective People". |
| Took course "Time Management and Personal Leadership". |
| 4/2000 - 10/2001 | (Sun) |
| Lead ORB Interceptor Architect and Implementor. |
| Shipped CORBA in J2EE 1.2 and 1.3. Reference Implementation. |
| Shipped CORBA in iPlanet Application Server. |
| Chairperson of OMG Portable Interceptor (PI) Finalization and Revision Task Forces. Wrote OMG Portable Interceptor specifications: ptc/2001-10-25, ptc/2001-03-04, ptc/2000-08-06, and reports: ptc/2001-10-24, ptc/2000-08-05. |
| Lead and scheduled a team of 3 implementing the OMG PI specification. |
| Member of Sun team which wrote the OMG Object Reference Template (ORT) specification ptc/01-08-31 and gave OMG presentation orbos/2000-06-21 which led to the ORT RFP orbos/00-09-30. |
| Designed and implemented proprietary ORB connection interceptors used by J2EE and iPlanet. |
| Took course "Solaris System and Network Administration". |
| 2/1999 - 3/2000 | (Sun) |
| Interceptors and GIOP 1.4 |
| Shipped CORBA in J2SE 1.3 |
| Sun's representative to OMG Portable Interceptor RFP orbos/98-07-10, which lead to adopted specification ptc/2000-04-05 (which included close collaboration with the CSIv2 Security and the Transaction specifications). |
| Sun representative on OMG Messaging Revision Force, Interoperable Naming Service and Interop Task Forces. |
| Designed implementation architecture for OMG GIOP 1.4 (formal/99-10-11), notably: fragmentation. |
| Designed and implemented proprietary IOR and Request/Reply interceptors for use by J2EE Reference Implementation. |
| 3/1998 - 2/1999 | Chief Architect, LISP Technology, Autodesk, San Rafael, California |
| Shipped Visual LISP in AutoCAD 2000 |
| Shipped Visual LISP 1.0 plug-in product for AutoCAD R14 on Windows 95/98/NT. Voted a top CAD product of 1998 by Cadence magazine. |
| Replaced AutoLISP command-line interpreter with VM/compiler/IDE-based Visual LISP. (LISP is the main customization language used by AutoCAD's 2 million users.) |
| Designed API for Visual LISP 1.0 |
| Led a team of engineers in Moscow and California. |
| 12/1994 - 2/1998 | Staff Engineer, Software, SunSoft (Sun Microsystems), Mountain View, California |
| Detail: |
| 9/1997-2/1998 | (Sun) |
| CORBA Sustaining Engineer |
| Defined architecture to transition NEO(C++)/Joe(Java) CORBA users to Visigenic Visibroker (C++) and JavaIDL ORBs. |
| Worked with Visigenic (Inprise/Borland) on phased, prioritized delivery of transition architecture. |
| Worked with chief architects at British Telecom, Siemens Nixdorf, and the Royal Danish Navy implementing specific transitions. |
| SunSoft representative at OMG technical meetings. |
| 5/1997-8/1997 | (Sun) |
| Portable Object Adapter Project Lead |
| Responsible for SunSoft's implementation of OMG's Portable Object Adapter (POA) on the Joe (Java) ORB. |
| 6/1996-4/1997 | (Sun) |
| Object Development Framework (ODF) Project Lead |
| (ODF is the programming API on top of Sun's C++ CORBA ORB.) |
| Member of SunSoft team which developed the OMG Portable Object Adapter specification: orbos/97-04-14. |
| Responsible for ODF portion of NEO 2.0 FCS and Joe 3.0 Beta. |
| Chief architect/implementor of ODF implementation which includes the following features: server-side ORB APIs; extensions to OMG naming service; automatic factory creation and registration; server lifecycle; server agent for remote administration; automatic tracing, logging, locking, delegation; third-party persistence integration. |
| Took course: "Advanced Java Networking, RMI and Joe". |
| 12/1994 - 5/1996 | (Sun) |
| Member of the ODF team. |
| Shipped NEO 1.0 (SunSoft C++ CORBA product). |
| On team responsible for ODF portion of NEO 1.0. |
| Responsible for implementing and maintaining server-side APIs for the NEO product (SunSoft's OMG CORBA ORB). |
| Performance testing of SunSoft's implementation of OMG Naming, Events, Property and Relationship Services. |
| Designed and implemented selective locking, selective delegation, wait for commit (of transparent persistence). |
| Developed and documented examples of usage of NEO's advanced features: locking, delegation, object lifecycle, subobjects (i.e., flyweights), user-defined persistence, tracing and logging, refdata. |
| Maintained and extended ODF compiler. |
| Creation and codemerge of automatically generated server code. |
| Source code gatekeeper |
| Took course: "SunOS Internals for Employees". |
| 12/1983 - 1/1994 | Senior Systems Programmer, Center for Software Science, Department of Computer Science, University of Utah, SLC, UT |
| Designed and implemented a distributed version of C++ for network workstations and the Mayfly Parallel Processing System. |
| Visualization of distributed systems, specifically, Distributed C++, Concurrent Utah Scheme, and Mach Shared Objects. |
| Lisp (Scheme) language design and compilation for the Mayfly Distributed Parallel Processing System (joint research with Hewlett-Packard Research Laboratories, Palo Alto, California), and for the FAIM-1 Symbolic Multiprocessing System (joint research with Schlumberger Research Laboratories, Palo Alto, California). |
| Closure analysis and representation. |
| Development, maintaining, and porting of Utah Common Lisp and Utah Scheme (compiler, interpreter, debuggers). |
| Implemented ``modularization'' of Utah Lisp to a minimal system LISP base on top of which we built Utah Scheme, Utah Common Lisp Subset and Utah Common Lisp |
| Developed a retargetable, highly optimizing Lisp compiler based on an architectural description of the target machine. |
| Retargeted the Portable Standard Lisp (PSL) compiler to produce C code, then using that compiler to compile the PSL runtime system. The resulting C files are ported to new Unix/C machines within one week. |
| Development, maintaining, and porting of PSL and Portable Common Lisp Subset (PCLS) (compiler, interpreter, debuggers) on various machines. |
| Increased PSL portability by implementing a portable linker to support export programs (delivery vehicles) and bootstrapping Lisp systems. |
| 1/1981 - 12/1983 | VLSI-CAD Systems Programmer, Patil Systems, Inc., SLC, UT |
| Designed, implemented, documented and maintained an asynchronous, event driven, gate and functional level logic simulator. Prototype in Lisp. Production version in C/Unix. Wrote Lisp interpreter in C to provide a fully programmable user interface to the simulator. |
| 3/1980 - 1/1981 | Research Assistant, VLSI Research Group, Department of Computer Science, University of Utah, SLC, UT |
| Various projects using Pascal/Dec10/Tops20. |
| 1/1977 - 3/1980 | Computer Typesetting Systems Programmer, Carr Printing Company, Bountiful, Utah. |
| Designed and built a system of programs and the interface hardware for a complete typesetting system composed of four microcomputers, five typesetters, paper tape readers, etc., all interfaced to the company's accounting minicomputer. The system was written in 8080 assembly language under CP/M. |