Email: djlewis@acm.org
Phone: (949) 366-0665
Web: http://www.glaivestone.com
I am an experienced software designer who can bridge the gap between product concept and delivery. My goal is to create useful software by using my technical skills and my proven ability to work in and lead software development teams that deliver working products and solutions.
Expert in developing software system architecture, infrastructure mechanisms, components, and frameworks. Extensive experience in object-oriented software systems, GUI development, and software product delivery. Proven ability to lead software development teams and deliver products. Experienced in broad range of software development activities: design, development, requirements analysis, technology assessment, technical and user documentation, project management.
Product development experience includes Java server and middleware components plus developer tools to provide XML access to enterprise applications; web applications using open standards and platforms; Java bean component assembly mechanisms; COM binding mechanism and infrastructure for Smalltalk systems; developer tools and class libraries for Java and Smalltalk; WYSIWYG document editor with multilingual text capabilities..
Platform and language experience includes Java, Smalltalk, Python, C, C++, Pascal/Mesa, Algol, FORTRAN, JOVIAL, assembly language, Windows (3.1 and later), OS/2, Unix/Linux, Xerox Pilot/ViewPoint, DEC VMS, Burroughs MCP, Univac EXEC-8, CDC SCOPE and TSS, Honeywell GCOS, IBM VM/CMS, SQL DBMS (MySQL, Access, Quattro, RTI Ingres) , HTML, CSS, Javascript, XML, XML Schema, WSDL, SOAP, XSLT, XSL-FO, Zope and CMF.
BS, Computer Science – University of Michigan
MS, Computer Science – UCLA
Independent Software Professional (2001-Present)
Developed general-purpose Java framework libraries and utilities. Delivered scoring software used for regional and national championship masters events to the US Ski Association. Responsible for national championship event scoring and web site support for regional and national ski racing organizations. Created JavaBeans component assembly connection mechanisms for business activity monitoring system. Developed Java Swing application with XML/XSLT/XSL-FO capabilities to enable web publishing and PDF report generation. Developing web application and tools for organizational process support activities using open-source Python/Zope/CMF platform.
Architect and Development Manager – Seagull Software Systems (1999-2001)
Responsible for development tools for creating XML interface to access legacy IBM applications through a Java application server. Provided technical leadership within the development team and implemented key portions of the software. Took initiative to create framework and common infrastructure mechanisms for both developer tools and runtime server. Defined XML specifications for function definition schemas and runtime messaging. Responsible for tracking evolving Web standards (XML Schema, SOAP, WSDL, UDDI) and planning product interoperability as industry standards stabilized.
Provided leadership within development team for technical issues and to maintain focus during period of management turnover. Worked with teams in other countries to coordinate development and mentor less experienced developers. Twice awarded President’s Award for outstanding contributions to company success.
Software Engineer, Architect, Project Manager – Digitalk, Parcplace-Digitalk, Objectshare (1990-99)
Design and development of object-oriented class libraries, frameworks, persistence mechanisms, and development tools for Smalltalk and Java. Co-designer and key developer of visual programming tool for GUI layout and graphical component assembly programming. Redesigned Smalltalk event system enabling loosely-coupled system architectures. Took initiative to develop tools and process to automate product build process. Provided design guidance for addition of database support mechanisms and multinational capabilities. Architect and project leader responsible for providing COM and ActiveX support in Windows products. Developed configuration management and version control facilities for Java IDE development tools.
Project management and technical leadership responsibilities for several major product deliveries. Responsibilities included requirements definition, software design and development, and development team project management. Made significant contributions to product documentation. Managed multi-site project coordination. Gave technical product presentations at user group conferences. Involved in hiring and training of technical staff.
Software Engineer and Team Leader – Xerox, Office Systems Group (1984-1990)
Design and development of WYSIWYG compound document editor features (business graphics, indexing, spell checking, footnotes). Project leader responsible for addition of bi-directional text editing capabilities. Took responsibility for maintaining critical object-oriented multiple-inheritance mechanism. Technical lead for editor port from proprietary platform to Sun SPARC. Led technology assessment team exploring options for product evolution.
Technical team lead and project manager responsible for 3-6 person feature development projects. Involved in hiring and training of new staff. Received several employee recognition awards.
Software Engineer – TRW (1976-83)
Developed software configuration management and integration tools, test data analysis utilities, distributed system control and IPC software. Database analysis and design, commercial DBMS analysis. Research exploring relational data model extensions for a mobile GUI workstation prototype.
Member of proposal team for major contract bid. Presented customer briefings on analysis studies. Technical lead and project management responsibilities (staffing, planning, scheduling) for small development teams. Obtained MS degree while carrying significant proposal responsibilities.
Research Assistant – University of Michigan (1974-76)
Developed language translators for database structure description and translation specification languages.
ACM
IEEE Computer Society
ICCA (Independent Computer Consultants Association)
Regularly read professional and trade journals.
Read professional and technical books to learn new ideas and technologies.
Attend professional conferences (JavaOne, Microsoft PDC, OOPSLA, ICSE, Open Source Conference)
Program chair for 2003 COSST (Coast Open Source Software Technology) symposium, organized by Orange County Chapter of IEEE Computer Society.