Update: fixed minor typo.
Keith just
outed me, so I'd better come clean. :)
I've been an independent contractor for about the last six years. I love it. One of the great things about it is the flexibility: my schedule is flexible, my working arrangements are flexible, and indeed my very career track is flexible. Of course, all that flexibility comes with a price - I have to self-direct, and sometimes you wind up on the bench for a bit. But I don't mind those.
One of the very positive outcomes of all this flexibility has been the ability to alternate between what I think of as an "academic" track, and what I think of as a "practical" track. In my "academic" mode, I spend a lot of time sitting around and looking through docs, playing with betas, and generally examining all the corners of a particular piece of technology. In my "practical" mode, I help my clients build real systems.
I can't imagine doing just one or the other. If I were purely academic, then there are all sorts of things that I'd never be forced to do, like write a real build script, fix really difficult bugs, or, generally, ship a product. And if I were purely practical, then I'd almost always be constrained by time pressure to only learn the parts of technology that I actually use, as they became needed. That sort of need-driven education tends to leave big holes in your knowledge, and you never know when the stuff you don't know might come in handy.
Teaching for DevelopMentor was a great way to live the academic life. The fear induced by the thought of standing in front of an audience and not knowing what the hell you're talking about is an excellent motivator. I learned tons of things I never would have, simply because I wanted to know the answer in case anyone ever asked me.
At the same time, not being forced to apply all that theoretical knowledge means that you can't fully appreciate it. You can think all you want about things like the performance of the .NET garbage collector, but there's no substitute for experience to tell you that in the real world you hardly ever care about it.
For roughly the last three years, I've been in a almost purely practical mode, and it's been great. I've worked on a bunch of open source projects (most notably
FlexWiki), contributed to the
MSDN2 rewrite, and helped my client
Integic with a massive .NET port of their workflow product. It has all been highly educational. But the pendulum has swung, and now I miss the academic side of things, particularly now that we're so close to the release of the next version of .NET. So I'm making a change.
I'm proud to announce that I will once again be taking on the role of itinerant instructor, this time with
Pluralsight. It's a first-rate organization, and I'm really looking forward to working with these guys again. I'm not entirely sure what class(es) I'll be teaching yet, but I'm definitely eager to get to it - diving deep into the details of something and then sharing it with my students.
The timing on this is pretty good. I'm ramping down with my existing client as their ship date approaches, so it's a good time to change gears. Which is where you (and the subtitle of this post) come in: I'm also looking for work. I'll be teaching, of course, but that's only a fraction of my time, and as I explained, I don't think I can be the best instructor I can be unless I'm continually applying the knowledge I've gained in the real world.
Here's the part where I shamelessly promote myself (you can skip to the last paragraph if you find this sort of thing embarrassing):
I graduated with a simultaneous BS/MS in 1995 from MIT. I've got about five years experience working with .NET. I consider my specialty to be the design and implementation of
large-scale distributed systems. I'm quite good with C#. I know my way around XML, including web services technologies and XSLT. I've written for
MSDN Magazine. I'm a mean debugger. I learn very quickly. I helped rewrite a significant chunk of
the fourth biggest website on the planet. I've spoken at conferences around the world on topics from Visual Studio to Direct3D. You can find my resume
here.
So, if you've got a project you think I could help with, please do
contact me. And if not, hopefully I'll see you in class!
Like I said, I love being an independent contractor; it makes for interesting transitions. We'll see where this set takes me next!