Curriculum Vitae
August 1997-Present: Independant Software Consultant
In late 1997, I struck out completely on my own and have designed,implemented and deployed a large number
of projects for a wide variety of clients.
-
Developed the core technology for a start-up in Internet advertising inventory management. Developed the base architecture, the core mathematics, and the bulk of the core code from the original patent document.
-
Architected, designed and headed the implementation of a new web-based CTI (Computer Telephony Integration) system for a large call-center. The server side is a stand-alone Java application running as a Windows Service. The server uses the Genesys CTI API to proxy call information. The client side consists of a Java applet and a Javascript/HTML presentation layer. The client also uses the Java Native Interface in an MFC/Telephony API (TAPI) DLL to communicate with the Lucent/Avaya Callmaster telephone set. This technology is in use on approximately two thousand agent desktops.
-
Architected, designed and headed a three man team to develop a Web-based home automation system. Developed a standalone proxy server to handle communications with an Home Automation Incorporated controller. Developed several Servlets and Java Server Pages to handle requests.
-
Developed a Linux daemon to run TCP/IP speed tests for a WISP. Developed several Perl robots to monitor network health and status. Also developed some management tools (JSP/Servlet) for selfsame WISP.
-
Architected, designed and headed the development of a new factory automation system for a start-up company. This system has a distributable real-time event/data delivery capability, with an internal data/event driven expression language, and allows dynamic addition of new functionality to the running system. Designed from the ground up to run 7x24 at high data volumes, this system is currently deployed in several locations. The system is 100% pure Java and runs on both Windows and Linux platforms against SQL-Server and Oracle. It utilizes several technologies including RMI, Servlets, JSPs, JDBC, SOAP/xml, .NET and many others. It uses small embedded Windows (CE .NET) boxes at the factory machines to collect data and forward it to the server application using SOAP. The server (service or damon) receives data from the devices on the floor, performs various calculations (configurable via the expression language) on the data and forwards it to various monitoring and reporting systems in real time.
-
Architected, designed and developed an all-new embedded controller for a laser cutting/engraving machine. The system was modeled in Rational Rose/UML and implemented in C++ utilizing the Wind River Tornado RTOS. The system features a hard, real-time PID servo loop, full graphical user interface, embedded Web server, handling for several TCP/IP-based application protocols, embedded trajectory generation for high order curves, and many other industry firsts.
-
Headed a project team that developed a Java-based, distributable claims processing system. Did the bulk of the architecture and design work and guided the development of the system. The system featured a rules engine, run-time pluggable components and other advanced architectural ideas. The system was completely round-tripped through Rational Rose/UML, with all final code generation being done through the tool.
-
Taught Object Oriented Analysis and Design, Object Oriented Design Patterns and various Java/C++ topics privately and through the University of Colorado Continuing Education Department.
August 1994-August 1997: Vice President and Software Consultant, The Stoker Group Inc.
Co-founded the Stoker Group Inc, a group of software consultants with a team/project orientation. Successfully negotiated the founding team's exit from employment at SCC. Did sales work including presentations and their preparation, negotiations and closings for about half ($1.8M total) of The Stoker Group's business. Worked with legal counsel to create the company's legal framework. Managed the bulk of the projects signed. Helped develop procedures for the safeguarding of the proprietary information of competing Stoker Group customers. Examples of client work:
-
Did project management, database design and development for a new health care system which provides counseling to call-in clients.
-
Developed a technology and protocol-neutral communications class library in MFC/C++. Did all object decomposition and implementation. Developed a Windows communications server/router for use in the customer's Computer Aided Dispatch System.
-
Developed a Windows printer driver capable of mixed raster and vector output for a laser cutting and engraving system. Wrote some uniqe algorithms for polygon reassembly, color transformations and image scaling. Also developed a proprietary 3D rendering algorithm for emmulation of mechanical cutting/engraving tools on the laser. This algorithm set a new benchmark in the rubber stamp production industry, outperforming competitor's by a two-to-one margin.
-
Did data and process modeling work and database design for a marketing system which included a large client contact database, an accounting system and remote communications capabilities.
May 1993-August 1994: Director/Development Manager, SCC Inc.
-
Lead the development of a new Fire Records Management system, a large client server RDBMS system using a database engine neutral architecture. The system was developed with ACCESS, Visual Basic and Powerbuilder as the client tools and Erwin/ERX as the database modeling tool. The system contained multimedia capabilities for the storage of fire investigation photos and sound recordings on-line. Did much of the requirements analysis and data modeling. Developed advanced security mechanisms including a trapdoor algorithm for password encription and a Feistel network-based data encryption algorithm more secure than DES for the storage of sensitive data.
May 1991-May 1993: Senior Engineer, SCC Inc.
-
Designed and implemented two major products that are part of SCC's flagship, computer-aided dispatch product. The first was a tactical information monitor built for Windows. Performed the analysis, object decompositions and product development. The product included a multi-protocol communications component, a tactical display configuration component, and a tactical information enunciator used to voice announce various significant events.
-
The second was a set of interfaces to offload information from the CAD system in real time to various analysis and reporting tools. This product utilized Windows DDE to report to various Windows applications in real time and ODBC for database storage.
January 1990-February 1991: Project Leader, Biosym Technology
-
Assisted in the development of an algorithm for doing simulated annealing on Nuclear Magnetic Resonance data to determine molecular conformance. Made improvements to some of the molecular visualization algorithms. Did user interface work for the molecular modeling system. Supervised maintenance coordination and bug fixing.
July 1990-January 1991: Consulting Senior Engineer ORACLE Corp.
-
Performed requirements analysis and specifications development for Oracle Document as a contract developer. Developed prototypes for the project.
April 1988-June 1990: Technical Lead and Project Manager, Auto-trol Technology
-
Completed requirement analysis, architecture design and implementation planning of Auto-trol's object oriented CAD applications development system. The system was written in C++, with a proprietary object oriented database, PHIGS compliant display list, a Smalltalk-like application development language, and user interface development tools utilizing the X11 /Motif window system. Detailed design duties included a database physical layer, a class registry and language interpreter, a Hypertext based help system, and text modeler.
May 1986-April 1988: Advisory Engineer, Auto-trol Technology
-
Technical lead for the G3 CAD system. Mentored several college recruits in their design, implementation and debugging work.
-
Responsible for several major revisions and additions to the system. Developed closed/canonical form algorithms for a geometry intersection subsystem. For performance optimization, developed a polynomial zero finder using various techniques from Cardan's rules to the Jenkins Traub method. Designed a matrix manipulation library for polynomial coefficients used in a closed form cubic spline intersector.
-
Also wrote a polygonal tessellation routine.
-
Developed a new, optimized geometric selection subsystem using closed form distance to point algorithms.
-
Added several new database primitives to the G3 database including conic arcs, cubic splines and extrusions requiring modifications to the database, viewing system and the selection system. Designed, implemented and maintained G3 IGES pre and post processors.
-
Participated in the NIST/ANSI IGES/PDES standards committee as Auto-trol's representative.
January 1984-May 1986: Senior Engineer, Auto-trol Acquisitions Inc.
-
Ported the Tricad CAD/CAE system, G3, from VAX/VMS to APPOLO/DOMAIN environment. Participated in a major redesign of Tricad's proprietary database, the re-coding of the G3 run time library. Established the development environment on the APOLLO system.
-
Participated in the development of shading and hidden line removal software.
May 1982-January 1984: Systems Programmer, Tricad Inc.
-
Worked on the design and development of the Tricad intelligent workstation. Wrote a device driver for an ethernet controller. Designed and wrote a virtual terminal device driver for VAX/VMS. Developed a VT100 terminal emulator. Debugged protoype IBM workstation hardware. Wrote an IEEE 488 driver for the IBM workstation.
-
Solely responsible for the design and development of the background plotting system for G3. Implemented a job scheduler with several tools for job control. Designed and implemented software for taking geometry from the database to device-independent plot format, then to different plotter-specific formats; also developed software for simultaneous rasterization and plotter output.
April 1980-May 1982: Systems Programmer, Calma
-
Assisted in the development of a production language compiler (CCL), including an expression parser. Ported the compiler and runtime environment to the VAX platform.Developed various graphics routines including polygonal fracturing, some early rasterization algorithms and others.
Other
-
Member, ACM
-
Featured Speaker ACM OOPSLA on Java language topics; Front Range Unix Users Group (FRUUG) on Java Database Connectivity; Technology in Medicine Conference on Applications of Technology in Medical Outcome Determination; APCO, Association of Public Safety Communications Officers on the Applications of Windowing Technologies in Public Safety; DB Expo on Java/Database interfacing.
-
Author of numerous articles in various development and systems journals
-
Functional in Spanish
-
Extra Class Amateur Radio License Holder