I am a barbarian - a wanderer, on the fringes of civilization.

By this, I mean that I am something of an outsider within my profession. In an age of apprenticeships, mentoring, and consulting companies that practice pairing and code reviews, I’m an outlier - for I’m entirely self-taught, and have spent most of my career as the sole programmer at small companies.

I left school to take a job as sysadmin at an ISP. Within a year, I received an offer to work as a contract programmer. Sent to a very large corporation, I was surrounded by developers - yet, in a way, solitary, as I was the only Unix person on a team of IBM mainframe programmers. My job was to help these EDI specialists adapt to the Digital Unix environment to which the company was transitioning. As the sole Unix person in the department, I had to figure everything out myself, assisted only by books. (No Google yet - this was the mid-nineties).

The same consulting company later sent me to Ameritech, the incumbent telephone company for Illinois and much of the Midwest. At first, I was the only programmer/sysadmin on the small team than ran www.Ameritech.com. Later, we added others, especially after the company was merged into SBC - but there was never a culture of learning or continuous improvement. Training was something one went to for three days once a year, and as likely as not it would be about the processes and procedures (waterfall process… very, very, waterfall) rather than on any technical topic.

Frustrated by the bureaucracy and the glacial pace, I left in 2004 to work for a small online retailer - ostrich.com - where I was the sole programmer and sysadmin. I took occasional freelance projects as well, always for small companies, always as the solitary developer.

I enjoyed it. I had freedom to choose my own tools and build things my way. I also liked the idea that “The Buck Stops Here” - I had to find solutions on my own, with no one to fall back on, no one to call on even in emergencies. I was proud to support small business: I was working for people who could never afford the high prices that the established consulting companies charge; I was somewhere where I could make a difference, rather than being an interchangeable part in the corporate machine, toiling for the benefit of stockholders I’d never meet.

But at the end of 2010 I had to rethink my career, when my primary employer of the past six years suddenly died, and his company shut down.

Having mainly worked in Perl for the better part of the decade, I now had a chance to start over. I chose Ruby on Rails, then at version 2, and soon discovered a strong community based around the language and framework.

And there I found a drastically different culture than I had previously been exposed to. It’s a culture of learning, of self-improvement, of teaching, of mentors and apprentices, of best practices, of craftsmanship, strongly held opinions and vigorous debate.

A civilization.

And I am but a barbarian, having wandered in from the wilderness. I’ve managed to survive and prosper thus far, but I need to learn the ways of civilized people if I want to progress any further.

I’m still at a small company, still the only developer, maintaining the servers, the public web site, and an astounding number of admin and order automation apps. I still have to figure everything out on my own, and I make plenty of mistakes.

As a barbarian, when I learned a skill I kept it to myself. But as a civilized programmer, part of a community, I must share what I learn - and for that, I’ve created this blog.

I hope you find something of value within.