Daniel Brian Keith

Programmer, Scientist, Entrepreneur

As a bioinformatic research software engineer at Oregon State University and previously at Oregon Health and Sciences University, I worked with the Monarch Initiative, a multi-institution open science effort to semantically integrate biomedical data from multiple species and sources into an API-accessible knowledge graph. Facts and observations imported as RDF from publications and external data sources are integrated using standard OWL ontologies and machine reasoning. My primary role with this group was modernizing the application server and user interface, and developing tools to assist in the curation of the knowledge graph.

I’ve been building software solutions in the commercial and scientific domains for more than 35 years, evaluating and adapting to new technologies fluidly. I enjoy working with diverse teams that are tackling interesting and meaningful challenges. My graduate work focused on areas of logic, semantics, programming languages and distributed systems that fascinate me.

I continue to build software tools and environments to support technical and scientific education, collaboration, and publishing. I have developed an open source suite of tools known as Smartdown, which simplifies the creation, sharing, and publishing of explorable explanations and rich technical content.

Technical Skills

Experienced in modern front-end web development, including javascript, webpack, VueJS, CSS, HTML, ReactJS, Angular, Bootstrap.

Experience with C++, Java, NodeJS, Python, Unix, and shell scripting. Comfortable with a variety of scientific and functional languages such as R, MATLAB, Clojure, and Haskell.

Experienced in the design and implementation of compilers, interpreters, servers, APIs, and development tools.

Experienced building full-stack systems that include web and native (Unix, MacOSX, Windows, iOS, Android) clients, that use diverse databases (Postgresql, CouchDB, MongoDB, Neo4J), and that provide and utilize services via APIs (REST, WebSocket, TCP/IP).

Expert in integrating services and deploying applications using appropriate technology, including virtualization, cloud services, containers, websockets, APIs, messaging and network protocols.

Proven ability to take products from concept to production. This includes the preliminary research, design and prototyping, as well as the implementation and refinement needed for production and maintenance. Adept at studying a problem and determining how to develop a solution, whether that includes the use of existing technology or the invention of new technology.

Effective working both independently and within a team. Experienced in project, team and client management and communication. Active participant in discussions; excellent oral and written communication skills. Significant experience in decision-making at both the project and strategic level.

Employment History

June 2018-Present

Bioinformatics Semantic Engineer, Translational and Integrative Sciences Lab http://tislab.org (Corvallis, Oregon, USA)

Development of Monarch Initiative web applications https://monarchinitiative.org and related APIs, including tools to support ontology creation, bioinformatic annotation, data integration, and knowledge graph navigation. (NodeJS, VueJS, HTML, Javascript, CSS, REST, Swagger, APIs, OWL/RDF)

July 2015-June 2018

Research Software Engineer, OHSU Ontology Development Group http://www.ohsu.edu/xd/education/library/about/departments/ontology/ (Portland, Oregon, USA)

Full-stack development of the Monarch Initiative web application https://monarchinitiative.org (NodeJS, VueJS, HTML, Javascript, CSS, REST, Swagger, APIs, OWL/RDF). Development of an ontology-driven curation tool.

March-June 2015

Lead Developer for Palo Alto Software http://www.paloalto.com (Eugene, Oregon, USA)

Developed front-end and back-end code to support the LivePlan web application. Worked with the 10-member development team to build software and to improve process and effectiveness by acting as engineer, mentor and scrum master. (Java, JBoss, ReactJS, HTML5, CSS)

2015-present

Founder and Lead Software Engineer for Quantum Clay LLC http://www.quantumclay.com (Eugene, Oregon, USA)

During 2015, my primary role at Quantum Clay has been software consulting for clients; projects included building a prototype ElasticBeanstalk/MongoDB/NodeJS application, acting as the lead software engineer for a blockchain-based startup company, and working as a software engineer for the Monarch Initiative. (NodeJS, Java, AWS, ElasticBeanstalk, S3, MongoDB, Angular, Bootstrap, REST, bitcoin, blockchain, Electrum).

In addition to client consulting, I have continued the development of Scape, acquired from my previous company, InSilico. I have also been developing software, InfoClay and Smartdown, to simplify the authoring and publication of interactive educational and scientific material. (Clojure, Angular, websockets, Markdown, NodeJS, PouchDB/CouchDB)

December 2014-May 2015

Research Associate at University of Oregon http://www.uoregon.edu (Eugene, Oregon, USA)

Following on to research and development work I had done for Professor Stephen Fickas (University of Oregon, Computer Science) when I worked for InSilico, I was granted a Courtesy Research Associate appointment at UO, where I continued to provide part-time support for Professor Fickas’ research and teaching. This work included developing software prototypes, reviewing written material, working with iPython Notebooks and a variety of open data sets, and prototyping IoT systems for educational purposes (RaspberryPi, iPython Notebooks, Python, NodeJS).

2010-2014

CTO and Lead Software Engineer for InSilico Inc http://www.insilicodesigns.com/ (Eugene, Oregon, USA)

Developed several applications and systems on behalf of clients; these include a tablet-based email and photo-sharing system to communicate with older or less-capable family members, an industrial safety awareness and assessment platform, and a phoneme-recognition and training system for early speech learning. (iOS, machine-learning, OpenCV, C++, audio and speech processing, Postfix, MongoDB, CouchBase)

Designed and deployed a team collaboration platform called Scape, a persistent technical conversation and knowledge management system oriented towards STEM (Science Technology Engineering Mathematics) teams that need rich notation including mathematics, structured text, code and diagramming. (Clojure, Java, HTML5, Angular, AWS, CouchDB)

2010-2012

Research Assistant and PhD Candidate at University of Oregon http://www.uoregon.edu (Eugene, Oregon, USA)

I completed my PhD as a research assistant in the area of software engineering. My research was funded by an NSF grant to improve dynamic invariant detection, which is one form of program analysis. This research culminated in the development of Alembic, a language and system for use with an existing invariant detector to discover invariants upon an abstraction (functor) of the concrete execution and its objects. (Java, AspectJ, ANTLR, Python, C++)

2006-2010

Graduate Teaching Fellow at University of Oregon http://www.uoregon.edu (Eugene, Oregon, USA)

I assisted in the teaching of several computer science courses, including intermediate Java programming, introductory computer science, formal logic, and programming languages.

2005-2007

Senior Software Engineer at Neuroinformatics Center http://nic.uoregon.edu (Eugene, Oregon, USA)

Completed the implementation of HiPerSAT, a package for performing independent component analysis of time-based multichannel data such as EEG signal data. Integrated HiPerSAT into EEGLab, a MATLAB package for analyzing and visualizing EEG signal data. HiPerSAT’s unique contributions are parallel (MPI and OpenMP) implementations of the FastICA and Infomax algorithms.

Designed and prototyped GEMINI, a system to manage the transmission, archival, and analysis of neuroinformatic data such as EEG and MRI data. GEMINI uses Globus and WSRF (Web Services Resource Framework) to implement the necessary distribution and invocation mechanisms.

2000-2005

Senior Software Engineer at On Time Systems, Inc http://www.otsys.com (Eugene, Oregon, USA)

Project lead for the WARP 2.0 project. WARP is a C++ aeronautical route planner that produces fuel-minimizing, rule-conforming flight plans. My team refactored and extended the WARP prototype code into a robust, maintainable, shipping product that is in use by the US Air Force. (C++, heuristics, algorithms)

Designed and implemented the DWARP (Distributed WARP) prototype as part of a DARPA research project. DWARP uses web services to coordinate multiple worker processes to solve large planning problems in parallel. (SOAP, Apache, C++, Unix)

Developed and delivered the TrafficDodger web service. TrafficDodger used real-time data feeds, geographic information systems (GIS), and predictive routing algorithms to provide commuters with minimum time driving routes. TrafficDodger was designed and implemented as a multi-tier distributed system (including a powerful web-based UI) that aggregated and analyzed real-time data, using this data for display and routing purposes. (C++, Perl, CGI, HTML, JavaScript, MapServer, SOAP)

1995-2000

Senior Software Engineer at Open Text Corp http://www.opentext.com (Northbrook, IL, USA)

Project manager and principal programmer for the Jivelink project, an ambitious effort to migrate the bulk of the Livelink application from C++ and OScript into Java. (C++, Java)

Maintained and enhanced Livelink Builder, an IDE used to build and extend the Livelink application using the OScript programming language. (C++)

Designed and implemented WebLingo, an OScript-enabled embedded language for HTML page generation. The bulk of the Livelink web application was built using this page generator. (HTML, OScript)

Developed source-level GUI-based debugger for OScript and WebLingo, enabling easy debugging of Web requests. (C++)

Note: Open Text acquired Odesta Systems in 1996

1994-1995

Senior Software Engineer at Med-E-Systems, Inc (Chicago, IL, USA)

Developed Newton software for use by medical personnel. Solution involved use of wireless packet modems (Metricom Ricochet and Motorola ARDIS networks), SMTP, database, and GUI. (NewtonScript, C++)

Developed communications drivers to communicate via Metricom wireless modem and via the Motorola ARDIS packet network. (C++, messaging, microkernel)

1988-1994

Software Engineer at Odesta Systems, Inc (Northbrook, IL, USA)

Co-designed and developed the BlueSky technology base, which includes a reflexive, persistent object system, an extensible OO programming language (OScript), an extensible, multi-threaded interpreter, and a source-language debugger. This technology is integral to ODMS 2.0 and subsequent Livelink products. (OO, language design, RAD tools)

Designed and implemented OScript, an object-oriented programming language and virtual machine (YACC, C++, C, compiler, interpreter). This scripting language and the BlueSky technology eventually became the core of the Livelink Enterprise Server at Open Text.

Maintained and extended ODMS, a databased document management and workflow system. (SQL, Unix, VMS, client/server).

Converted entire code base from C to C++ on both MacOS, Windows and UNIX.

Developed and delivered the DEC All-In-One Mail client for Macintosh and MS/Windows. This project involved interfacing with DEC’s X.400 software, using and extending the O2 toolkit, and architecting a large cross-platform GUI program.

Developed O2, a portable object-oriented C GUI toolkit for use in the rapid development of portable software. This toolkit was subsequently used as the major structural component in several shipping products. (Cross-platform, OO, C, GUI, MacOS, Windows, Motif, XWindows).

Resolved VMS/Mac document interchange issues for the Helix DBMS product. (VMS, MacOS, Pascal, RMS, DEC’s Compound Document Architecture).

1986-1988

Programmer at Medical Development Systems, Inc (Northbrook, IL, USA)

Worked on the CLINTROL/FORMS data entry subsystem, a full-screen data entry and presentation system that communicated with a wide range of databases (ORACLE, SIR, INFORMIX) via a generic database interface on VMS and MS/DOS (VMS, DOS, C, VT100).

Developed a portable run-time library of software tools in C. This was used in the development of all of MDS products.

Converted the CLINTROL system from SIR/TRAN (a FORTRAN preprocessor) into C.

Development of run-time library and VAX/VMS system interface procedures in C and MACRO-11 assembly language.

Designed software development system and support software using MMS, CMS, and C.

Implementation of security subsystem within the CLINTROL suite of products.

VAX/VMS technical expert within the software development group.

1984-1986

Systems Programmer at Scientific Information Retrieval, Inc (Evanston, Illinois, USA)

Maintained and enhanced SIR/FORMS, a screen-oriented DBMS interface and SIR/MASTER, a concurrent database server using interprocess communication. (VAX/VMS, FORTRAN)

Ported SIR software to CDC NOS.

Responsible for VAX/VMS software installation procedures and VAX/VMS support.

Education

2008-2012

PhD in Computer Science at University of Oregon http://www.uoregon.edu (Eugene, Oregon, USA).

Completed PhD in Computer Science in March 2012. My research was in the area of software engineering; specifically program analysis tools. Using a language I developed, Alembic, I applied the techniques of dynamic invariant detection to program abstractions as a way to obtain more meaningful results from the existing dynamic invariant detection tools.

