Summary of Qualifications
- Expert Ruby and Ruby on Rails developer.
- Practitioner of test-driven development, pair programming, and agile methodology.
- Interested in building distributed systems and solving large-scale challenges.
Career Highlights
- Advanced Viget's internal software development methodology to include pair-programming, iteration planning meetings, and acceptance-style ticket writing.
- Presented a talk on the fundamentals of distributed systems at Devnation Portland.
- Planned and led Hackday, a two-part Ruby meta-programming workshop in 2010 for DC area developers. This was a free, hands-on workshop that was open to the public and attended by ~25 people.
- Founded Ruby Hacknight, a monthly Ruby users group focused on bringing together beginner and experienced hackers in a friendly setting.
Experience
-
Senior Developer, Viget LabsJanuary 2008 - Present
-
Responsibilities
- Solve integration challenges including enterprise SOAP APIs, MRIS real-estate databases, and Healthcare data exchanges.
- Prioritize features, execute iterations, and refactor existing code-bases.
- Evaluate and interview candidates, as well as train and mentor Jr. developers.
- Work with company founders to identify and implement team goals, infrastructure technologies, and development methodologies.
-
Project Portfolio
-
Heycraig, Developer
Highly customized sinatra and delayed_job app that allows people to create real-time email alerts for items they are searching for on Craigslist. Uses background processes to manage bounced emails and currently has 6K individual searches and over 5K users. The project resulted in crags, an open-source Craigslist search wrapper. -
Gofivo, Lead Developer
Real-time deal app that gives local businesses fine-grained control over how and when deals are delivered to their customers. Allows users to receive sms or email alerts for offers that match custom search criteria. Launched in May 2011, the app currently services 82 businesses and over 2K users in Washington, DC. -
Bypass, Lead Developer
HTML5 mobile web app that lets you skip the concession line at a stadium venue by ordering food on your phone. The platform is comprised of a mobile ordering application, touch screen fulfillment interface, and an administration application that services over 15 stadium venues.
-
Heycraig, Developer
-
-
Developer, Matrix GroupNovember 2004 - December 2007
- Developed multi-tier application using MSSQL, NHibernate, C#, and ASP.Net in order to streamline a lengthy paper and mail-based process.
- Focused on applying design patterns and an object-oriented architecture to handle multiple core system upgrades over a 3-year period.
- Developed a central e-commerce and membership database by integrating with an in-house Python-based association management system.
-
Developer, IBTJanuary 1999 - November 2004
- Managed a web application development project for a third-party health care claims management company.
- Performed network administration duties at 9 small-to-mid-size client networks in the D.C. area.
-
Founder of Ruby Hacknight
Co-Founded a Ruby user group focused on bringing together beginner and experienced hackers in a friendly setting. Organized monthly meetups for 2 years with a user base of over 250 members. -
Hackday
Helped plan and lead a series of free 1/2 day workshops on various Ruby and Ruby on Rails topics such as Refactoring Rails Controllers, Test-Driven Development in Rails, and Ruby Meta-Programming. -
Learning Processing
Started a bi-weekly session focused on teaching artists and designers how to program using Processing.
- simple_importer: Simple API for importing from csv, tsv and xml
- crags: Search across multiple craigslist locations
- cijoel: A cijoe-like server in erlang
- duke: Manage multiple cijoe instances through a cli or web interface
- riak-node: Experimental event-based node riak client
- multilife: PureData midi sequencer for the monome driven by the game of life
- lilylife: Game of life sequencer in lily
- rmonome: Ruby monome library
- pygrack: Syntax highlighting middleware via the Unofficial Pygments API
- lwjac: light-weight jsonp comments via riak and sinatra
- js-templates-benchmark: Benchmarking Handlebars.js and Moustache.js
- sonifier: Turn a web page into beeps/glitches, sequence them with a monome
- monomap: Lily patch that allows you to control a google map with the monome
- processing: My processing sketchbook
Presentations
- Distributing Your Data: A presentation on some of the concepts behind distributed data stores. Presented at Devnation Portland.
- ART&&CODE: Presented to the staff at Viget Labs in an effort to generate interest in Processing among non-developers.
- Lily and the Monome: A presentation on visual programming languages, their purpose and their features. Presented at Developer Day DC.
- DRb, Rinda, & Mack: A small presentation on concurrency in Ruby using DRb, Rinda, and Mack.
- fixture_replacement: How to escape the bonds of using yaml fixture data.
- searchlogic: A brief introduction to searchlogic.
Writing
- Viget Labs Extend: Author posts on Ruby and Ruby on Rails topics. The latest posts can be reached here.
- sorescode.com: Publish articles on various topics both developer and personally oriented.
Education
- B.S., Computer Science, George Mason University, 2006
