2/2010 - present | Consulting Member of Technical Staff, Oracle, Redwood Shores, CA |
| Architect of SOAP-based Web Service Technology. |
| Shipped SOAP stack in WebLogic Server 12c, 11gR1; GlassFish V3.1.2.2, V3.1.2, V3.1.1, V3.1; JavaSE 7 (updates 1-9), JavaSE 6 (updates 19-37). |
| Oracle's SOAP stack is the wiring in Oracle Fusion Middleware (FM) and Oracle Fusion Applications. |
| Designed, submitted and patented "DISI: Dynamic Invocation and Service Interface". |
| Did majority of DISI implementation, test and documentation. |
| DISI enables layered softwared (e.g., FM) to take control of the input/output of the SOAP stack. In particular, pluggable transports and asynchronous, streaming I/O. |
| DISI was designed in response to requirements from Oracle's security, fusion, cloud service and Axia teams. Also used by our team to integrate WS-SOAP-JMS. |
| Consolidated Oracle's three SOAP stacks to use Sun's SOAP stack as the core. |
| Designed "configuration architecture" to enable SOAP stack to be dynamically configured by Oracle Web Services Manager and Oracle Enterprise Manager. |
| Designed "Life-Cycle Notification API" for client proxies and service endpoints lifetimes and various points in the request/response life-cycle. |
| Helped design a "Session API" to decouple WS-ReliableMessaging from WS-Security/SecureConversation implementations (since security is owned by another team in Oracle. |
| Helped design a "Persistence API" with pluggable providers (e.g., Coherence, JDBC, file). |
| Worked with customers (e.g., Verizon, AT-T, Siemens, Capital One, Harris, Mitre, ...) on their SOAP requirements and issues. |
| Worked with new Oracle acquisitions to transition them from external SOAP stacks (e.g., CXF) to Oracle's SOAP stack. |
| Lead distributed team: Beijing, India, Europe, East/West U.S.A. |
| Took course on Oracle Coherence In-Memory Data Grid. |
| Attended O-Reilly Strata (Santa Clara, CA 2011, 2012), O-Reilly Open Source Convention (Portland, Oregon 2011, 2012). |
2/1999 - 2/2010 | Senior Staff Engineer, Sun Microsystems, Santa Clara, California |
| Overview: |
| Engineering lead for Java SOAP web services interoperability with Microsoft .NET Windows Communication Foundation |
| Responsible for CORBA (JavaIDL and RMI-IIOP) parts of JavaSE and JavaEE. |
| 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. |
| Sun representative for OMG specifications and technical meetings. |
| Detail: |
11/2005 - 2/2010 | (Sun) |
| Java Web Services Interoperability with Microsoft Windows Communication Foundation. |
| Architect of SOAP-based Web Service Technology. |
| SOAP stack project known as "Tango" and "WSIT" and "Metro". Funded by Sun CTO. Quarterly in-person reports to Sun CTO, Greg Papadopoulos, on Project Tango status. |
| Shipped SOAP stack (JAX-WS, Metro) in OpenSSO 8.0; OpenESB; GlassFish V2, V2.1; JavaSE 6 (updates 1-18). |
| Lead a global team of engineers working closely with Microsoft engineers (including numerous onsites in Redmond over a several year period, weekly concalls, daily email) to implement WS-* specifications (i.e., WS-Trust, WS-Security, WS-SecureConversation, WS-AtomicTransactions, WS-Coordination, WS-ReliableMessaging, WS-MakeConnection, WS-Policy, WS-BP, WS-BSP, WS-RSP, WS-Addressing, WS-Metadata-Exchange...) enabling enterprise SOAP interoperability. |
| Non-interop specifications implemented in product: WS-SOAP/TCP, FastInfoset. |
| Worked with NetBeans team to ensure IDE support for the SOAP stack in all areas (e.g., Trust, Security, AtomicTransactions, ...). Note: Microsoft engineers told us that our IDE support was much better than theirs, especially in the security/trust area. |
| Worked with customers and partners (e.g., American Express, Boeing, U.S. Navy, Motorola, Credit Suisse, Canadian Health Infoway/HIAL, NHIN, Erickson, Siemens, Vodafone, Telefonica, MedPlus, BEA, JBOSS/Redhat, Oracle, Layer 7, Forrester, Noemax) on SOAP issues and requirements. |
| Guided ThoughtWorks engineers (paid for by Microsoft) in implementing Apache Stonehenge to demonstrate SOAP interoperability in a realistic application. |
| Guided ThoughtWorks engineers (paid for by Microsoft) in testing WS-RSP interoperability with Microsoft and IBM. |
| Participated in Sun's Mentoring Program as mentor to Alexei Mokeev (Russia), Nicholas Solter (Colorado), Alfredo Kojima (Argentina), 3 interns in India. |
| Attended Microsoft Professional Developers Conference in 2006; Semantic Technology Conference in 2008 and 2009. |
1/2005 - 10/2005 | (Sun) |
| Sun Java System Application Server Enterprise Edition High Availability (HA). |
| Shipped CORBA (with 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 lead 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 for JAX-WS. |
| Used PEPT architecture to build clients and servers which use both IIOP and SOAP transparently to the programming model. |
| Designed and implemented RMI-IIOP static load-balancing and failover system used in Java Application Server 7.1/EE. |
| Designed and implemented a high-level, scalable framework on top of Java NIO. This became Project Grizzly. |
| Lead communications team comprised of JAX-RPC, CORBA, JMS, JAXM and Connectors. |
| Sun representative on OMG Java-to-IDL Revision Task Force. |
| Worked with customers (e.g., NTT) on their CORBA/RMI-IIOP requirements and issues. |
| 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 including a signal algebra. Prototype in Lisp. Production version in C/Unix. Wrote Lisp interpreter in C to provide a fully programmable user interface to the simulator. |
| Designed and implemented a high-level Hardware Description Language (before VHDL and Verilog) to drive and check simulation results. |
| Note: Patel Systems became Cirrus Logic. |
October 2012 | Remoting Retrospective: DCE, DCOM, CORBA, RMI/JINI, RMI-IIOP, SOAP, REST, WebSockets, JavaOne, San Francisco |
October 2012 | SOAP and/or REST and/or WebSockets, JavaOne, San Francisco |
April 2012 | "When To Use SOAP and when REST", Independent Oracle Users Group, Las Vegas |
October 2011 | Enterprise SOAP - Advanced off-the-wire Features, JavaOne, San Francisco |
June 2011 | When To Use SOAP and when REST, Jazoon, Zurich, Switzerland (with Marek Potociar). |
September 2010 | SOAP and REST Web Service Use Cases, Interoperability and Programming Models, JavaOne, San Francisco (with Jakub Podlesak). |
September 2009 | "Metro Update", Utah Java User Group, Salt Lake City. |
June 2009 | "Metro Web Services Security Usage Scenarios", Jazoon, Zurich, Switzerland (with Jiandong Guo). |
June 2009 | Microsoft General Session, JavaOne (keynote), San Francisco (with Dan'l Lewin, Steven Martin, Greg Leake - all Microsoft). |
June 2009 | "Using Java Technology in the Windows Azure Cloud via the Metro Web Services Stack", JavaOne, San Francisco (with Clemens Vasters, Microsoft). |
June 2009 | Metro Web Services Security Usage Scenarios, JavaOne, San Francisco (with Jiandong Guo). |
June 2009 | Metro Web Services, NetBeans, GlassFish and OpenSSO in Action with Amazon WS, Azure, and Office, Community One (JavaOne), San Francisco. |
April 2009 | "The PEPT Journey: A Story of Technology, Politics and Process", Industry forum speaker, University of Utah. |
March 2009 | Metro, Jersey, GlassFish, OpenESB, OpenSSO, Utah Java User Group, Salt Lake City. |
May 2008 | Interoperable Business Web Services Using Project Metro and .NET 3.5, JavaOne, San Francisco (with Kevin Wittkopf, Microsoft). |
February 2008 | "Java/.NET 3.x Web Service Interoperability with Project Metro", Utah Java User Group, Salt Lake City. |
December 2007 | "The Metro Web Services Stack (Project Tango in GlassFish)", JavaPolis, Antwerp, Belgium. |
December 2007 | Metro and REST: Everyday Web Services, Sun Tech Days, Frankfurt, Germany (with Carol McDonald). |
October 2007 | "The Metro SOAP Stack", Sun MidWest Java Days, Indianapolis, Indiana. |
October 2007 | "The Metro SOAP Stack", Sun MidWest Java Days, Columbus, Ohio. |
June 2007 | "Project Tango Features", Jazoon, Zurich. |
May 2007 | Takes 2 to Tango: Java Web Services and .NET Interoperability, JavaOne, San Francisco (with Arun Gupta). |
January 2007 | "Java EE 5 and GlassFish: A Plunge into The Aquarium", Utah Java User Group, Salt Lake City. |
November 2006 | JAX-WS and WSIT - Tangoing with .NET, Sun Tech Days, Prague. |
November 2006 | Java EE 5 and GlassFish: A Plunge into The Aquarium, Sun Tech Days, Prague. |
May 2006 | Composable Web Services Using Interoperable Technologies from Sun-s Project Tango, JavaOne, San Francisco (with Nick Kassem). |
April 2005 | "The PEPT Service-Oriented Architecture", Colloquium speaker, Brigham Young University. |
February 2005 | "Is Worse Worse or Better?", Industry forum speaker, University of Utah. |
February 2005 | The PEPT Service-Oriented Architecture, Colloquium speaker, University of Utah. |
June 2001 | "OMG Portable Interceptors", JavaOne, San Francisco. |
June 2001 | "New CORBA Features in J2SE 1.4", JavaOne, San Francisco. |
November 1998 | "The Future of Lisp", Panel Member, Lisp in the Mainstream Conference. |
1993 | "Compiling Distributed C++", Colloquium speaker, University of Texas at Austin |
1987 | "Forth Engines", Panel Member, Rochester Forth Conference. |
1986 | "Working group on AI", Chairman, Rochester Forth Conference. |