- Project Leadership
- I've led multiple concurrent and successful small-team projects summing to fifteen developers. I love working with customers to learn what they need, get the most out of their budget, and move the business forward.
- Software Practice
- I'm a big fan of developer responsibility, clear goals, steady improvement, and sustainable codebases.
- Languages / Environments
2014 - present
(prev: Principal Software Engineer)
Led and grew team from three engineers to fifteen, including varied backgrounds appropriate to a large-scale analysis and sequencing firm. Coordinated and integrated members from various backgrounds: seasoned application developers, transitioned computational biologists, new engineers fresh out of college, senior engineers new to application work, and data scientists.
Designed or oversaw every in-house application written by software engineering team. Shaped feature sets into iterative releases covering MVP on up. Designed with flexibility in mind to allow flexibility into higher need areas due to growth.
Applications where we could afford it. Scripts where we had to. Manual action when needed. Meeting the deadline over all. Leveraged applications like JIRA for time-savings in coordination. Kept the organization flexible enough to hit short-order, custom grants and contracts while keeping pace on long-term processing goals.
Overhauled software development and release practices, including source control, versioning releases, code reviews, application logging, issue tracking, regression testing, backups, security, log archival. Shortened deployments from complete business day to a range of five seconds (modern products) to five minutes (legacy products).
Executed comprehensive evaluation of organization software, then designed and led plan to stabilize and replace weak and critical components, moving the organization methodically toward stronger health. Progress every month.
Led firm in transition from individual domain experts to rotating, sustainable support and documentation. Established better service patterns, changing the organization from fire-drill night/weekend work to delivering reliably during business-hours, while increasing overall output. This involved continuous training of software engineers and internal service customers.
Designed data replication, migration, and backup strategies across multiple tiers of storage; gets surprisingly fun above 25PB. Application suite migrated data smoothly in response to research, customer, archive needs.
Ensured stability of analyses and data transport during problematic rollout of distributed file system. Debugged timeouts and failures, triaged widescale and varied problems in live operation. Designed and implemented file-syncing operation to ensure mechanical durability of operations in distributed, asynchronous filesystem. Designed fault-recovery system to ensure successful operations in both data transport and distributed analyses.
Became a minimum-viable DBA in PostgreSQL, debugged live instances, adequately tuned database and corresponding applications. Reworked primary central database into suite of independently-tuned instances.
Oversaw the adoption of HIPAA-compliant practices in the software organization in pursuit of NYGC's goal of being a top-tier clinical sequencing lab. Led auditing, security, and validation efforts for informatics, including design of clinical validation system for automated pipeline processes.
Coordinated multiple external software vendors through requirements-gathering, implementation, and onsite deployment. Structured their work to fit in NYGC ecosystem. Guided internal customers regarding vendor management. Reviewed and iterated vendor contracts.
Hosted company-wide software stakeholder meetings with business leaders. Reviewed accomplishments, setbacks, plans for improvement. Hosted productive arguments about company direction, distilled software priorities, moved forward.
2005 - 2014
Principal Software Engineer in Analysis and Annotation Engineering in the Genome Sequencing and Analysis Program
(prev: Senior Software Engineer, Software Engineer)
Led design and development of Olive, a high-volume, low-cost web publishing platform for genomic data. Gathered requirements, designed the architecture, adjusted to changes in resources, participated in implementation. Published thousands of genomes in hundreds of projects, versioned correctly and packaged for general use.
Worked on a production Java/Jython pipeline that facilitated both manual and automated genome annotation and publication. This involved intricate applications with rapidly changing heuristic analyses, reading and writing arcane bioinformatics file formats, web design, automating the software whose execution case takes five pages to explain. The system went from annotating and publishing four genomes per year to five thousand a year, and my work directly helped make that transition possible.
I worked directly with our geneticist customers in subjects from analysis to system budgets. I had friendly, productive relationships with people from vastly diverse backgrounds, each of whom was very, very smart and know where they want to be — but not how to get there with software. My job was not just to listen to what they say they wanted, but learning the nature of the goal and understanding what they needed. This was one of my favorite parts of that job.
My software has assisted in annotating and publishing many horrible infectious diseases, including tuberculosis, malaria, influenza, the dengue virus, tuberculosis, Staphylococcus Aureus (of staph infection fame), HIV, and many more. Of course, I'm just working on their source code. From my work in gene annotation (and naming), I'm fortunate enough to have been published as a contributing author in a few journals, notably "A framework for human microbiome research" (Nature) and "A Catalog of Reference Genomes from the Human Microbiome" (Science).
1998 - 2002
Software Group Leader
I worked in the tools and test group, eventually becoming a technical and project lead. The project's goal was to cause the company's shipping products to fail locally rather than during on-site customer installs. The group was distributed across two major locations, and we had frequent collaborations with developers and testers around the world. I learned how to work and lead remotely.
2002 - 2005
Chief Software Pack Mule
I was a self-employed contractor who played backup infield for a few software projects. Every contract I worked on began thus: "This is behind schedule and we need to get something done."
1996 - 1998
M.E. / S.E.
Began as a mechanical engineer, where I made sure that the given parts in radar and missile systems wouldn't corrode each other in surprising ways. I transitioned to being a software engineer, where I worked on a document repository system.
My kids and family, books, games of all kinds, and fiction writing (not on this resume).