Projects

Applications created for clients, work or just for fun.

Modern take on florist websites with a strong focus on an easy checkout flow for customers and easy management for business owners. Checkout flow is built from scratch using Stripe as the payment gateway.

Multi Tenant
Rails
Ruby
SaaS
Shrine
Sidekiq
Stripe
Stripe Connect
Twilio
Webpacker

Custom solution to help fulfill a need a large janitorial company was facing. This revolved around creating custom audits for each group of locations. Audits are generated on a dynamic schedule and are used to score the current condition of a location. Focus was to make the site speed fast and as easy as possible for both the management and the cleaning companies that have to perform the audits.

Excel
Paper Trails
PDF
Rails
Ruby
Scheduled Jobs
Sidekiq

Platform for wellness coaches to create courses and charge for it via Stripe Connect. Includes video upload and transcoding. Unique features for teachers to interact with the participants.

ElasticTranscoder
Mux
Paper Trail
Rails
Ruby
Shrine
Sidekiq
Stripe
Stripe Connect
Uppy
Video Uploading
Webpacker

A tool developed to manage access to a perks platform for employees via existing CSVs. Dynamic smart CSV importer to allow for more flexibility.

CSV Import
Delayed Job
Rails
Ruby
SaltStack

A tool to bring travelers together to form temporary coliving spaces. Helping find groups and management

Omniauth
Rails
Ruby
Shrine
Stripe

ACH
Android
CSV Import
Excel
Hybrid
iOS
Payments
PDF
Rails
Ruby
SaltStack
Square Connect
Turbolinks
Twilio
Fire Fan App
Client

Action Cable
Briantree
Firebase
Hybrid
Omniauth
Rails
Ruby
Sidekiq
Social Network
SportRadar API
Twilio

A internal tool to create and manage our api clients. Clients can be invited to an program where they can manage there api tokens and check total api call count. All the functionality could do accessed by the web or through restful apis. We also hosted our api documentation here. The documentation was created with nannoc.

Doorkeeper
High Charts
Nannoc
Oauth2
Rabl
Rails
Ruby
SaltStack
Select2
Smart Listing
YAML
Volume Pricing
Open Source

Updated this gem to support Spree version 3. Adds the ability to add a volume price model to your products.

Gem
Spree
Invoice Schools
Open Source

Adds a new type of payment method for Spree. The ability to invoice a school by adding the schools contact information and tax id number.

Gem
Spree
Payment Promotion
Open Source

Allows a discount to be added based on what type of payment method is selected at checkout.

Gem
Spree

Business site for the company TriQuest. Static content pages, dynamically added landing pages, and a shop to sell products. The shop is made with Spree version 3 and customized using open sourced gems that I have to updated or create. The shop allowed for product customizations as well as volume pricing on products.

Braintree
Cocoon
Paperclip
Rails
Ruby
Slick.js
Spree

An internal tool used for managing push notifications for many mobile application. The application used information from elasticsearch to send targeted coupons to members based on campaign filters. Campaigns were scheduled ahead of time and sidekiq would be used to find the best coupon matching the campaigns filter and send the notification to the member.

API
Materialize
Rails
Rpush
Ruby
Sidekiq

iOS and Android hybrid application. The web application was build using rails, the iOS application with RubyMotion and the Android with Java. The applications used both native views and web views to create a natural feeling mobile application. We chose the hybrid approach so we could contently update the web views without being hindered by app store release schedules. The web side of it used our main api to communicate with our elasticsearch data.

Android
API
Hybrid
iOS
Rabl
Rails
Ruby
Yelp

A site made for my grandmother and her amazing art. Simple and easy to use by design. It allows people who own her art to add a painting.

AWS S3
Bootstrap
Lightbox
Paperclip
Rails

One of my favorite work projects. This application is used to get all the data from a legacy database and convert it to a flatten json format and send it to elasticsearch. Once it is there it has to be updated when it changes in the database so we used database triggers to make an event and use sidekiq to reindex the objects in the background. So far in production sidekiq has reindexed over 225 million records! Running almost 1 million jobs a day. We have 25 million docs stored in elasticsearch over 70 indices.

API
Clockwork
ElasticSearch
PG Triggers
Ruby
SaltStack
Sidekiq
Slack Bot
Demo

Built a fun bot to scan a slack channel. If the Travis.ci build fails it will insult you and it it passes it will motivate you. You can ask it for a pun or if your feeling a bit down you can ask for inspiration.

Ruby
Slack Bot

Site used internally to check if any of the applications are down. There is a index page that shows all the servers and will recheck if they are running every 30 seconds. The show page has more detailed information the servers and processes running. The site monitors 30+ servers for 10+ different applications.

Authorization
Cocoon
Httparty
HttParty
Monit
Rails
Ruby
SaltStack

My wife (also a software developer) and I wanted to do something special to invite family to our wedding. We decided to do what we do best and made a wedding website.

AWS S3
Haml
Paperclip
Rails

An internal tool to create and manage our api clients. Clients can be invited to an program where they can manage there api tokens and check total api call count. All the functionality could be accessed by the web or through restful apis. We also hosted our very extensive api documentation here. The documentation was created with nanoc.

Doorkeeper
Oauth2
Select2
Smart Listing
Search Api
Work

We created a hypermedia restful api service for internal and external parter use. It uses the power of elasticsearch to preform advance searches through our data under 100ms. This includes the ability to look up your latitude and longitude by postal code and geolocate the results. The results could also be returned with aggregations of the data set. The api spanned over 44 endpoints and 13 controllers pulling data from 10 elasticsearch indexes.

Advance Search
Api
ElasticSearch
Rabl
Rails
Ruby
Fictionist
Client

The band Fictionist wanted a site for fans to earn points to gain exclusives items. Members could help support and promote the band to receive points. The points could be used to unlock music and other band exclusives.

Masonry
OmniAuth
Rails

A group coding exercise I setup for a presentation at a monthly Salt Lake City Downtown Ruby User Group (DRUG) presentation and later a presentation at a monthly Utah Valley Ruby User Group (UV.rb). Everyone could write rules for the echo to follow using Ruby or Node and I would deploy the code to either AWS Lambda or Beanstalk servers.

Amazon Echo
Node
Ruby
Flexi Variants
Open Source

Updated this gem to support Spree version 3. Adds the ability to customize products like adding a message or image.

Gem
Spree
Spree 3
TriQuest
Work

Business site for the company TriQuest. Static content pages, dynamically added landing pages, and a shop to sell there products. The shop is made with Spree version 3 and customized using open sourced gems that I updated or created. The shop allowed for product customizations as well as volume pricing on products.

Braintree
Slick.js
Spree
ManaVolt
Demo

Demo application for a presentation on Volt.rb the Ruby isomorphic framework. The application is a team project manager that separates your tasks into 3 sections, repeatable, daily, and one time. You gain experience for completing a task and lose heath for failing a task.

Js Framework
Ruby
Volt

Crowd funding for school and organizations. An organization can create a fundraiser and supporters can donate to the cause. By doing so they supporter gets access to a large discount network.

AWS
AWS S3
Briantree
Payments
Rails
Ruby

Curated campings of deals, products and services. Also integrated with the Popshop api service to find more deals on products and offers. The site was designed to not contain any branding, so unfortunately it looks a bit boring. The best part of this site was the admin area. I used the cocoon gem to make nested form attributes. This way I could create or update a campaign and add/update it's many deals and add/update the deal's many photos. Also deals and photos could be dragged up or down to change the display order.

Popshop Api
Ranked Models
Select2