Overview

Summary

I have been doodling with programming, operating systems, servers, and web design since the mid-nineties. During that time I have become a proficient and disciplined programmer in a handful of languages, a capable [Gentoo] Linux admin, and a rusty graphic designer.

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 came back to creating web applications and creating the next Google. Thanks to Rails and the surrounding buzz, I've found myself creating, contributing to the creation of, and/or setting up Linux production environments for brand new Rails applications.

While I've been living and breathing lots of Ruby these last two years, 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 signifigant amount of time using prior to Rails. Recently I've begun exploring Erlang and creating circuits based around an Arduino.

Objective

Ideally to use Ruby, Rails, Erlang, Linux, and/or XMPP while working with a genuine agile team composed of people who are great at what they do.

Though I would be open to flipping bits in raw machine code if the price is right and if I get to keep the hex-decoder glasses.

Internet Work

Dealerflow Corporation.

Sept. 2007 — Feb. 2008
Developer / Sys Admin http://www.dealerflow.com/

At Dealerflow I worked on a Rails application targetted at auto-dealerships with a handful of people with varying skill sets and specialities in an environment of ever shifting priorities.

While there I:

  • Helped integrate ejabberd and Rails by creating Rake and Capistrano tasks to control and deploy ejabberd, devising a scheme of temporary passwords to allow JSJaC to securely survive page refreshes, and created the RESTful controllers that allow ejabberd to log presence and messages to Rails.
  • Spent my final days reviewing over 100 pages of specifications provided by an SMS aggregator. I reduced them to nearly two dozen stories allowing me to estimate when we would be able to begin sailing through carrier testing. My hope was to allow SMS to be used as ejabberd's offline channel to allow people to IM even when they weren't at a computer.
  • Helped administer a handful of systems running on one physical machine and at two prominient VPS hosts. During that time I migrated our development server from an aging Debian to Gentoo which was followed much later by a migration from a physical machine to a slice. During the latter migration I made use of mod_redirect to provide zero downtime for our SVN and Trac instances while the DNS changes propagated.
  • Attended two Pragmatic Studios, one for Rails and another on Erlang.

Tools & Technology: Capistrano, Debian, Ejabberd, Erlang, Gentoo, JSJaC, Javascript_test, Lowpro, Monit, MySQL, Nginx, Prototype, RSpec, Rails, Restful_authentication, SVN, Scriptaculous, Trac, Will_paginate

GoodServer, Inc.

Oct. 2006 — July 2007
Developer / Sys Admin http://www.goodserver.com/

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 to run and install from a bootable CD.

  • Created a Rails application that used Subversion's Ruby bindings to display changelogs; interacted with the user and group shell utilities to manage the systems users and groups; and reversed engineered ActiveResource's protocol so it could be used to interface with a Lucene based indexing service.
  • Used Rake to control a Gentoo Linux build to produce an installable LiveCD that contained all the parts of the application, all setup, and ready to go including an unoptimized Rails based installer.
  • Setup and maintained two servers and a workstation using SuSE Linux. The setup employed RAID mirroring, DNS, uninteruptable power supplies, and an ISDN connection.

Tools & Technology: Apache, Bind, C, Collaboa, Gentoo Linux, Rake, Ruby on Rails, SuSE Linux, Subversion, Swig, VMWare, XPlanner

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.

Volunteer Work

Progressive Indiana, Inc.

April 2005 — Nov. 2006
Webmaster/Director http://www.progressiveindiana.org/

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.

  • My work on the primary web site included posting events and collecting news items which resulted in approximately 1,000 visitors per month at its height, around 90 registered users, and attracted the attention of Senator Evan Bayh.
  • I developed a web site that was used to accept donations for a full page ad in the Indianapolis Star. The site featured a barometer to track the campaign's progress, and made use of an idea of viral marketing by making it easy for a donor to tell their friends about the campaign. The site can still be seen at https://secure.progressiveindiana.org/.

Tools & Technology: Ruby on Rails, Drupal, MySQL, HMTL, CSS, OpenSSL, and GnuPG

[David] Sanders for Congress

Sept. — Nov. 2004
June 2006 — present
Webmaster/Mass mailer

During the last few months of the 2006 campaign I became David Sanders' web master and mass mailer. While doing this I migrated an ASP based site to a Linux host using wget, created a half-baked Rails CMS to manage new content, and put together a mass emailer using Rails and ActionMailer to email over 2,000 people.

Prior to 2006, I offered to put together the technology to have an online chat which was used in a small post-election chat in 2004. This was initially planned to be a Javascript and HTML interface to a Jabber chat room using a PHP script and a persistent HTTP connection using class.jabber.php, but resulted in being completely database driven due to constraints and problems with jabberd 1 and my host at the time..

Tools & Technology: PHP, MySQL, HTML, JavaScript, Jabberd 1.4.3, Python, Jabberpy, WebClientService, class.jabber.php

Projects & Open Source

Bitter

http://bitter.rubyforge.org/
Sole user/promoter/developer December 2007 — present

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

Psi

http://nolan.eakins.net/taxonomy/page/or/20
http://psi.affinix.com/
Prospective Contributor Aug. 2004 — Spring 2005

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

MyPasswordSafe

http://www.semanticgap.com/myps/
Project Lead Dec. 2003 — Sometime in 2004
Maintaining … — Present

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

Pong

http://www.semanticgap.com/pong/
Creator Fall 2003

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

Various Web Sites

  • http://nolan.eakins.net/: This is my blog which currently receives nearly 1,000 views of the front page and about 3,000 requests for the RSS feed per week. It contains samples of my writing, especially in the essays section which contains a number of Letters to the Editor of the Daily Journal that I've written. The whole site is powered by Drupal, an open-source content management system.
  • http://www.semanticgap.com/: This was created early in 2004 and needs more content and a redesign. The highlight is that CSS is used to lay everything out on the page, and that it has managed to received on average 6,000 page requests per month.
  • http://www.inside3d.com/k3d/: I created this in high school, and haven't maintained it. It's a good reflection of my graphic design abilities along with my early programming efforts and aspirations.

Education

Pragmatic Studios

  • Ruby on Rails: Denver, CO, September 2007
  • Erlang: Chicago, IL, Feburary 2008

Purdue University

2001 — 2002
Freshman Engineering West Lafayette, IN
  • Activities: Purdue Linux User's Group, Purdue ACLU, ACM

Greenwood Community High School

1997 — 2001
Greenwood, IN
  • Core 40 Diploma with a 3.635 (3.92 weighted) GPA
  • Graduated 15th out of 250
  • Senior year curriculum: Calculus, Advanced Environmental Science, Advanced 2d Art, English, Economics, Government, Journalism (Web page), and Business Management.
  • Entry in Who's Who: Art Club; Drama Club; Math Team; Quill & Scroll; Honor Roll; Perfect Attendance Award; Pres. Academic Fitness Award; School Webpage Designer (3 yrs.); 2nd Place Science & Art Contest
  • Maintained and developed the school's web site for three years. The site was a basic HTML site developed using Adobe GoLive, Photoshop, and text editors without any server side scripting, which I wanted to use during my final year.