David A. Lee

727 Poplar Lane
Jasper, IN 47546
Office: 812-482-5224
email: dlee@calldei.com

SUMMARY

Expertise in but not limited to:

WORK EXPERIENCE:

Jan 2012 - June 2017- MarkLogic Corp.

Lead engineer

Core Database team implementing new and improving current features in the MarkLogic Server, an enterprise grade NoSQL Database and Application server.

Past projects include rewritng the internationalization of date/time functions, design and implementation of the Cloud Computing "Managed Cluseter" support features which enable automated creation, scaling, and management of MarkLogic clusters (100 node+) in AWS. Json/XML transformation libraries. Declarative HTTP rewriter in C++ to augment the existing XQuery rewriter. Native bindings from XQuery and C++ to Java, in part by using java reflection to pre generate C++ template code for more type safe and efficient JNI calls. Performance analyis, optimzaitions and debugging on a highly distributed multi threaded, multi host, geographically dispersed system. Global collection and routing of semi-realtime Telemetry data from all database cluster installations to provide preemptive assistance for Customer Support operations using AWS 'Serverless' technology architected to scale to arbitrarily large data ingest rates from anonymous users.

The majority of work is in very optimized C++ running in mission critical installions. Additional work involves a variety of language and technologies including XQuery, XSTL, Java, JavaScript, Python, Shell, JSON, XML, REST, HTTP, Standards base and in house secururity and authentication components. Deployments and integration to a wide variety of platforms incluidng Solaris, Linux, Windows OSs and physical environments including traditional IT departments, VMWare, AWS and other virtualized containers, Node.js, Browser runtime envirments (both native JavaScript and compiled JS).

July 2003 - Dec 2011 - Epocrates corporation

Senior Principal Software Engineer

Server side programming (Java, EJB, JSP, Tomcat, Apache Struts, XML ) for the client's palm and www based products for physicians including architecture and interface design, data synchronization, Java Bean interfaces and development.

Handheld programming on Palm/OS and Pocket PC Devices.  Helped Implement a common source code library for UI on Palm and PPC devices (C++).  Ported multiple Palm applications to PPC.

Mobile programming on the iPhone iOS for the iPhone, iPod Touch and iPad. Use of Objective C, C++ and JavaScript Native control programming, new code (Objective/C, C++,JavaScript) and porting of existing platform independent code (C++).

Clinical data transformations from internal and third party data sources into data suitable for handheld devices, including XLST, XQuery, XPath. Principle responsible for managing key data repositories including disease reference databases, symptom cross references, mobile clinical resource content, clinical lab test results and interpretation data.

Development of a consolidated "Clinical Browser" based on MarkLogic for integrating various public and private clinical information sources into a single homogeneous content set. Including entire corpus of MeSH, SPL (HL7), NDF-RT, NDC, UNII , SNOMED , ICD9 , CPT as well as internal clinical data sets. Hosted on Amazon EC2 cloud computing. Includes tools for clinical inference analysis (multi drug and allergic reactions), custom production Clinical Package Inserts in Text, HTML, and PDF from HL7 SPL Documents.

XML Evangelist responsible for integrating XML technologies into the core infrastructure of Epocrates enterprise tools and applications, specializing in targeting XML for clinical content and mobile devices. Design and implementation of a "Common Object Model" for representing and processing clinical content from heterogeneous data sources to a common XML vocabulary through to mobile device specific formats for realtime deployment.

Performance analysis, monitoring and optimization of distributed systems serving web and mobile devices.

Mar 1993 - Dec 2011 DEI Services Inc, Jasper IN. Formerly DAL Enterprises Inc.

President Consulting, Contracting and Development

Major Projects

Implemented a handheld security application for EID Passport Inc. (www.eidpassport.com) which runs on a Symbol Pocket PC. Implemented 100% of the handheld software which integrates to a security server via WiFi, scans badge barcodes, verifies fingerprints, and provides guards identification information as well as security alerts.

August 2002 - present - Nexstra, Inc.  

CTO - 2008-present
Vice President of Engineering - 2002-2008

Responsible for the architecture, design and development of the complete eCommerce system, both User Interface, and server side components.  Includes full integration with Verisign payment processing, Federal Express online ship manager, catalog , print messaging systems and accounting systems.

