Aaron Van Bokhoven

Hi—I'm Aaron Van Bokhoven, a full-stack software developer working with Ruby, Ruby on Rails, and JavaScript/React. I also enjoy Go, TypeScript, React Native, pair-programming, and street photography.

I currently live and work in Kailua, Hawaii (on the island of Oahu).


  • Utensi, Inc. Co-founder, Lead Developer (Apr 2009 – Nov 2010)
    "This is a website for people to share and browse lists or collections of what interests them most. Items, thoughts or ideas. Utensi is not a blog, nor a social network, but a tool for such mediums." - Keston Aquino-Michaels(Co-founder)

    No longer in development, source available upon request.
  • Buoy Alarm Developer (2010 – Present)
    "Set personalized alerts based on real-time ocean conditions with Buoy Alarm. We help ocean enthusiasts act with confidence."
  • Hawaii Camera Lead Software Engineer (2010 – July 2017)
    "Hawaii Camera offers complete Production + Rental services in the Hawaiian islands and around the globe."
  • Real Geeks Full Stack Developer (July 2017 – Present)
    "Real Geeks builds powerful, simple, and easy-to-use software to help real estate professionals generate more business."


  • Jun 17, 2018
    Simple Website Text Scraping with Go and AWS Lambda

    Recently I needed to know when certain websites were updated with specific text. I decided to utilize AWS Lambda to save on cost of hosting…

  • Feb 7, 2018
    Chaining API requests with redux-thunk

    I recently came upon a simple problem where I couldn’t find an easy solution to, on the Google or SO. However, I did find the parts to the…

  • Jun 18, 2017
    A Simple React Native Redux Example

    Working on my latest React Native project, I decided to make the jump from React’s state to Redux.

  • May 18, 2017
    My 60% Keyboard w/ Arrow Keys Build Log

    A 60% Mechanical Keyboard build log featuring arrow keys.

  • May 05, 2017
    Street Photography Class

    Introduction to Street Photography is a photography class aimed toward new photographers who want to learn the basics of street photography

  • Mar 30, 2016
    KWM & Ubersicht Bottom Bar

    A simple bottom bar widget for OS X and Ubersicht.

  • Feb 27, 2016
    BitBar, Tarsnap, and Ruby

    BitBar support for automated Tarsnap backups with Ruby.

  • Feb 01, 2016
    Ruby on Rails Wrapper for react-stdio

    A simple Ruby on Rails wrapper for react-stdio.

  • Dec 06, 2014
    Automate Tarsnap in OSX with Ruby

    Automate Tarnsap backups, Tarsnap logging, and Tarsnap backup rotations for OSX, with Ruby.

  • Nov 01, 2014
    Selection Sort in Ruby

    In my version of Selection Sort in Ruby, I start with the first object in the array and compare it to the next one and so on until I find lowest value, swapping it with the first objects position. I then repeat that on the second object, and the next, until the whole list is sorted.

  • Oct 17, 2014
    Intro to Elasticsearch and Ruby on Rails, Part 1

    An introduction to Elasticsearch and Ruby on Rails 4: searching, associations, and method values.

  • Jun 18, 2013
    Ember.js Flash Messages

    This is a simple way to create flash messages that are similar to the Ruby on Rails flash messages. I took from Yehuda Katz’s answer on this Stack Overflow post, and extended it to work with the updated controllerFor/needs changes and closing on transitions.

  • Apr 20, 2013
    Bubble Sort in Ruby

    Lately during my free time I’ve been reading through sorting algorithms for fun and decided to implement several in Ruby. I’ll be posting each one in a separate article as I go through them.

  • Jan 16, 2013
    Moving from Linode to Heroku

    I recently made the move from Linode to Heroku for my personal sites. The last time I checked out Heroku was about 2 years ago, which I later dismissed because at the time it seemed like having your own VPS was the right thing to do.

  • Dec 14, 2012
    Thunderbolt External Hard Drive with Seagate STAE128 Adapter

    Yes, you can use the Seagate STAE128 Thunderbolt Adapter for Backup Plus with any SATA external 2.5” Hard Drive. You can also use the STAE121 but I’ve read that they discontinued that for the newer STAE128.

  • Nov 29, 2012
    A Polymorphic Join Table

    Not your ordinary polymorphic association, but a polymoprhic join table for Ruby on Rails.

  • Apr 15, 2012

    My co-worker, Chris, https://twitter.com/ckalima, and I hacked up a little project hours before Coachella 2012 Weekend 1 started: http://coachellagram.com. It displays, in real-time, a feed of Instagram photos taken at Coachella.

  • Oct 15, 2011
    Pagination and page cache sweepers in Rails 3

    This is how I handle page cache sweeping in Ruby on Rails 3.1 with pagination. This should work with earlier versions of Ruby on Rails.

  • Sep 24, 2011
    Setting up an Ubuntu server with Ruby 1.9.2 and Rails 3.1

    I just recently fired up a new Linode VPS, with Ubuntu 10.04 LTS, to stage a Ruby on Rails 3.1 app running Ruby 1.9.2 and I thought I would share my process. Total time took about 1 hour. I’m also going to share my deploy method using Github and Capistrano.

  • Jul 17, 2011
    Rails caching and undefined class/module

    Note: This doesn’t affect anything in production as classes are cached at load, see config/environments/production.rb: config.cache_classes = true

  • May 12, 2011
    Recurring resque and redis with cron

    Moving one of my projects over from delayed_job to resque/redis, for reasons I wont go into here, I needed to have a few of my workers on a cron job. I was initially going to use the resque-scheduler plugin, but the fact that it runs as a daemon made me a little nervous. I didn’t want to worry about watching the scheduler process for memory leaks and or crashes, and cron is a proven, reliable, scheduling service in itself.

  • Mar 06, 2011
    Ajax checkbox in Ruby on Rails 2.3

    Neat trick if you want to use Ajax on a checkbox and don’t want to create a separate function for onclick.

  • Oct 27, 2010
    Recurring delayed_job with cron

    Do you need a delayed_job job to happen at certain times or intervals?

  • Oct 25, 2010
    Facebook Connect Javascript Cookie and Ruby on Rails

    Update: I’m currently working this into a gem. Feel free to watch/use/contribute on github: http://github.com/aaronvb/fb_js_connect

  • Jul 15, 2010
    PDFKit and wkhtmltopdf without X Server, using qt

    If your PDFKit and wkhtmltopdf is working on your development server, probably in OSX, but not working on your production server, which is probably running linux, it’s because you’re missing X Server.

  • Jul 12, 2010
    Ruby Hash to Class Object and OpenStruct

    I’ve been working on a class that’s pulling information from an API and wanted to create dynamic attributes from a hash(json).

  • Mar 10, 2010
    Ruby Array to Javascript Array

    Need to pass a Ruby Array to a Javascript Array? Here’s a little gem I found a while ago that I’m reusing in my current project.

  • Mar 06, 2010
    Validations For Multiple Nested Model Forms

    Here’s a little trick I found when handling multiple nested models in a form that require validations for each model.

  • Oct 24, 2009
    Adding A Simple Search In 5 Minutes to a Ruby on Rails Site

    Prototyping a site in Ruby on Rails and need to add a simple search feature in less than 5 minutes?

  • Jul 20, 2009
    Reoccur Scheduling With Starling and Workling

    One of the main reasons I first used BackgrounDRb was for it’s ability to use a cron like schedule that could reoccur at whatever time or date I specified. It was very easy infact, by just writing the cron schedule in the config file for the worker. I was satisfied and stuck with BDRb for just that reason, until I realized how much memory BDRb was using.

  • Jul 19, 2009
    Paperclip Amazon S3 Background Upload Using Starling and Workling

    I spent several days searching for ANY information on background uploads to Amazon S3 with Paperclip and I just couldn’t find anything concrete. There were a few posts on the Paperclip Google Code board that talked about it but with no clear examples of how to do it.

You can contact me by email at   bokhoven@gmail.com.

If you wish to send me an encrypted email, please use my PGP public key.