Professional Projects

Learn Linter CI: Rails app that continuously integrates with GitHub to monitor curriculum repositories, validating content and reporting results to the faculty team. Uses GitHub webhooks and ngrok. Fully tested using VCR to stub API endpoints.

Flatiron Scheduler: A Rails 5 app that integrates with Google Calendar and GitHub to allow FIS instructors to create the daily schedule for their class, automatically post that schedule to a GitHub repository and automatically reserve classrooms on our Google Calendar.

Flatiron Gallery: A Rails 5 app that showcases Flatiron student final projects. Integrates with the GitHub API to pull project repo and collaborator data. Implementes WrapBootsrap theme for responsive and pretty UI. Uses custom Phatom.js script to pull project screenshots. Uses OmniAuth with Google; Uses Paperclip gem + Amazon S3 bucket for screenshot storage.

Flatiron Lab Trackr: A Rails 5 app for FIS instructors to aggregate and review student PRs. Integrates GitHub API and webhooks.

GitHub Issue Trackr: A Rails 5 app for tracking GitHub issues and receiving notifications regarding those issues. Developed as a sample app to illustrate common Rails design patterns: services, adapter pattern, decorator pattern.

Learn Together: A Rails 5 app that uses the Learn API, the learn-together-gem, jQuery UI and the Slack API to group students for projects. API: Build out endpoints for public-facing API, incl. authorization endpoints. Contributed to API documentation

Learn Lint Gem: Used by the Learn Linter CI app to check GitHub repositories for the presence and validate the content of certain files. Custom script for identifying invalid code snippets in a Markdown file.

Learn Write Gem: A command line gem for generating FIS curriculum files in a given repo, such as license files, .gitignore, contributing files, and others.

Learn Together Gem: Generates student working groups from collection of student JSON. Sort into groups of n number of students or n number of groups; sort randomly, based on student progress (i.e. assignment completion)..

OmniAuth Learn: OmniAuth strategy for authenticating with

Personal Projects

Phoenix Pair: Pair program with real humans on real code problems with the help of React + Redux, Phoenix! Leverages Phoenix channels to implement real-time code collaboration and chatting.

Conference Talk: Phoenix Presence, The Right Way to Track User State in Real-Time Check out my talk at this year's Empex conference!

React Pair:Another pair programming app! I just can't seem to get enough. Built with React + Redux, CodeMirror and

Elixir Linter: An Elixir code-linting app that leverages Credo + the GitHub API to provide code quality management for your Elixir projects.

Chatty: A simple chatting application using Rails 5 Action Cable. Built as a demo for my AC tutorial, written for the Heroku blog.

Who-ipedia: The best encyclopedia of Doctor Who out there. An Ember app that consumes data from a Rails API. Uses the Ember Simple Auth Library, with custom-built registration flow, to authenticate users. Integrates the D3.js library to display bubble charts of popular aliens by season. Implements Ember Simple Select and Ember Embedded Record Mixin to create and persist new episode records with their associated writers and season.

Who-ipedia API: A Rails API that delivers data to the Who-ipedia Ember app. Built with the Rails API Gem, it uses Active Model Serializers to produce and deliver JSON that complies with JSON API standards. Uses Devise and Action Controller HTTP Authentication Token methods to authenticate uses from the Ember application using a token-based authentication system.

CatBook Redux: React Redux app; users can browse, create/edit/delete cats. Uses React Router, Redux Thunk Middleware, custom JWT auth implementation.

Ember JWT Auth Sample App: his project demonstrates one implementation of JWT authorization by customizing the Ember Simple Auth add-on.

Rails Custom JWT Auth Sample API: This project demonstrates one implementation of JWT auth in Rails using the jwt-ruby gem.

Approvable Feast: A rails app for planning potluck dinner parties. Just set the date and we'll provide you with delicious menu options from our database of hundreds of recipes. Invite your friends to cast their votes on dishes and we'll finalize your menu. Guests can then sign up for cooking different dishes.

Flybrary: An Ember application that lists educational resources and allows users to create, edit and delete those resources. This app serves data from a Pheonix API.

Flybrary API: A Pheonix API that serves the Flybrary Ember application.

Action Cable Chat: A simple chatting application using Rails Action Cable. Runs locally with Foreman, Redis and web sockets. Runs remotely on Heroku with Redis, Puma and web sockets. Deployed to run multiple processes on one server.

Learn Notebook: An Ember app that allows users to browse an index of and view individual readings. Users can annotate readings by highlighting and adding notes which can be persisted, edited and deleted.

Learn Notebook API: A Rails API that pulls readmes from Github repositories and serves them to the Learn Notebook Ember app.

SQL Playground: An implementation of the SQL.js library that allows users to execute SQL in the browser. Users can upload or create a database and execute queries against that database. Uses SQL.js along with CodeMirror.

NYCHA Repair Charts: A rails app that uses Javascript's D3 data visualization library to render information on repair issues in New York City public housing. Data is pulled from the NYC Open Data Socrata API, stored in a Postgresql database and displayed with D3 bar chart and zoomable sunburst diagrams.

Flatbook: An Ember application that requests data from a Rails API and displays a directory of Flatrion School grads.

Repl-ize: An in-browser Ruby REPL built with Opal and Opal-IRB.

Titleize - The Game: A super fun game to play when you are super bored at work. Chat a friend and generate a randomly invented title via the click of a button. Take turns inventing fake movie synopsis and generating titles. Uses Faye and the Private Pub gem to create a chat room that users can use to play. User Javascript long polling to alert user's if a friend has chatted them to start a new game.

NOMO: Sign up and subscribe to all your favorite musicians--you'll receive an email update whenever they'll be playing a show.

Titleize - The Gem: A Ruby gem for generating a random title.

Flatbook API: A Rails API made with Grape that serves data on graduates of the Flatiron School.

Am I Ruby? A rails app that answers the question: is a certain site built with Ruby?

Bei Machine: A rails app that allows you to save and manage your google search results. Sign in to start managing everything from you job search to your business marketing strategy.

Purrfect Match: A web app that uses the Petfinder API to allow you to search pets for adoption in your area, 'like' pets you're interested in adopting and connect directly to shelters to facilitate adoption.

Weather for Dummies: a command line app that tells you the weather and recommends appropriate outfits.

Cat Fancy: A soothing Sinatra app that delivers random cat gifs to your browser at the click of a button.