WARNING: Massive Incoming Tech Buzzwords Ahead.
You've been warned.
Cash & Keep
Midway through a Cash & Keep Order
Cash & Keep was built on Ruby on Rails 4.2 for Sidewalk Pro (18M raised). Since college campus textbook buyback is so profitable, textbook resellers like Sidewalk want to buyback as many books as they can (without offering higher prices). Cash & Keep solves this by allowing students to 'sell' their books as early as the start of the semester and get cash immediately for it (in exchange for the commitment to deliver it to Sidewalk once the semester is over). By capturing these buyback sales early, Sidewalk no longer is competing with the likes of Amazon, Chegg etc. and can acquire significantly more buyback inventory at low prices. A win-win for both students and Sidewalk.
Singlehandedly, I built the entire Ruby on Rails backend while my collaborators implemented the Single-Page-App (SPA) frontend using AngularJS. To get a sense of my 'taste' in software as a backend developer, here is a listing of the key gems I choose for the project:
- puma --- one of the fastest Ruby application servers
- mysql2 --- the database required for legacy reasons, though usually I prefer PostgreSQL
- redis --- a really, really awesome general purpose in-memory data store
- sidekiq --- my personal favorite Ruby asynchronous job queue
- bootstrap-sass --- a SASS-markup port of the (in)famous Twitter Bootstrap library
- braintree --- usually I prefer Stripe but this project required Braintree
- twilio-ruby --- an incredibly developer-friendly API for anything phone related
- sentry-raven --- a beautiful exception monitoring SaaS. This thing has saved my butt on occasion with its alerts!
- newrelic_rpm --- allowed me to easily debug an internal-API performance issue we were seeing.
- mbsy --- AKA 'Ambassador', is an easy-to-use library to incentivize users to share your product via a customizable referral program.
- foreman --- an essential tool for developing apps deployed on Heroku
- dotenv-rails --- a handy library allowing easy use of ENV variables in the development environment
- httparty --- "When you HTTParty, you must party hard!" The best Ruby Gem post-install message :grin:
- reform --- a highly recommended app for the notoriously tricky multi-step forms in Rails
- virtus --- is my essential library for creating 'Service Objects' in Rails
- ahoy_matey --- great gem, great name, always included in my projects to get some sweet server-side marketing analytics
- rails_admin --- IMHO the best of the various Rails done-for-you admin gems.
- with_advisory_lock --- a lesser known locking gem to prevent race conditions.
- pry --- if you are a Ruby developer who doesn't use any debugger REPL (pry, byebug etc.) then stop, drop everything & try one. Your productivity will increase by at least 10X
- rspec-rails --- my preferred testing stack. This app was developed using Test-Driven-Development and includes over 250 rspec tests.
- factory_girl_rails --- my preferred test-object factory library. Much better than fixtures IMHO.
- timecop --- for any apps with features involving wall-clock time timecop is an *essential* gem for testing these features in rspec
For greenfield Rails development this is roughly the stack I would use (unless the project requirements called for something very different). I love suggestions though, so if you have any please email me with them!
GAIN Fitness Web Properties
GAIN Fitness Landing Page
While consulting with GAIN Fitness (2.8M raised), I was the steward of their entire web presence. The site was built with Ruby on Rails on the backend. Specific things I built include a multi-page complex signup flow (AngularJS), a monthly billing system with Stripe, multiple marketing mini-sites, integrating the customer database with the PipeDrive CRM's API, setting up a framework to use Google Tag Manager's analytics system along with building numerous admin tools to facilitate matching client's to trainer's based on interests & location.
Moovd Video Creation Dashboard
As one of my earlier clients, Moovd was a bootstrapped SaaS app by a non-technical solopreneur. When I came in the project was 80% finished and *very buggy*. It was primarily built by an outsourced team in the Philippines. I cleaned up the codebase, added tests and finished the app according to spec. It was a Ruby on Rails app with a Stripe billing system, OAuth social sign in and a Referral system integration (Ambassador).
Scholasphere Landing Page
Scholasphere was my first client (which I am very grateful for). They were selected as part of the University of Southern California's first statup incubator program(link to vsi2). Using their seed funding, they brought me on to round out their technical team and build their MVP product. While the company eventually shuttered due to lack of traction, I am still a believer in the idea (a common app for scholarships).
Internet Enabled Outlets
Control Your Blender With Your iPhone!
Using a native iPhone app, from anywhere in the world users are able to configure whether power will flow to the 120V devices plugged in to these special outlets. In addition to home automation use cases, this allows users to reduce the vampire draw of their devices to 0.
The system uses the outstanding Electric Imp WiFi chip to communicate with the internet. From there, a Sinatra REST API backend on Amazon EC2 acts as the bridge between the iPhone/web clients and the imp system. The microcontrollers used are 8-bit Atmel Atmega168a.
The QuantifiedSpeed Weightlifting Analyzer
In athletics "speed kills". Research has shown that the optimal way to train for explosive acceleration is by performing repetitions as quickly as possible using maximal force. Until recently, strength coaches and athletes have had to rely on qualitative observations to measure rep speed. This is obviously non-ideal. QuantifiedSpeed aims to change that, precisely measuring peak+average velocity and acceleration of weightlifting repetitions.
USB Human Interface Device (HID) Hacking
Inspired by: IronGeek
The Teensy μC
Leaving your laptop unattended in a public place is usually a bad idea. In the videos below I show how using a $15 microcontroller emulating a USB keyboard and konboot an attacker could quickly and efficiently take advantage.
- Exploit #1: Hosts File Hacking to Facebook Phishing
- Exploit #2: Arbitrary File Download to Netcat Reverse Shell
- Exploit #3: 0 to Firefox Keylogger Addon in 60 seconds
Octobi Wan Catnobi (via Github's 404 page)
Still want more? You can find a multitude of half-finished side projects on my Github account, where I am known as theunixbeard. What's a unix beard you ask? Merely an entertaining meme that Urban Dictionary describes as:
Facial hair that all Unix experts are mysteriously compelled to grow. The length, bushiness, and unkemptness of the Unix beard are all directly proportional to the owner's expertise.
Want to add to this list?
Email [email protected] and let's talk software!