Corporate Projects
Infrastructure Re-Architecture (Client Isolation Focus)
D2L, March 2021 - October 2021
Company-wide effort to re-architect all systems to better isolate client data and processes.
- Defined, reviewed, and updated company-wide architectural patterns and processes to meet desired requirements
- Prioritized work for multiple development teams with program, project, and development managers
- Consulted on and drove technical decisions with teams when convergence to agreed upon patterns was infeasible
- Established, contributed to, and maintained shared libraries repository that codifies company-wide patterns and processes
- Planned and facilitated deployment and verification of client and test environments across relevant teams
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.
- Architect and technical lead for migration and expansion of data sets platform into AWS
- Develop platform integration points to enable product offerings across the organization to meet data access requirements
- Plan, propose, and drive medium to long term solutions for multiple teams and with development and product managers
- Analyze and improve performance of legacy solutions based on SQL query plan and log analysis to maintain SLAs
- Developer representative online and at annual client conference for over 1000 attendees
OAuth 2.0
D2L, March 2016 - December 2017
Third-party integration via D2L's implementation of RFC 6749 - The OAuth 2.0 Authorization Framework.
Brightspace Data Platform
D2L, April 2014 - September 2019
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.
- Developed eventing framework and data platform in AWS that sustains over 1000 messages per second
- Reviewed and provided consulting on event schema design for other teams
- Improved and maintained tooling for deploying to production multiple times a day
- Working group member for company-wide on-call tool (OpsGenie); implemented integration with eventing framework and data platform
- Achieved 10x reduction in infrastructure costs by replacing legacy system with AWS services
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.
- Performed exploratory testing with a focus on integration points; analyzed defects and source code to recommend fixes
- Updated core libraries for security compliance; maintained testing environments
Open-Source Projects
cron-allowed-range
Use cron-like expressions to test if a datetime is in an allowed range.
gh-action-node-update-deps
A GitHub Action that submits pull requests to update all Node dependencies in the project.
github-tasting-menu
A GitHub App that only notifies on a subset of actions.
netlify-deployment-hours-plugin
A Netlify plugin that blocks deployment if it is outside of deployment hours.
serverless
Occasional contributer to the Serverless Framework.
serverless-default-aws-resource-attributes
A Serverless Framework plugin that allows you to set default properties a given CloudFormation resource should have based on type.
serverless-dotenv-plugin
A Serverless Framework plugin that uses dotenv to load environment variables from a .env
configuration file.
serverless-stack-policy-by-resource-type
A Serverless Framework plugin for automatically populating CloudFormation stack policy statements by resource type.
Front-End Projects
hangman-reactjs
A popular word guessing game using React and Redux.
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.
web-tools
A collection of miscellaneous tools. Powered by Nuxt.js.