I have been doodling with programming, operating systems, servers, and web design since my teens (the mid-nineties). During that time I have become a proficient and disciplined programmer in a number of languages, a good enough Linux admin, and a rusty graphic designer.
My early programming was defined by C/C++, HTML, and JavaScript. Sometime around the start of 2006 I drank the Rails kool-aid, which caused me to nearly forget C++ and to shudder at the sight of PHP. As a result my focus switched from desktop applications to creating web applications with dreams of creating the next Google.
Thanks to Rails and the surrounding buzz, I've found myself creating and contributing to a number of Rails projects both professionally and "on the weekend". It has also led me to present at Indy.rb.
While I've been living and breathing Ruby since 2006, that doesn't mean that my knowledge is forgotten or static. I still retain some working knowledge of C/C++, XMPP, OpenGL, and other technologies that I spent a significant amount of time using prior to Rails.
In the past year I've filled in gaps of my knowledge of electronics by playing with Arduinos and components, understanding radio transmission and reception, and had a moment of inspiration on how digital logic components are used to build a computer.
I've also built packages to configure ArchLinux for an old tablet computer, an HP TC1100, and used Puppet to setup and configure servers while contemplating launching MealMote: a Rails app to place orders at restuarants using Twilio.
SproutBox |
Aug. 2010 — Dec. 2010 |
---|---|
Rails / JavaScript Contractor | http://www.sproutbox.com/ |
I worked on a few of SproutBox's "sprouts" during my time there:
Tools & Technology: Cucumber, rSpec, Rails, Basecamp, Devise, CanCan, Resque Scheduler, Recurrence
Agile Reasoning |
Feb. 2009 — Aug. 2009 |
---|---|
Rails Contractor | http://www.agilereasoning.com/ |
I was contracted by Agile Reasoning to jump start their Rails development and learning. While there I helped execute two projects with a test-driven process using Cucumber and Rails, along with helping a former DBA get rolling down the Rails. One of the projects is described on AR's Case Study page.
Tools & Technology: Cucumber, rSpec, Rails, Scrum Ninja, Pivotal Tracker
Bluefish Wireless Management |
July 2008 — Sept. 2008 |
---|---|
Senior Software Engineer | http://www.bluefishwireless.net/ |
I came in on a two-man project that was using Rails that could have been described as 80% done. I introduced RSpec, Selenium, RESTful design, and some Agile project management techniques to whip out a a set of features, a backlog, and a collaborative environment. Some screen shots can be found on the product's demo page.
Tools & Technology: Ruby on Rails, Capistrano, rSpec, RESTful Auth, Fetcher, Selenium, Acts as state machine
Dealerflow Corporation |
Sept. 2007 — Feb. 2008 |
---|---|
Developer / Sys Admin | http://www.dealerflow.com/ |
At Dealerflow I worked on a Rails application targeted at auto-dealerships with a handful of people with varying skill sets and specialities.
While there I:
Tools & Technology: Ruby on Rails, nginx, Monit, ejabberd, JSJaC, Capistrano, restful_authentication, will_paginate, Erlang, MySQL, Prototype, Lowpro, Scriptaculous, RSpec, javascript_test, Gentoo, Debian, SVN, Trac
GoodServer, Inc. |
Oct. 2006 — July 2007 |
---|---|
Developer / Sys Admin | http://rauschenbach.us/svnapp/index.html |
I designed and implemented a project called SVNApp, short for Subversion Appliance. I created a Ruby on Rails application to make managing Subversion repositories much easier, and then packaged it up using Gentoo to run and install from a bootable CD.
Tools & Technology: Ruby on Rails, Apache, SuSE Linux, Subversion, Swig, C, Rake, Gentoo Linux, XPlanner, Collaboa, Bind
Progressive Lawnscaping |
Summer 2005 |
---|---|
Contractor | http://www.progressivelawnscaping.com/ |
I was contracted by Andrew Shoaf to setup and theme a Drupal powered web site for a local landscaping company. I had to convert a Photoshop design into an HTML/CSS template usable with Drupal. Various Drupal modules were also setup to meet PL's specialty uses.
[David] Sanders for Congress |
|
---|---|
Webmaster |
I setup a basic site built with RefineryCMS and deployed it onto a stack that I built using Puppet, Nginx, and Varnish.
I took over web master responsibilities a few months prior to the election. This included migrating an ASP site to a small Rails CMS I wrote and migrating email using FetchMail. A mass-mailer was also created using Rails to send emails to more than 1,500 people.
I offered to put together the technology to have an online chat which was used in a small post-election chat. This initially was planned to be a Javascript and HTML interface to a Jabber chat room, but resulted in being completely database driven due to constraints and problems with jabberd 1 and my host. It also had Python script that moderated the occupants creating a Q&A environment with one speaker.
Tools & Technology: PHP, MySQL, HTML, JavaScript, Jabberd 1.4.3, Python, Jabberpy, WebClientService, class.jabber.php
Progressive Indiana, Inc. |
April 2005 — Nov. 2006 |
---|---|
Webmaster/Director |
I maintained Progressive Indiana's web site, developed new sites for specific purposes, and sat on the board of directors providing assistance and input on the group's activities until a majority of the board decided to divert their energies elsewhere.
Tools & Technology: Ruby on Rails, Drupal, MySQL, HMTL, CSS, OpenSSL, and GnuPG
GitHub |
http://github.com/sneakin/ |
---|
MC |
http://github.com/sneakin/mc/ |
---|
MC is a Minecraft client that I built over a period of a few days. It's not a sparkling clean code base, but you can almost play Minecraft from a text terminal like an old school Rogue-like RPG using an A* path finding algorithm.
DOA—the tester |
http://github.com/sneakin/doa/ |
---|
From the README: Doa provides macros that make Rails’ controller specs more understandable and drier. It provides methods to provide the context for a controller’s action, the params to be used in a given context, and the means to easily call the action using those params.
AtRest |
http://github.com/sneakin/at_rest/ |
---|
This is a RESTful wrapper around the at
daemon.
It makes use of Sinatra which made this a quick and easy project,
and can also make use of ActiveResource to piggy-back another
instance of AtRest.
MyPasswordSafe |
http://github.com/sneakin/mypasswordsafe |
---|
When I reinstalled Linux on my computer, I lost the ability to access my list of passwords that was created with Password Safe. MyPasswordSafe is the result of that need. It's a program that provides similar functionality to Password Safe, but under Linux and any other operating system Trolltech's Qt supports.
Tools & Technology: C++, Qt, qmake, make, CVS, g++, gdb, doxygen, CppUnit, Portage
OSS.SemanticGap |
http://git.oss.semanticgap.com/ • http://hg.oss.semanticgap.com/ |
---|
Warning: These may or may not be available due to my hosting arrangements.
Bitter |
http://bitter.rubyforge.org/ |
---|
This is the microblogging platform that I use at bitter.nolan.eakins.net. It's the result of being prodded to join Twitter while working for Dealerflow. Its highlights are RSS support, SMS sending and receiving via TextMarks.com and a broken XMPP bot.
Tools & Technology: Rails, TextMarks, MySQL, XMPP4R, bzr, RubyForge
XBee [lib] |
http://git.oss.semanticgap.com/xbee.git |
---|
This is a library that currently provides one of the layers needed to interface with Digi's XBee. I took a partial test-driven approach using C to implement frame decoding and partial support for sending frames. It currently lacks support for decoding and sending packets.
Tools & Technology: C, CxxTest, doxygen, lcov, Arduino
Station |
http://hg.oss.semanticgap.com/station/ |
---|
This is an incomplete, but functional and working, HTTP server written in Erlang. It was written to learn Erlang and demonstrates the aspects of OTP used to define an application. Its claim to fame may be an HTTP parser and a RESTful module API for resources.
Pong |
Fall 2003 | |
---|---|---|
Project Lead | http://git.oss.semanticgap.com/pong.git |
After I read Cleanroom Software Engineering and The Pragmatic Programmer, I wanted to try some of the approaches that were described out on a simple game. Pong was the game that I chose, while taking some liberties with the Cleanroom process. I made use of various design tools such as a specification, sequence enumeration, and a "tracer bullet". The result was my first working game of pong that included a menu system that I created, some basic AI, and time accurate collisions. And did I mention that I finished?
Tools & Technology: SDL, C++, make, g++, gdb, Adobe Photoshop, SmartDraw, CVS, cygwin
Misc. |
---|
Psi |
Aug. 2004 — Spring 2005 |
---|---|
Contributor |
http://nolan.eakins.net/taxonomy/page/or/20
http://psi.affinix.com/ |
Psi, an open source Jabber client, only supported the undocumented group-chat protocol. I offered to add support for JEP-0045, Multi-User Chat. I ended up partially implementing the full MUC spec along with bookmark storage before the core Psi team decided to switch to Qt 4 before my changes were committed. While working, I generalized multiple use cases used to change an occupant's role into a simple to use role/affiliation editor that used drag and drop.
Tools & Technology: C++, Qt, qmake, CVS, GNU arch
Pragmatic Studios |
---|
Purdue University |
2001 — 2002 |
---|---|
Freshman Engineering | West Lafayette, IN |
Greenwood Community High School |
1997 — 2001 |
---|
Last updated on May 16th, 2012