For over 18 years I have been building web-based applications, primarily with Ruby. I am passionate about building FLOSS tools to help humanity accomplish more good things with fewer resources.
Dec 2022 - Present, Detroit, MI
Teaching remote, online, coding course
Dec 2022 - Present, San Jose, CA
Anywhere Patient Monitoring
Feb 2020 - Dec 2022, San Francisco, CA
Engineering, Product, & Design Recruiting. Minimized Hiring Risk. Predictable Success.
Nov 2018 - Apr 2020, San Francisco, CA
Karuna connects patients with healthcare guides through streamlined communication and automation.
Nov 2018 - Nov 2019 (6 month contract, extended), New York, NY
We are a family of insurance companies offering accumulation and protection solutions
May 2016 - Nov 2018, San Francisco, CA
Authoritative Product Adoption, Usage, And Spend Data. Get detailed insights into the cloud infrastructure of 7 million companies.
Sep 2017 - May 2018, San Francisco, CA
Bolt Threads is a material solutions company. Taking nature as our inspiration, we invent and scale cutting-edge materials that put us on a path towards a more sustainable future – and that starts now.
Jan 2016 - Feb 2017, Jakarta, Indonesia
Send professional invoices and estimates in minutes. Invoice on the spot, right when you finish the job. Spend less time on paperwork and more time doing what you love.
Apr 2014 - Apr 2016, San Francisco, CA
Personalized service and bespoke made-to-measure fashion.
Aug 2013 - Nov 2014 (9 month contract, extended), New York, NY
Provides resources and services to sustain the operations of the Episcopal Church worldwide.
Nov 2012 - Nov 2013, New York, NY
Socially curated dating through Friends of Friends
Aug 2010 - Nov 2012, New York, NY
Personal Wealth Management
Static Gemfile Analysis; A Toolkit for working with 3rd party libraries in Ruby
Unobtrusive, configurable, drop-in debug logging useful when a call stack gets unruly
Resque plugin allowing configuration of queue-time job uniqueness
[WIP-Deprecating] Resque plugin allowing configuration of run-time job uniqueness
Resque plugin allowing configuration of run-time job uniqueness
Magic hacks which allow integration of job multiple Resque plugins providing different types of job uniqueness
Faux Anonymous AR Models for testing Concerns, Observers, Decorators
ENV keys and values during testing
TableFree ActiveRecord w/ associations and nested attributes
Benchmarking instrumentation of the sort found in Rails’ view rendering
Allows reverse batching, which means it can handle many types of destructuve blocks!
Mixin providing management of error surfaces within the familiar territory of ActiveModel
(ARCHIVED) Gets the Rails flash object working with page cacheing.
Analog (gem) plugin allowing non-linear rescale of numbers
Keep the views dry with
content_for_with_default and friends!
Organize data results from raw
sql queries (as with PGresult, or Dossier) intelligently.
100 Pirates agree creating CSVs is boring. Pirates prefer lazy. Pirates use CsvPirate.
Where the rails environment for local development can be named anything it desires!
Provides a method signature that can be splatted to Rails’
content_tag_for to create labels.
A Gem For Capistrano Deployment Email Notification
State machine typos are the worst. Never again! Compatible with most state machines.
Find out if your
extend hooks are misbehaving!
Allows you to
NOTIFY events from PostgreSQL and asynchronously handle the payload
Mark specs pending or skipped for specific Ruby engine / version combinations
Properly Implement ActiveRecord Transactions
ActiveSupport Stream Silencing (
STDERR) - Without ActiveSupport
Provides an easy way to create Rack Middleware that injects things into the response body
Debugging toolbar for Rack applications implemented as middleware
Super Exception Notifier Gem/Plugin for Rails
jQuery plugin that is analogous to the config/environments files in Rails.
Yet Another jQuery Ellipsis Plugin… only better.
Change ActiveRecord associations in a structured manner
A Hashie::Mash joint to improve #snake_life for everyone
Versions are good. Versions are cool. Versions will win.
Dynamic modules define dynamic methods from array of column names
TTY User Input plugin for service_actor gem
Create Files Named Sequentially Intelligently
A regular expression matching Gitmoji symbols only
Query archive.org for book data and download some things