A truly full-stack software engineer, veteran of embedded,
web, and server-side environments across a variety of
industries. A passionate generalist with an appreciation for other
disciplines including management, user experience, and compliance.
A proven architect and coder looking for a great team with whom to
collaborate, design, and implement interesting projects and technologies.
Experience
Lead Software Architect
Led a complete redesign of NeuroPace's clinical research web tools in
Python, jQuery, Bootstrap, and d3.js
Represented user interface and interaction design in a major overhaul of
NeuroPace's Patient Data Management System used by clinicians to
care for their patients.
Implemented software best practices including version control, bug
tracking, and living documentation for the NeuroPace research
department.
Designed and implemented distributed database schema for Tomo Software's
mobile phone based massively multi-player online roleplaying game
(MMORPG).
Conceived the distributed architecture for Tomo Software's Java based
simulation game (without an application server).
Generated requirements and chose technologies for tools used to create
content for Tomo Software's games.
Technology Consultant
Evaluated storage solution providers as potential business partners for
Preclick
Refocused Preclick away from custom software towards easily supported
and outsourced server-side technologies (SMTP, POP, LDAP).
Assisted Mabo Studios in defining its web strategy.
Part of Emotiv's international team, leading the implementation of an
AWS-based web API in Python
Ported legacy PHP into more easily maintained and extended Ruby at Digital
Learning Commons
Co-conceived, designed, and implemented the server side of
Preclick's Internet Photo Messaging.
Updated Trabian's administrative area to facilitate search and
implemented inline editing with AJAX and DHTML
Designed and implemented a custom process management site in
Ruby on Rails for Mabo Studios
Engineering Manager
Led teams of 2 - 8 engineers in complex Java projects (AI, web,
and server, and mobile technologies) at Tomo Software.
Implemented software best practices including version control, bug
tracking, and living documentation for the NeuroPace research department
Participated in the NeuroPace HIPAA working group to ensure compliance
of the research team's software systems
Trained research scientists in SQL, Python, and git
Determined requirements and timelines for the team, communicated
these with the project manager.
Successfully led teams to deploy networked mobile phone video games,
web applications, and database tools.
Chief of Information Technology
Supported federal grants by making hardware recommendations and
contributing supporting software and tools.
Responsible for a colocated cluster of 14 servers hosting mission
critical business services.
Scripted customization of new servers, both physical and virtual.
Maintained DNS (BIND), Sendmail, Apache, database (Oracle, PostgreSQL,
MySQL), Tomcat, JBoss, version control (git, SVN, CVS), and bug-tracking
(Trac)
services.
Embedded Software Engineer
Wrote SPI / sysfs driver for AD9833 Programmable Waveform Generator
Wrote I2C / sysfs driver for the PCA9552 LED controller
Architected and implemented a soft real-time application framework
Integrated patches for SPI GPIO access into the Linxu kernel
Architected, implemented, and debugged Linux device drivers and
application code for a SCSI-Ethernet bridge device (custom hardware).
Led the software bring-up of several in-house prototype boards.
Specified and implemented a validation and bring-up scheme, a boot ROM,
and system software for a Sparc-based SoC implementation.
Java Engineer
Created Data Access Objects enabling mobile phones and Flash to
access a PostgreSQL database.
Wrote Java servlet for accessing server-side data from a mobile phone
or via Flash Remoting.
Implemented Factory pattern for loading and executing simulation events
from the database.
Designed and coded GUI (Swing) and web-based (JSP/Servlet) tools to
visualize and modify database data.
Conceived and implemented a graphical administration utility and wizard
in Java / Swing
Re-architected and refactored a multi-window application into a tabbed
interface.
Reviewed and optimized the code base to remove memory leaks and other
performance bottlenecks.
Implemented an online help system, including both code and content.