Work Projects

Brightspace Data Sets

D2L, July 2017 - Present

Raw, user-level access to Brightspace data in CSV form, refreshed on a regular cadence. Enables clients to integrate into and identify trends unique to their institution's ecosystem.

OAuth 2.0

D2L, March 2016 - Present

Third-party integration via D2L's implementation of RFC 6749 (The OAuth 2.0 Authorization Framework).

Brightspace Data Platform

D2L, April 2014 - Present

Building D2L's next generation educational analytics platform. Event-driven, lambda-like data-processing architecture backed by multiple types of data stores. Data is exposed via a RESTful API layer.

Brightspace Insights

D2L, September 2011 - December 2011, May 2012 - April 2014

Educational analytics as a service. Traditional ETL process, extracting Brightspace data from a transactional database into a reporting warehouse. Data is exposed via a white-labelled third-party BI tool with pre-defined reports and ad-hoc support.


Hobbyist Projects

cron-allowed-range

Use cron-like expressions to test if a datetime is in an allowed range.

github-tasting-menu

A GitHub App that only notifies on a subset of actions.

hangman-reactjs

A popular word guessing game using React and Redux.

netlify-deployment-hours-plugin

A Netlify plugin that blocks deployment if it is outside of deployment hours.

oauth2-client-shell-v2

Interface for going through the OAuth 2.0 authorization code grant flow. Written in Vue.js.

pprint-ndjson-ui

Tool for pretty-printing newline-delimited JSON using React and Redux.

pyiterable

An open-source Python library. I fell in love with C#'s LINQ / Enumerable a while back, and realized Python could use some love so that it can do something similar. I decided to write my own library, following the likes of C# LINQ / Java streams / Apache Spark's RDD transformations.

waste-some-guids-ui

GUID generator, written in Vue.js. Generates up to 999 GUIDs at a time.