⇧ Home
Projects
Projects where I was the only significant code contributor are italicized, but successful projects have gone well beyond what I could have done alone.
HuBMAP components:
- Data Portal (source / my PRs): Flask site with React frontend. I guided the work of two junior developers and a designer to align with the high-level goals set by our PI, and I worked with outside teams to define the APIs that support our frontend.
- ingest-validation-tools: Data submission guidelines, and tools to check that submissions adhere to those guidelines. Listened to data curators, pipeline authors, and lab scientists, and delivered scripts and a schema language that is used to validate submissions and generate documentation.
Visualizations:
- Vitessce (source / my PRs): “Visual Integration Tool for Exploration of Spatial Single-Cell Experiments”. Initial author of a Javascript library for declaratively specified, linked, interactive visualizations, repurposing the deck.gl geospatial library for microscopy and single-cell analysis.
- heatmap-scatter-dash: Simple heatmap + scatterplot using Plotly Dash.
Python modules on Pypi:
- tableschema-to-template: Generate Excel data entry templates from Tableschema definitions. A small reusable module factored out of the larger ingest-validation-tools.
- django-docker-engine: Docker engine wrapper + proxy server for containerized visualizations in Django. Generic visualization launch architecture, for which heatmap-scatter-dash was a demonstration client.
Ruby:
- American Archive of Public Broadcasting (source / my PRs) and WGBH Stock Sales (source / my PRs): One of two web developers on video-centric RoR projects for WGBH, building on the Solr/Blacklight framework to implement designs.
- CMLess: Rails gem to manage a site’s static content as markdown on github. Proposed and got buy-in for the idea that rather than maintaining a separate CMS, static pages on AAPB could be based on markdown in the repo, with frequent redeployments.
Java:
- FP-DataEntry: Server + browser bookmarklet for copy cataloging in natural history collections. The Filtered Push project had proposed a distributed network for data-sharing across natural history collections. When that failed to engage with users, proposed and implemented a small tool to support interactive screen scraping and data alignment.
Fun (?) non-work projects:
- concertina_helper (source) (2023): Python script and supporting API to find fingerings on bisonoric concertinas
- walkle (source) (2022): Like wordle, for walks
- spiro-font (source) (2022): Font construction in the browser
- ploverlay (source) (2021): Uses the Geolocation API to show where you are in the real world
- dagsheet (source) (2017): A toy graphical functional programming environment
- yajt (source) (2016): Video processing and sound generation in the browser
- demo-data (source) (2015): Build PNG and MIDI files byte by byte