727 Poplar Lane
Jasper, IN 47546
Expertise in but not limited to:
Jan 2012 - June 2017- MarkLogic Corp.
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.
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.
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
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.
PROJECTS AND 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
- 30+ years' experience with UNIX systems programming and applications development including AIX, HP-UX, SUN/OS/ 4.2 BSD, XENIX, Linux.
- Understanding of UNIX networking systems including TCP/IP, OSI, NFS as well as various RPC protocols and concepts.
- Extensive understanding of UNIX OS, application interfaces, and standard libraries. Including device drivers, kernel extensions (AIX), networking protocols and libraries, development tools Yacc, Lex, Curses, Make and SCCS.
- Advanced programming in all UNIX shells. sh, ksh, csh.
- Extensive development experience with the X Windows System including Xlib, Xt, MOTIF.
Microsoft OS's: Microsoft, IBM, MS/Windows
- 15 years' experience with MS/DOS, Windows, Win95, Win98 WinNT Win2K Vista Win7 Applications and Systems programming.
- Focus on low level server optimizations for enterpise database technology.
- Microsoft MFC toolkit and IDE programming.
- Advanced experience with OLE/COM , DCOM and multi-threading.
- ND (Neuron Data) Open Interface 3.1
- Borland OWL and Application Frameworks
- Visual Cafe and MS/J++ IDE and java frameworks
- Windows Mobile
VM and Container Technology
- VMWare - 4+ years application and administration use
- Docker - 2+ years development, including production installations
- AWS 6+ years in all aspects of AWS development, architecture, distribuiton and managment.
Build and System Automation Tools
- C/C++ tooling -- make, rpm, linux/windows/mac installers, pre-build processing
- Java Tooling - ant, gradle, groovy, kotlin, maven
- Binary Repositories (Artifactory, maven, Docker Registry )
- CI tools ( Jenkins, TeamCity , docker )
AOS/VS: Data General
- 2 years' experience with AOS/VS. Applications and systems programming
VAX/VMS: Digital Equipment Corp.
- 2 years' experience with VAX/VMS. Applications programming.
Mobile OS's : Windows Mobile (Pocket PC), Palm/OS , iPhone (Mac/OS)
- 7 years experience in Windows Mobile and Palm/PPC development
- 3 years experience in iOS (iPhone, iPod Touch, iPad)
Database and Application Servers
- Oracle, 5+ years
- MySql 20+ years
- MarkLogic (NoSQL) 8+ years
- Cloud/Distributed DB's (DynamoDB, SimpleDB, memcache, mongoDB)
- Variety of specialized DB technoogy (OO, Network, RDF/Semantic, XML, JSON, graph)
- IBM 360/370 series. DEC VAX 11/780 .
- IBM RS/6000 series ,HP 9000/300 series, Sun, DG MV4000.
- IBM PC/XT/AT , Z80, 6502, 6800,680x0, 80x86.
- iPhone, Windows Mobile (PPC), Palm, Android, Blackberry.
Experience with Digital Telephony Equipment, PBX switches and test hardware.
1981 to 1985. Major Engineering and Applied Science
- Semiconductor electronics theory and lab 1 year.
- Microprocessor systems design, construction and programming lab 1 year
- Artificial Intelligence theory and lab
- VLSI Design theory.
- VLSI compiler writing theory and lab 1 year
- Assembly programming (6502, Z80,68000 )
- High level language and graphics programming lab (PASCAL).
- Information Theory and Complexity.
- The potential and limitations of computing
- Calculus and differential equations 2 years
- Probability and statistics 1 year.
Engineering and Science:
- Physics: classical, relativistic, and quantum 2 years.
- Chemistry theory and lab 1 year