Designed and implemented the "Campaign Server" which performs complex customized campaigns in email and print media.
(J2EE, Java, Tomcat, CodeCharge, JSP , XML, XQuery, XSLT, FOP, C++, Mysql).

Integration with a variety of partner web services including Netsuite, FedEx, Verisign, Paypal, Oracle, and proprietary customer services.

Design and development of a distributed CD/DVD and Print (paper) production system with synchronization and archival of content across geographic regions, deploying to multiple fulfillment vendors in different regions. Integrated with Nexstra eCommerce system for license based on demand ordering and fulfillment of digital media to physical production and shipments.

Aug 2001 - June 2002 - WebGain corporation, Consultant.

Enhancements to the Visual Cafe and Structure Builder products (C++,Java)
Enhancements to internal bug management product (JSP, Java, BEA App Server). 

1999 - 2002  - Epiphany, Inc. (acquired  RightPoint Corp), Consultant

Performance analysis, enterprise software enhancement, debugging.  Various duties to maintain and enhance enterprise software in the Epiphany product line.
SMP Performance enhancements on NT, Win2K, Solaris and HPUX.
Optimizations to surpass the 2Gigabyte VM barrier on NT/Win2K.
SMTP and POP email protocols included secure authentication (CRAM-MD5, NTLM etc).
Optimizing extremely heavy usage of COM components on NT/Win2K.

Internationalization enhancements to core C++ library.

Implemented SOAP 1.0 (XML) interface to existing product.

Nov 1997 - 1999 RightPoint Corp., (formerly, DataMind Corp.) San Mateo, CA. Consultant

Object Oriented Design and Implementation.   Created an OS-portable object library to support basic types including Strings, Sockets, Threading, Files, Lists, Containers, Iterators,  Registry access.  Designed and implemented many mission critical components of RightPoint's core real-time multithreaded distributed campaign transaction server.  Performance analysis and enhancements on multiprocessor systems (NT and Unix SMP systems) (C++).

Implemented multithreaded performance analysis tools including portable real-time performance counters and tracing tools (C++).

Designed and implemented custom HTTP 1.1 interface to existing product (C++).

Integrated RSA libraries to provide SSL and HTTPS protocols (C).

 Sep 1995 - 1999  Centura Software Corp., (formerly Gupta, Corp.) Redwood Shores, CA. Consultant.

OLE 4GL internals.  Responsible for designing and implementing many OLE/COM features in Centura's 4GL (Centura Team Developer). Multi-threaded Apartments and synchronization, COM Type Library traversal and 4GL code generation of COM Classes, Interfaces and basic OLE Automation types.  Interfaces with multiple target languages.

Large scale software porting Responsible for porting of a large portion of 2M LOC of C and C++ from MS/Win32 to Solaris. Involved in User Interface, Shared Memory, IPC, Dynamic Loading, Database and 4GL internals.

Performance Enhancement/Optimization Responsible for performance enhancement of Win32/NT Application development environment.

XML interfaces for 4GL. Implemented a DOM and XPath based interface in C to expose XML as a native type to the CTD 4GL.

Jan. 1994 - Sep 1995 Premenos, Corp. Concord, CA. Consultant.

User Interface Development EDI, ND Open Interface, MS Windows, X11, Motif. MS/VC++

Responsibilities: GUI Requirements analysis and functional spec. development. Development of complete prototype application for requirements and marketing verification. Design and development of a common GUI library. Consultation for product design. Development of 3 components of application from prototype to complete implementation. (Layout, Mapping, and Tailoring). Project was front end for EDI translation and mapping product. Design and implementation of user interface for a secure internet mail application.

May 1993 - Jan. 1994 IBM, Mountain View CA, Consultant.

Performance Consultant and Contract Programmer AIX, Device Drivers, C, C++, Multimedia

Responsibilities: Performance analysis enhancement of multimedia device drivers. AIX kernel modifications and performance enhancements, token ring device driver. Stress testing and problem determination of large multiprocessor multimedia system in C++ and C. Achieved performance goals of 40 multimedia (digital video and audio) on one RS6000. Debugging and resolution of 'impossible' problems in large real-time C++ project (including kernel extensions and device drivers).

