It's finally time to share what's been brewing lately. As of this Friday I am unemployed! Or perhaps it's better to say that I'm now self employed.
I'm pinching myself every so often - I tend to be very conservative in making financial decisions and this is the first time in my life that I've left a stable, paying job for ... well a situation that is pretty up in the air right now. Needless to say I'm a little bit nervous about how this is all going to shake out.
I'm excited though, that I'm finally going to move in some different directions technologically. I've stagnated for a couple of years - and longer than that in some ways. I don't want to act like I haven't gained any knowledge in the last few years, but most of it has been in the area of tools and environment - emacs, screen, mc, shell scripting and generally becoming a power user of the facilities of the linux command line.
And that's all good stuff - especially as my role as Lead Developer in a small web shop (2-4 junior developers and a couple of designers during my tenure) gradually became more customer management and glorified tech and less developer. But that role isn't really the one the interests me...
I want very much to be a master craftsmen programmer. I need to sharpen the saw in a big way! And sticking with a homebrew CMS that I no longer can improve built on PHP 4 when it was shiny and new (2000) and mysql 3.23 (beta in 2000) is creating more friction, more rust, and not advancing me towards my goals.
It's time for a little independence.
I'm launching my own business - doing web development but on my terms. I'll be pimping my new business domain from this space in a little bit and keeping everybody posted on my technology choices (Python/Django - I think I'm in love) and how things progress.
I've got a lot to do on the business end of things - I'm reading books on business, taxes, and picked up some books on typography and design to try to make my UI skills a little more well rounded. I'm also looking for a new hosting company (anybody have experience with Django hosting at A Small Orange?) all this while trying to get serious about my Python skills and really grok Django. It's a lot of change for me after five years working for one company and two more years working for the company that purchased my original employer. But I feel excited about what I'm going to be doing for the first time in a long time. Updates to come... Below is the resignation letter (slightly redacted - "XYZ Corp" is obviously not the real name of my employer) that I turned in two weeks ago ...
I am writing to submit my resignation as Lead Developer at XYZ Corp, effective June 1st or at a mutually agreed upon date. It is with some regret that I am leaving XYZ's employ and I would like to take the opportunity to explain my reasons for doing so.
I have been professionally developing software for seven years. During this time my motivations for my career choice have been essentially unchanged. Being a programmer is not only my work from 8-5, it is my chosen craft. Achieving my goal of becoming a highly skilled programmer is a process that, like the development of any meaningful skill, requires time and practice. I evaluate my satisfaction with my job at least in part by whether or not I am able to write good software. While I recognize that any job will involve tasks that aren't related to the primary skills of the employee, much of my motivation to strive for excellence comes from the value I place on exercising my programming abilities. Despite this focus, I have demonstrated throughout my career and in the past two years at XYZ the willingness to shoulder those extra tasks that are a necessary part of making a company work - managing programming resources and training co-workers, meeting with customers, writing bids and proposals and giving sales pitches. I have worked many extra unpaid hours in order to accomplish all the tasks that have been set before me so that I can continue to pursue my craft.
XYZ Corp primarily values sales activity and customer interaction by its employees. These values can in theory co-exist with productive software development if accompanied by an emphasis on technical competence and a respect for the values necessary to write quality software. This is unfortunately not the case at XYZ. In the two years of my employment I have participated in approximately 100 hours of mandatory meetings for training in sales practices, developing sales leads, managing customers, and procedures that are unrelated to my job (inventory checkout, etc). During that time I have had zero hours of company required or sponsored training in technical topics that directly relate to my job. In the most recent staff meeting I attended it was once again reinforced that "sales is job number one for everybody" and the written job description of every employee now affirms that "There is never a time when this responsibility [sales] is overridden by other job tasks."
When ________ was acquired I had hopes that we would be able to synthesize our respective corporate cultures in a way that would allow XYZ Corp to continue to be an excellent ISP and technical services company and allow the _______ employees to continue to profitably pursue software development. I no longer believe that this is possible. I recognize the way that XYZ's values reinforce its core business but wholeheartedly believe that they are inimicable to the practices and values necessary to successfully engage in software development. Regretfully then, I feel it is in our mutual best interests that I resign my position with XYZ Corp.
I currently intend to begin working as an independent software developer and expect to have the opportunity to refer clients to XYZ for technical services. I hope XYZ will have opportunities to do business with me in the future when it has software development needs.
And with that I am officially on my own. I am looking for contract work and will do PHP for legacy projects. I'm not going to work too hard for a little bit, however, while I transition to Python and Django and talk over business with some local and Bay Area contacts. I blame Paul Graham and Steve Yegge and Raganwald and every code blogger who ever inspired me to get better for the uncertain state of my cash flow now. But you know what - should I ever bump into them, I'd be happy to stand a round, even if I have less money in my pocket... I'm excited! And it's going to be good.