You are currently browsing the tag archive for the 'reinventing' tag.
It’s now been roughly two years since I decided I’d had enough of Microsoft and went in search of greener (or at least less annoying) pastures. It seems a reasonable time to sum up how it’s been going again.
First off, it’s safe to say that I’m a Rails developer now. I dabbled in a few other things (and I’m always up for learning more), but for me, Rails has offered the right balance between pleasure of development and being able to find interesting work that puts food on the table. My hourly rate for Rails is still not what my hourly rate for .NET was, but I’m OK with that tradeoff.
With two years of Rails work under my belt, I’ve moved to the point where I’m starting to contribute to the framework. Perhaps not surprisingly to those who know my history, I’ve figured out that the best spot for me to contribute is on the documentation side (although I have had one code change accepted to core). I’m helping out with the docrails project (which is producing, among other things, the Rails Guides) and contributing the weekly “edge Rails” roundups for the Riding Rails weblog. I’ve also started writing for Rails Inside and Ruby Inside.
I also find myself playing Pied Piper and helping other people make the transition from .NET to Rails - including Dana Jones, who happens to be my wife as well as a designer and developer in her own right (so now we have two Rails developers in the office and yes, we are available for hire). I won’t say this is the career path for everyone, but it’s certainly worked for me.
All in all, I’m happy with where my career stands right now. Sure, we could be busier, and the hourly rates could be higher, but that’s always the case (and I have some other plans up my sleeve to help move in that direction). Overall, the increased happiness factor has made the transition more than worth it.
I just put the finishing touches on The Daily Grind #1305, which is scheduled to be published tomorrow morning. That disposes of my last .NET-related work, and means I’ve successfully carried out the plan I hatched a bit over a year ago of weaning myself from Microsoft. I still have a Windows machine sitting on my desk (running Windows Server 2003; I see no reason why I’ll ever install Vista anywhere), but at this point it is getting used for next-to-nothing (primarily the loose ends of my 2007 bookkeeping; starting 1/1/2008 that’s moving to one of the Macs as well).
So, at this point, my income is split between open-source programming (primarily Rails, though there’s some hint of work in Merb on the horizon), writing for Web Worker Daily, and a tiny bit of Second Life income (with some potential for more there as well). 2007’s income was good enough to do my share of keeping us alive, but that included a big chunk of advertising income from the Larkware site, which from here on out will generate precisely $0. But I feel reasonably confident that I’ll continue to find work that meets my ethical standards, and that pays well enough to keep the wolf away from the door.
Oh, and - I’m enjoying coding now much more than I was a year ago when I was writing C# code with Visual Studio. I still have plenty to learn, but I’m happy to be learning, instead of feeling like I’m constantly buried under a stream of half-baked releases. So that’s a plus too.
All in all, it’s been a very rewarding transition year.
I’m back!
Yes, well, it took somewhat longer to get moved and get a new, decent, Internet connection installed than I had planned. And then there was a long while spent getting the darned router configured correctly; I’m still not 100% happy (I prefer not to have to do port forwarding if I can help it), but I’ll live. This site probably isn’t visible to everyone yet, due to DNS propagation delays, but at least some of you lucky (?) folks can see it now.
Anyhow, I’m still here, though “here” has changed to Newburgh, Indiana (just east of Evansville). And I’m still making my living off of non-Microsoft computer alternatives, primarily Ruby on Rails development. Now that I have this soapbox again, I’ll go back to keeping track of useful links.
- Allow a different local and remote subversion repository path for Capistrano - This one came in handy for me last night, as I had to deploy past a firewall that is now enforcing just such a requirement on me (at least, I haven’t yet figured out how to get the internal NAT‘ted addresses to see the external port-forwarded address for the Subversion server). Remember to require /lib/tasks/patch_capistrano.rb in your deployment recipe if you use this. Or you could just upgrade to Capistrano 2.0, but I haven’t had time to climb that hill yet.
- Sinatra: Classy web-development dressed in a DSL - Yet another quick way to bang together those web applications.
8 months in to retooling my career, and things are still going well, if a trifle hectic:
- Both of the clients I’ve been doing Rails work for have extended their initial contracts with additional work, which strikes me as a pretty good vote of confidence.
- I’ve started building out another Rails application that we’ll be using as a springboard for a new business as my better half transitions careers herself.
- The prospect of work in Second Life remains live, though on the back burner as the prospective client is still getting corporate funding in place. I had another promising chat the other day though, and continue to hone my skills (and have fun) on that platform.
- Daily postings at Web Worker Daily are keeping me in practice as a short-order writer, as well as bringing in a bit of side income.
- Life is more chaotic than usual, with our impending move to Evansville, Indiana being set for about a month from now.
Moving is such a huge pain in the arse. Let’s wallow in links for a few minutes to avoid thinking about it.
- Webistrano - Web UI for managing Capistrano deployments, including complex scenarios, with tracking and history.
- Why not ASP.Net? - Another Microsoft refugee sums up reasons for not using the ASP.NET platform.
- RM-Install - New Rails stack installer (Mac/Linux at the moment) from FiveRuns and BitRock that looks like it covers just about everything you need to get cooking.
- The Rails Edge: Quotes and Notes - A batch of amusing conference one-liners.
- scplugin - Finder-integrated Subversion for the Mac. Haven’t tried it yet.
Whoops, I’m a bit late with my report after 7 months of transition away from Microsoft and on to freer pastures. Life, as they say, has been getting in the way.
- At this point, I pretty much do not touch the Windows box except to put together the Daily Grind and to keep up my business bookkeeping in QuickBooks. My accountant is pretty well tied to the latter. We’re planning a physical move across the country later this year, if all goes well, which will probably provide an opportunity for switching accountants and accounting packages.
- I haven’t written a line of code in anything other than Ruby (and more specifically RoR) in the last month. The two active Rails projects I have are moving along fine. I’m getting in good amounts of billable hours at a decent rate, both clients are happy, and I’m on track to complete the work on time and under budget.
- The “on time and under budget” part is a two-edged sword: it’s getting to the point where I ought to be scratching for more work again, though I also need to follow up with the existing customers to see whether they want to extend the engagements.
- More and more I know what I’m doing in RoR without having to look it up, though I still am far from true expertise in the environment. I still need to really be pounding out more code every day to get to that point. I’ve always learned computer languages by immersion with reference materials handy, though, so I’m satisfied with this state of affairs.
- We recently purchased our second island in Second Life, and rentals are starting to throw off some profit at a decent ROI. So while SL doesn’t look as likely to turn into a full-time job as it did a couple of months ago, it may yet become a reasonably profitable hobby.
Here I am, half a year into my experiment with cutting loose from Microsoft, and I think I can pronounce it a success:
- I now have two Rails consulting jobs running, and I’m as busy on that front as I want to be from now until about the end of August, which is about as far out as my consulting time has ever been assured. This doesn’t mean that I’m not looking for more, but it means that I’m feeling a comfortable cushion, and a confidence that I’ll find more work to keep the pipeline full. My Rails rate is nowhere near what my top C# rate was (or for that matter, what my top Netware rate was many years ago), but that’s OK.
- I’ve got a couple of leads on actual US-dollar paying Second Life work, which I am actively pursuing.
- I still don’t feel like I’ve reached the “expert” level with Rails yet, but at least I can get it to mostly do what I want with minimal fuss. The times when I go off the clock to research something are getting fewer and taking less time.
- My .NET skills are rapidly deteriorating; I haven’t written a line of C# or VB code in months.
- I’m moved almost entirely to the Mac for my day-to-day work, with the exception of maintaining the Larkware site.
Five months in to my twelve-month plan of getting off the Microsoft platform and things are still going reasonably well:
- I enjoyed myself at RailsConf and was pleased to discover that I actually knew more about Rails than many attendees. I made some good contacts and on the whole it was probably worth the money I spent, despite the fact that I didn’t nail down any work there and was rather ill the last couple of days.
- My first Rails app is about to go live; the client has been asking for some changes, and has slowed the deployment schedule by a couple of weeks, but they’re still happy.
- I’m getting a bit worried that more Rails work has not yet appeared on my doorstep. I have a chance to tackle another .NET-related book, but frankly at this point I’d rather not take it. My disillusionment with Microsoft is worse than ever after their recent attack on Jamie Cansdale and TestDriven.NET.
- I’m still spending plenty of time in Second Life, though that time is still definitely not generating positive cashflow yet; I’ve been chatting with a few people about potential future business opportunities there, but that’s a long shot.
- Writing for Web Worker Daily on a daily basis has been rewarding and helps fill in a bit of the income gap.
So, on the whole, I’m still feeling positive about life and work, but I still need to make more contacts and nail down some more contracts to convince myself that this move is going to work out.
Some readers who have come here via Jeff Atwood’s Coding Horror blog entry Giving Up on Microsoft have asked for some further development of my views on the issues involved. I go back and forth on whether I want to develop this stuff in public at any great length, because the most important thing for me at this point is to continue to build up my skills in new (to me) areas of software and to use those skills to make a living, not to develop a reputation as someone who pens brilliant anti-Microsoft polemics. The kids can’t eat polemics.
But it basically boils down to this: Microsoft itself is built on open intellectual property from the first three or four decades of computer science. The folks who invented computer programming for the most part didn’t worry about who owned what; algorithms and ideas and languages and interface improvements were freely shared, and everyone built on everyone else’s work. Now, if the Microsofts of the world have their way, we’ll end up with everything in fenced-off gardens: every piece of user interface, every algorithm, every data structure, will belong to someone, and will not be available for use unless you pay for it somehow. It will become literally impossible to legally write software without entering into a web of commercial cross-licensing agreements.
To me, that’s a horrifying thought. As far as I’m concerned, software is no more deserving of patent protection than mathematics is. While I personally am not willing to sign on to all of the positions of the Free Software Foundation, I do agree with Eben Moglen “that software is the embodiment of knowledge about technology, which needs to be free in the same way that mathematics is free.” The notion that software couldn’t be developed without strong intellectual property protection is demonstrably false - just look at all the software that was developed before people got it into their head that algorithms could be patented, or that you could assert nebulous unspecified rights over a particular sort of user interface innovation.
Although I am referring specifically to Microsoft here, I am well aware that they are not the only company seeking to patent basic algorithms. Nor do I intend to demonize Microsoft or to draw the inferences, popular in some circles, the because I find their corporate policies odious their employees or software must be inferior. On the contrary, I have over the years had many friends who work at Microsoft and happily used many of their products. I’ve done much of my own most productive work with Microsoft products, and though I think some of their recent innovations are poorly-designed for power users, I continue to be impressed with their ability to produce software.
But I see Microsoft leading the charge into a world where the independent software developer ceases to exist, because it will not be possible to develop software without an intellectual property lawyer at your elbow. And I don’t want to live in that world. As a result, I choose to cut off what tiny bit I can of the fuel that keeps Microsoft going: the licensing dollars I pay for Microsoft software, and those that my clients pay for deploying the software that I write, as well as my own implied moral support for the company’s policies. It’s not a whole lot, probably not more than a few million bucks over the remaining course of my career, but it’s something.
Four months into the year of giving up on Microsoft and here’s where things stand…
- I’m actively working on my first Rails application for a paying client. It’s not gone live yet, but we’re on track to deploy June 1. I’ve cut my rate substantially in recognition that this is a learning experience for all concerned; fortunately, it’s a client who I’ve got a good history of mutual respect with.
- So far freelance work is keeping food on the table, between the one Rails app and various bits of writing. I’d like to get to where I’m doing more coding and less writing.
- Second Life is the major distraction in my first life. I’m sniffing around some business opportunities there but nothing has gelled.
- Traffic here at A Fresh Cup continues to rise roughly linearly every month. Thanks to all readers & commenters.
- Traffic over at Larkware hasn’t started dropping off yet, but ad sales are declining and I’m clearly starting to lose touch with what Microsoft is up to. My self-imposed moratorium on covering anything after .NET 2.0 has made most of the news out of MIX this week irrelevant, for example. I just don’t have time to keep up with their latest and reinvent my own career.
- Looking forward to being at RailsConf in a couple of weeks. I’ll be aggressively looking for more consulting opportunities there.
- I did buy a Mac Book Pro to take to RailsConf with me, so the financial picture for the year as a whole is looking even less great. But then, that’s not unexpected. As I’ve said all along, I’m willing to take a hit this year to get myself back on the right track.
3 months into the 12-month clock for reinventing my career, so it’s time to take stock again:
- I quit my full-time .NET consulting job, effective last Friday. This was 9 months sooner than originally planned, but the time was right for a lot of reasons. This means that I’m definitely interested in talking to people who want to hire a freelancer (though I’m actually fairly busy for the month of April already). While I expect to take on some more .NET work to hold things together, my first preference is going to go to Rails work if I can find any, even if that means substantially discounting my rate.
- I didn’t do a lot of Rails work in March, mainly through lack of time (which is one reason for the sudden change of job status). I did find time to explore some of the interfaces between Rails code and LSL, the scripting language used in Second Life, which has been fun if not terribly instructive or lucrative. This has also led me to the Rubyists of Second Life group, which may end up being my local user’s group (for some value of “local”).
- I’m now writing daily pieces for Web Worker Daily . This isn’t going to be money to live on, and I don’t expect to be a full-time writer, but it’s good fill-in money and I enjoy having the new direction to stretch in. Good new set of contacts, too.
- Traffic on this blog is still going up, roughly linearly by month. That’s good, though I still need to figure out what all the doubling in the XML feed is about.
- I’ll definitely be trolling for business at RailsConf. During April I need to figure out what to do about a Mac Book (Pro?) to take along with me. At this point, roughly 75% of my daily desktop work is now on the Mac, so bringing a Windows laptop along isn’t going to cut it.
Two months into the year. That’s 1/6 of the time I have allotted myself for throwing out the old career and bringing in the new. Time to take stock again.
I continue to get more comfortable working in Rails, and have put up several sites using this framework, though nothing too spectacular and all works in progress (links over in the sidebar). But given that the best way to learn a new language is to write code, and I’m writing code every night, I’m happy with that. I’m also doing lots of reading. I’m sure there are plenty more “aha!” moments ahead of me, and I would hardly claim to be fluent in Rails yet, but the pieces are fitting together for me, and with books at my side I can usually make it do what I want with some research time.
I need to somehow find more reading time; there are several books that I want to finish (including Programming Ruby and Mac OS X: The Missing Manual that I just haven’t had time for. Part of the problem is that these books are too darned big to read in the bath.
This blog has doubled in pageviews over the last month (which is good) despite the continued problem with doubles in the feed (which is bad). The latter, I think, is down to me making the domain available both with and without www, but I’ve not yet figured out how to solve the problem, even though I’ve made several abortive attempts to do so with both the Mephisto code and with Apache. I’ve noticed the same problem with some other Mephisto blogs in my own feed list. I haven’t given up yet. Anyhow, I’ll be happy if readership keeps going up at this rate; hopefully other people are finding the linky-posts useful.
As I’ve mentioned before, I’m going to RailsConf in May. My interim goal at this point is to feel confident enough of my Rails code by then that I can actually sniff around for some project involvement without feeling like an utter imposter.
One month into 2007 I seem to have settled on Rails as my new direction of choice, at least for the time being. The way that Rails applications are put together appeals to me and it seems like a good fit for the size of application that I enjoy building. On a more pragmatic level, it also has good buzz and the change of getting work appears, at least in the medium run, to be reasonable (which puts it ahead of some potentially technically superior alternatives for my own particular circumstances).
At this point, though I can hardly claim to be fluent in Rails, I’ve at least taken a broad survey of the whole framework. I’m reasonably comfortable banging out basic sites that hook up databases to Web pages, and I have some sense of which bits do what. I can find what I’m looking for in the documentation and books with a minimum for fuss.
The next month or so goes for refining those skills, going into a bit more depth, and really digging into Ruby, I think. I need to get more than a passing acquaintance with the underlying language, and learn more Rails simply by using it more. I’ll probably try to write an article or two as well - that’s one of the best ways I know to develop my own understanding. Stay tuned.
With the arrival of the new monitor the hardware buying binge is complete. Now I’ve settled in for some more serious development. I spent a couple of hours yesterday working with Rails on the Mac, poking along at my first “real” (as opposed to tutorial) application. I’m not ready to announce it yet, but hopefully I’ll have something to show off within a week or two.
Rails development continues to agree with me. Lots to learn but the pieces fit together in a sensible manner.
I’m proceeding up the Mac learning curve reasonably well, with pauses to try to hunt down tools and utilities I need. There’s not nearly as many choices on the Mac side as on the Windows side, but I knew that going in. Perhaps that will translate to market opportunity for me at some point.
A reader wrote to ask how many hours a day my personal “20% time” comes to. I’ve been allocating not less than an hour a day to this effort. Now that I have the dev environment set up, I expect to up that to two hours most days. As the year goes on and I transition into whatever my new career turns out to be, hopefully that will grow.
Well, I’ve done several things lately to make progress on my quest to invent a new career not involving Microsoft:
- I let my current boss know that I expected not to be with the company past early 2008.
- I spent a bundle of money on a new Mac (which should be here on Monday).
- I’ve let the publishers I’ve been writing articles for know that I’m not interested in continuing to tackle Microsoft-related topics. This means an immediate income drop, but on the flipside it frees up some time.
- I’ve started setting aside a solid, real, uninterrupted hour a day to work on new stuff - my equivalent of Google’s “20% time,” more or less. The past few days this time has gone to brainstorming on a few ideas for relatively small applications that I can (I hope) build with Ruby on Rails as a way to get some hands-on time in that environment. Next week I plan to pick one and start building.
To sum it up, I’ve been slowly snipping away my safety net, in the hopes of forcing myself into a new world. With any luck, this strategy will work.
An unexamined life is not worth living. - Socrates
Ran across a blog entry today from one of the Ubuntu maintainers, Features vs. Freedom . The particular issue he’s wrestling with (whether to include binary 3D video drivers with a free software distribution) is of mild interest to me, but there is a larger meta-issue that ties back to the whole reason that I’m writing here at A Fresh Cup. Over the past several years I have become increasingly convinced that our software choices have consequences, and that (sadly) most developers never spend even a moment thinking about these consequences.
Choosing to use Microsoft software as the basis for my work, whatever else it may do, contributes to the growth and health of Microsoft. It supplies funds for Microsoft’s continued initiatives in the area of intellectual property and DRM. And it seems to me that the ultimate consequence of these initiatives will be to limit my own freedom of action, both as a software user and a software developer. I realize that reasonable people can (and do) disagree on these points, but that’s where it nets out for me.
Having come to that conclusion, the question is what I can and should do about it. In my younger days, I wouldn’t have recognized any distinction between “can” and “should,” but with age comes either wisdom or exhaustion. I know what my ethics tell me I should do (opt out of using and supporting Microsoft software). But I know that to do this, cold turkey, would have immediate bad consequences (such as an inability to put food on the table for my children). Hence the explorations that you’re seeing in this blog. The hope is that I can find some way to if not eliminate, at least minimize, the contradictions between the “can” and the “should” in this area of my life, and so increase my happiness by bringing my actions into closer touch with my ethics.
Given that I would like to wean myself (for essentially political reasons) from my current dependency on Microsoft software, the question becomes, what next? Over the last quarter century I’ve done quite a few things in the computer universe, so I have lots of directions to think about.
One thing I can rule out immediately is a lateral move to Java or Delphi or whatever other programming language within the Windows ecosystem. That doesn’t get at the heart of my issues; if I’m going to do this, I want to leave behind not just the one part of the Microsoft universe, but, to the greatest extent possible, all of it. That pretty much means finding a way to make a living with Mac or Linux (or leaving computers entirely).
Hardware
I’ve been in white box hardware sales before. It requires a fair amount of capital, and the profit margins stink. I don’t want to go there again.
Sales, Management, Administration…
Been there, done that. I have plenty of sales and managerial experience, both within and without the computer industry, in my background. I suspect that if I tried I could land such a job again. But this isn’t a good fit with homeschooling our kids, working at home, or generally staying sane.
Training
Yup, been there done that too. And I’m never going to do that much travel again.
MicroISV
The siren song of becoming a MicroISV, writing, and selling my own software product is always there. But realistically, I doubt this is practical. Even on the Windows platform it’s a crapshoot. On Linux, no one pays for software, and on Mac, the potential sales numbers are lower than on Windows. I might do some software writing as self-promotion but I don’t see it as a cash cow.
Writing
Put this one in the self-promotion category too. Writing computer books hasn’t been a viable career for several years. Articles bring in some extra cash but they don’t pay the rent.
Web Sites
There’s some potential here. The Larkware site brings in a decent second income from advertising. Potentially I could replicate that in a new realm; I know how to digest and present information.
Consulting
Always the fallback…I suspect there will always be Web sites or line of business apps to be written, and some of those can be written on non-Windows platforms (especially when we’re talking about Web delivery). I wouldn’t get rich doing this, but I wouldn’t starve either.
No Conclusion…yet
Decisions, decisions…one thing I do know, though: if I don’t put time into Vista/Office 2007/.NET 3.0/”Orcas” then my current income streams will dry up within 2 or 3 years. So there’s a definite time limit to figuring this out.
So, after on and off effort for four days, I’ve managed to get this site up and running. Installing ozimodo and playing with Rails on a Ubuntu client was easy, and I’m impressed with my initial spelunking in Rails.
Deploying the solution to a Ubuntu server was a bitch. I persevered, and got through all the problems, but I definitely would have given up if this was my first computing experience. All the information I needed was somewhere, but some of it was in one place, some in another, bits and pieces were pulled from my own experience, and so on. It seems to me that there are some opportunities here to make this part of the deal easier.
Of course, opportunities don’t necessarily equate to market opportunities.
The last time I completely walked off a job and started over with a new career was around 1992, when I shut down the publishing business I’d built around FACTSHEET FIVE. After a while I ended up writing software, and writing about software, for a living. I’ve spent the bulk of the last fifteen years developing some amount of reputation and expertise in the Microsoft universe, having published dozens of books and hundreds of articles, worked as an editor and consultant, written (as a subcontractor) parts of various Microsoft products, and so on. I’m also the editor of the Larkware site, which tracks news in the Microsoft software world for developers.
Unfortunately, over that time I’ve also come to the conclusion that, even though it is staffed largely by smart and ethical people, Microsoft itself represents a grave threat to the future of software development through its increasing inclination to stifle competition through legal shenanigans. Its recent attempt to claim that no one can implement a user interface that looks anything like the Office 2007 ribbon without licensing some nebulous piece of intellectual property represents a new low in this regard.
I’m in a bit of a bind. Unlike fifteen years ago, I’ve got a family, including four kids, and I can’t afford to just walk out on a career that brings in good money. But I rather desperately want to find an alternative. This blog will record some of my explorations as I hunt around in other corners of the software world, trying to decide if there’s a viable business plan for me that can include weaning myself off of Microsoft software.

