Solid

Grouper API

A Ruby on Rails RESTful API for an iOS application

Grouper is an “Offline Social Club” who joined YCombinator in 2012. In 2013 Grouper decided to pivot towards a mobile-first experience, and I was brought onboard contracting as a senior full-stack developer. I worked under the guidance of Tom Blomfield, Tom Brown and Michael Waxman to deliver the backend services that powered the platform. Notably, I built the recommendation engine, the matching engine and a significant part of our asyncronous billing system. more»

Grouper Experiments

MVC Mobile Apps Built With ReactJS

Grouper is an “Offline Social Club” who joined YCombinator in 2012. In 2013 Grouper decided to pivot towards a mobile-first experience, and I was brought onboard contracting as a senior full-stack developer. I worked under the guidance of Tom Blomfield, Tom Brown and Michael Waxman to deliver the backend services that powered the platform. As part of an ongoing initiative, we frequenlty built off-shoot products and experiments in order to test our assumptions about our market. more»

Flexible Config

Ruby configuration management  

FlexibleConfig promotes good OOP design, and the separation of logic and configuration in your Ruby classes.

FlexibleConfig allows you to set class constants cleanly in ruby with the heirarchical structure and clean workflow of YML config, without sacrificing the flexibility and immediacy of ENVironment variables.

more»

Ruby Module Introspection

Coding a gem for inspecting module structure in Ruby  

The AST Guidelines ruby gem gem analyses Ruby module heirarchies to ensure you do not violate bounded context design. A bounded context is a concept of domain driven design which dictates the design of complex software systems. more»

Ruby Service Objects

Live coding a utility gem for creating service objects  

The Ruby on Rails framework often gets a lot of hate over the years. Rails makes it easy to get up and running quickly. Unfortunately, its beginner-friendly approach leaves you high and dry months later when you have thousands of lines of code. Rails applications of this type are often referred to as Rails monoliths. One of the best ways to refactor and save an aging Rails monolith, is to extract service objects. more»

Active Hash

Rails models powered by static files  

ActiveHash is a simple base class that allows you to use a ruby hash as a readonly datasource for an ActiveRecord-like model.

ActiveHash assumes that every hash has an :id key, which is what you would probably store in a database. This allows you to seamlessly upgrade from ActiveHash objects to full ActiveRecord objects without having to change any code in your app, or any foreign keys in your database.

It also allows you to use #has_many and #belongs_to (via belongs_to_active_hash) in your AR objects.

ActiveHash can also be useful to create simple test classes that run without a database - ideal for testing plugins or gems that rely on simple AR behavior, but don’t want to deal with databases or migrations for the spec suite.

more»