December 1992 to May 1993 IBM UK Hursley , England, Consultant.

Contract Programmer AIX, Device Drivers, C, Telephony.

Responsibilities: System and device driver programming and consultant. Responsible for transfer of product specific knowledge to new organization. Technical consultant for marketing and support staff. Device driver enhancements for voice recognition. Architecture and development of Signaling Library interface product with various telephony switching systems including ISDN, SS7, SMSI. GUI developed for analyzing digital switching protocols.

January 1991 to December 1992 IBM Santa Clara CA, Consultant.

Contract Programmer: UNIX, AIX Device Drivers. Performance Enhancement, C , X Windows, Motif.

Responsibilities: Systems programmer for a large IBM telephony project. Architectural design and system programming of many components working with a large team of IBM programmers.

Projects include: Design and implemented components of AIX device driver. Design and implemented application language compiler, debugger, and user interface for 3270 host connectivity software. Expand user interface designed for single user use to multi user use incorporating application and database locks, national-language support and password control. User interface constructed using X Windows, Motif, X Intrinsics, Xlib. Performance analysis and enhancement of large multiprocessor (120 live digital telephone channels on one RS6000).

1987 to December 1990 D.P. Technology Corp. Camarillo CA.

Research and Development: C , UNIX, X windows, XLib, MOTIF

Responsibilities: Design, implement and support UNIX software for manufacturing industry. Includes integration of hardware and software systems for controlling manufacturing equipment and managing engineering documents.

Projects include: Developing and writing X Windows tool kit library including push buttons, menus, dialog boxes, scroll bars, Text editor, file manager, data communications program (DNC), graphics previewer, font editor, program manager, form editor, help program. Manufacturing document management system, XWindows form based database including implementing a fully featured 4GL language compiler and environment. ANSI standard CAD dimensioning package. Translators for all standard CAD file formats. Many utility and UNIX system administration programs.

Total Software Written: 200,000 lines of debugged C source in 3 years.

1986- 1987 Mark V Business systems. Encino CA

Software Engineer: C, Prolog, ADA MS/DOS, MS/Windows, XENIX

Projects include: Debugging and extending Software Diagram Editor. Yacc/Lex program to parse ADA source code and produce structure diagrams. Multiport serial device driver for UNIX. Line printer spooler.

1983, 1984 summer, 1985 to 1986 California Institute of Technology. Pasadena CA

System Manager., contract programmer Computing Department: C. FORTRAN,UNIX, VAX/VMS, AOS/VS, INGRES.

Responsibilities: Management of campus mainframes. Systems include VAX/VMS, AOS/VS, DG-UX and XENIX. System programming. Hardware and software installation and maintenance

Projects include: Porting of UNIX utilities to AOS/VS: awk , uucp commands, cpio, cb, news, mail. Ethernet device driver for AOS/VS and XENIX. Campus wide calendar of events database and documentation database.

Porting IBM/360 accounting, cash register transaction, and inventory programs from IBM/360 to VAX/VMS for Caltech bookstore.

COMPUTER LANGUAGES:

PROJECTS AND PUBLICATIONS

Independant Projects

Publications
See http://www.calldei.com/publications.htm for details

OPERATING SYSTEMS AND FRAMEWORKS:

UNIX: AT&T, AIX, Sun, IBM, Hewlett Packard, Microsoft, Interactive Systems, SCO, Linux

Microsoft OS's: Microsoft, IBM, MS/Windows

VM and Container Technology

Build and System Automation Tools

AOS/VS: Data General

VAX/VMS: Digital Equipment Corp.

Mobile OS's : Windows Mobile (Pocket PC), Palm/OS , iPhone (Mac/OS)

Database and Application Servers

HARDWARE:

Mainframes:

Mini, Workstations:

Microprocessor systems:

Mobile Devices

Experience with Digital Telephony Equipment, PBX switches and test hardware.

EDUCATION:

California Institute of Technology:

1981 to 1985. Major Engineering and Applied Science

Computer Science:

Mathematics:

Engineering and Science:

HOBBIES: