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. 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 PhD 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 technology known as Smartdown, which simplifies the creation, sharing, and publishing of explorable explanations and rich technical content.
Experienced in front-end web application 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, DynamoDB), 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 (AWS, EC2, Lambda, CDK, CloudFormation).
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.
Backend Engineer, Trifoia Inc https://trifoia.com
Development of back-end and front-end functionality and tools for various web applications that provide research-oriented educational and health interventions via rich interactive media. Primarily NodeJS, VueJS, and AWS infrastructure via CDK/CloudFormation. Some Wordpress integration via SQL. (NodeJS, Javascript, HTML, CSS, Bootstrap, SQL, Wordpress, AWS, CloudFormation, CDK, S3, Lambda, API)
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)
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.
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)
Founder and Lead Software Engineer for Quantum Clay LLC https://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)
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).
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)
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++)
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.
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.
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)
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
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)
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).
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.
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.
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.
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.
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.
[email protected] — https://doctorbud.com — https://github.com/DoctorBud
541-954-1327 — 2295 Charnelton St, Eugene, OR 97405