During my graduate program, I also explored in depth some of my other interests, including computation theory, proof theory, and programming language semantics.

2005-2008

MSc in Computer Science at University of Oregon http://www.uoregon.edu (Eugene, Oregon, USA).

Completed Master’s degree in Computer Science in Spring 2008. Extensive study of functional programming, programming languages, workflow and dataflow networks, program semantics, category theory, logic and proof theory.

1980-1987

BSc in Computer Science at Northwestern University http://www.northwestern.edu (Evanston, Illinois, USA).

Completed Bachelor of Science degree in Computer Science at the Technological Institute at Northwestern. Some of this work was completed part-time while working professionally. Other in-depth studies included physics, mathematics, and linguistics.

Publications, Awards, Programs

Conference Presentation
A match made in heaven: domain expert meets csv; gives birth to ontologies [Authors: Nicole Vasilevsky and Daniel Keith] - csv,conf,v3 Portland, Oregon, May 2-3, 2017 https://csvconf.com/speakers/#nicole-vasilevsky-and-daniel-keith
Journal Article
The Monarch Initiative: an integrative data and analytic platform connecting phenotypes to genotypes across species. [Authors: Christopher J. Mungall, Julie A. McMurry, Sebastian Köhler, James P. Balhoff, Charles Borromeo, Matthew Brush, Seth Carbon, Tom Conlin, Nathan Dunn, Mark Engelstad, Erin Foster, J.P. Gourdine, Julius O.B. Jacobsen, Dan Keith, Bryan Laraway, Suzanna E. Lewis, Jeremy NguyenXuan, Kent Shefchek, Nicole Vasilevsky, Zhou Yuan, Nicole Washington, Harry Hochheiser, Tudor Groza, Damian Smedley, Peter N. Robinson, Melissa A. Haendel] - Nucleic Acids Res 2017; 45 (D1): D712-D722. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5210586/
Journal Article
Navigating the phenotype frontier: The Monarch Initiative [Authors: McMurry JA, Köhler S, Washington NL, Balhoff JP, Borromeo C, Brush M, Carbon S, Conlin T, Dunn N, Engelstad M, Foster E, Gourdine JP, Jacobsen JO, Keith D, Laraway B, Xuan JN, Shefchek K, Vasilevsky NA, Yuan Z, Lewis SE, Hochheiser H, Groza T, Smedley D, Robinson PN, Mungall CJ, Haendel MA.] Genetics, 203(4), 1491-1495 http://www.genetics.org/content/203/4/1491
Startup Incubator
My company, InSilico, was accepted into the inaugural cohort of RAIN Eugene (Regional Accelerator and Incubator Network) - http://raineugene.org, which is an intensive 3 month mentoring and training program for early growth-stage companies. During this program, I learned about funding, marketing, and growing a startup business, as well as obtaining valuable advice and connections. Eugene, Oregon 2014
PhD Thesis
Extending Dynamic Invariant Detection With Explicit Abstraction https://scholarsbank.uoregon.edu/xmlui/handle/1794/12325 [Advisors: Michal Young, Zena Ariola, Matt Sottile] 2012
Research Paper
A robust implementation of delimited control. In TPDC 2011: Theory and Practice of Delimited Continuations [Authors: Zena Ariola, Hugo Herbelin, Dave Herman, and Dan Keith] 2011
Presented Paper
Parallel ICA Methods for EEG Neuroimaging In Proceedings of the 2006 IEEE International Parallel & Distributed Processing Symposium [Authors: Dan Keith, Chris Hoge, Robert Frank, Allen D. Malony] Rhodes, Greece 2006
Patent
US patent 7991633: System and process for job scheduling to minimize construction costs [Authors: Andrew Baker, Matthew Ginsberg, Tristan Smith, Dan Keith, Andrew Parkes, Bryan Smith] 2001
Fellowship
Graduate Teaching Fellowship, University of Oregon Department of Computer and Information Science, 2007 to 2010

[email protected]https://doctorbud.comhttps://github.com/DoctorBud

541-954-1327 — 2295 Charnelton St, Eugene, OR 97405