Critical Path Software, Portland, OR, 2007 - present- Consulting Senior Engineer
Currently working on iPhone application for eBay. Previous work included web-hosted clipart libraries and flex and flash Rich Internet Applications and video streaming. Also worked on blog printing service for popular blog software using Java-based server-side components to render html blogs to PDF.
Thetus Corporation, Portland, OR, 2003 - 2006- Consulting Senior Engineer
Ground-up design and implementation work on server infrastructure for Thetus, which provides collection and classification software for non-text data, allowing distributed collaboration and searching. My work focused on an architecture for a dynamic, plug-in task framework to allow users to extend the classification system to fit their data domain.
Netforest, Salem, OR, 2003 - Consulting Engineer
Helped build the web site for the Oregon Cultural Trust to allow donations over the web using a third-party credit card validation system.
currenex.com, Menlo Park, CA, 2001 - 2002 - Consulting Engineer
Design and implementation work on a distributed, highly-interactive foreign currency trading application accessible over the web. Application involved time-critical response requirements and fault-tolerant transaction semantics. Technologies used included EJB, RMI, raw sockets, Oracle database, and BEA Weblogic server.
WebGain, Portland, OR, 2001 - Consulting Engineer
Created a tutorial to help users learn to use WebGain Application Composer, a unique tool for creating applications from java components.The tutorial included using EJB components to build a medium-sized web application that modeled a mutual fund web site.
Product planning and system design for driveway.com's business-to-business offerings. Product was implemented as a set of java servlets and JSP pages communicating with underlying Oracle database servers. Business-to-business communication was implemented with XML messaging over HTTP.
Design and implementation of Fare Specials Manager, an application that allows employees inside American Airlines to manipulate and modify complex database relations that define airline pricing rules.
Design and implementation of application programs using Intel's Common Data Security Architecture (CDSA). The projects included an electronic checkbook demonstrating digital signatures on checks, a certificate manager for creation of X.509 certificates and certificate revocation lists, and software to utilize PKCS-11 smart cards for cryptographic services.
Design and implementation work on Intelliflight, an in-flight information system for corporate aircraft, including GPS-driven moving maps and MPEG movie playback.
Design and implementation work on adaptation of existing UNIX-based content indexing tools to Windows 3.1 and Windows NT. Final products included both stand-alone applications and CGI/World Wide Web compatible modules.
Design and implementation work on Windows 3.1 version of CAChes computer aided chemistry applications. Key member of overall design team. Specific duties included design of data server library to facilitate shared access to chemical data among several concurrent applications. Much of the work involved adapting existing Macintosh and UNIX code to the Windows operating environment and MFC class library.
Designed and implemented various parts of a network-based client-server application suite for performing computationally intensive tasks on distributed processors, including Macintosh-hosted Motorola 88000 coprocessor cards and IBM RS-6000 workstations. System relied extensively on Apple Events and low-level network transport protocols for interprocess communication.
Wrote an Ethernet diagnostic program for customer validation of E-Machines Macintosh ColorLink Ethernet board.
Developed a C++ application framework for Macintosh programming. The software is sold as a companion product to The Elements of C++ Macintosh Programming.
Wrote low-level system utilities to implement clipboard and sound services for QIX, a UNIX- like operating system for parallel-processing computers.
Provided design consultation and programming services for a group working on a computer- aided chemistry product for the Macintosh. Work included 3D color graphics firmware for Macintosh II and application software written in C++.
Designed and implemented Nubus configuration firmware for Macintosh II video products, including monochrome, gray scale, and color display controllers. Work also included diagnostic and evaluation software.
Developed the MacApp Browser, a Smalltalk-like browsing tool for object-oriented programming on the Macintosh, now marketed by the MacApp Developers Association.
Wrote technical documentation for SOAP, the Simple Object Access Protocol, an HTTP/XML-based method for remote procedure calls over the internet. SOAP defines an XML encoding format for requests and responses between clients and servers. SOAP acts as the glue between heterogeneous distributed software components. In SOAP, clients and servers send these requests and responses back and forth using the HTTP transport mechanism.
Wrote technical documentation for Windows NT. Specific topics included interprocess communication mechanisms and virtual device drivers.
Wrote technical documentation for MFC version 1.0, an object-oriented class library for C++ programming in DOS and Windows. Wrote a tutorial, cookbook, and sample programs.
Wrote technical documentation for parallel programming and PostScript graphics programming for Cogent's parallel workstations. Work included the creation of sample parallel programs in C++.
Wrote technical documentation for OS/2 Presentation Manager. Developed documentation and sample programs for software developers writing applications for OS/2.
Wrote technical documentation of iRMX 386; a real-time, multiprocessor operating system based on the 80386 CPU. Duties included planning, research, writing, creating sample programs, illustrations, and layout.
Teacher for classes in java servlets, JSP, EJB, and Web Services. The classes last one week and include direct instruction and extensive lab experience. Classes are targeted at professional software engineers looking to gain competance in object-oriented programming.