Projects I'm proud of
Lectica builds open-ended formative standardized assessment systems designed a) to honor the rich diversity of students' perspectives, and b) to trigger iterative cycles of learning & feedback in students, teachers, administrators, and developmental researchers.
DiscoTest is Lectica's platform for designing, validating, administering, scoring, and reporting on Lectical assessments for K-12 students. DiscoTest was the most inspiring, technically interesting, and conceptually challenging project I've worked on to date.
The fun parts:
- Designing and querying an extremely complex relational data schema
- Interfaces to give the admin full control over managing, editing, and using the coding rubrics
- Auto-generated multi-page reports for individual students as well as filterable reports that allows teachers, administrators, and researchers to analyze aggregate results, generate custom charts, etc.
Lux gathers research on startups, builds reports and metrics about their viability, potential market size, etc. then gives access to these reports to subscribers.
I was tasked to implement a "chart explorer" interface to allow customers to explore their companies database in a visual and dynamic way, with customizable X and Y axes, filters to constrain results along a number of dimensions, controls to save and load chart settings, and export to PNG or CSV. The chart is refreshed via AJAX each time a setting is changed.
Gray Owl manages a library of finance, banking, and insurance related resources available for subscriber access. As part of the team planning and building the application, I mostly worked on integrating machine learning & automation tools into the app interface and data flow.
The fun parts:
- Storing certain file attachments in dynamically named S3 buckets (1 per user for legal reasons)
- Machine learning integration (training, prediction, and evaluating accuracy) using a Prediction.io server, queried from our main Rails app
- Spin off short-lived EC2 instances from an AMI, to each crawl a single domain, write newly found links to a central database, then terminate; logging & interface to provide transparency into what each crawler instance is doing
- Audit records of all changes are stored in a secondary database and can be reviewed by authorized users
The Thriveability project aims to build a social networking & collaboration hub that supports deeper discourse and more reflective engagement with the people around you. It's an antithesis to the shallow infosharing and "ADD culture" often cultivated by Facebook, Twitter, and similar.
GlassFrog is a data management platform built by HolacracyOne to help organizations adopt a solid Holacracy practice.
The fun parts:
- Tackled the fascinating problem of how to both 1) represent the current structure of an organization, and 2) represent proposed structural changes to the org structure, in a way that makes it easy to a) craft in a friendly "proposal builder" UI, b) detect conflicts between proposals, c) validate and execute, and d) summarize in human-readable terms after execution, even if the referenced records no longer exist.
- Slack integrations (announcing proposals and collecting accept/reject responses; syncing an organization's roles to Slack usergroups; making and responding to requests to a role via Slack)
- ActiveCampaign contact list sync with heavy caching layer to work around ActiveCampaign's highly-throttled api
- Logic for importing organization data from other Holacracy support tools, validating, and transforming the data to fit our schema
RTL is an experimental new way of collecting human stories, digesting them into categorized "clips", and recombining those clips into a custom playlist based on what questions you'd like to ask of the data. Somewhere in between art form and social research tool, the vision is to [encourage people to ask novel questions and discover novel insights] by making individuals' stories digestible and accessible at scale without reducing the nuance and subtlety to numbers, as much of social research tends to do.
The fun parts:
- Video capture, preview, and direct-to-S3 upload using the (apparently still experimental) MediaStream recording api
- Friendly iMovie-inspired video tagging system using React / Apollo / GraphQL / Absinthe