Sunday, March 28, 2010

Being a Developer is Fun Again!

Or, "What I Did on My Summer (Fall, Winter) Vacation"

It has been seven months since my last confession. No, I didn't fall into the "no one reads my blog so screw it" mode that so many fall into after starting the next great web log. Instead, I was busy rediscovering how much fun it is to be a developer and working Insane Hours™ to create cool things!

On top of that, I discovered more of what it was like to be in a community to work with great technology to create said cool things, so the Insane Hours™ did have a lot of joy in them...

Quick Exposition

There was a time in my life, about 6 years ago, where I thought that being a developer was a bad idea. I figured all of the really interesting problems had been solved and software engineering was going to be about either assembling systems from components that were already built, or building those components in the latest fad language--the only difference being syntax. I was also told I could be outworked when 3 offshore people in a different economy were put together they were still cheaper than me and could do what I could do. I even went so far as to go into development management, project management, and eventually business analysis and stopped coding full-time for a couple years.

After realizing that I hated doing everything around development and not actually participating in the development myself--and that outsourcing was not delivering what was promised, I took a substantial pay cut and went back to coding 90% or more of my time. The first two years were fun: becoming proficient in C# and .NET (participating in the VS 2005 and SQL 2005 Beta programs), and then working on WAP and XHTML Mobile applications, including a critically acclaimed (and Apple Staff Pick) early iPhone web application. Even with all of that, it still wasn't spectacular...

Welcome to Web Development, Post Dot-Com Bust

I have been able to do more and more web development, including middle-tier services but focusing on gaining those front-end skills that I once loathed, since any lame-o that could write basic HTML tags using Microsoft Front Page could get a high-paying job back in the early days.

What I Enjoy Most

All of this crazy work the last several months has exposed me to (more than) full-time exposure to a space that is very exciting to me, and should be exciting to developers looking for something cool to work on! Here are the highlights:

  • Dynamic and Open Source Languages
    • JavaScript
    • Python
    • Ruby
    • Relearning VIM, Emacs (and why I didn't use them much in the past anyway)
  • Separation of Concerns in Web Development (a.k.a. The Death of ASP.NET Web Forms)
    • CSS/DIV-Based Layout
    • MVVM, MVP, MVC
    • Silverlight
    • Ruby on Rails
    • ASP.NET MVC
  • The Browser as Runtime Virtual Machine
    • JavaScript, jQuery, iFrames, and window.postMessage
    • Google Web Toolkit
  • Community
    • Stack Overfow
    • Scott Hanselman
    • Phil Haack
    • GOOD Podcasts: .NET Rocks, Hanselminutes, DOCTYPE, TWiT network with TWiT and TWiG and Leo Leporte (screw you, Mike Arrington!)
    • Yes, Twitter and Facebook
    • Lot's and lot's (and lot's) of phone screens, in-person interviews, and hiring of interns and junior developers!
    • Great Co-Workers/Partners
    • Terrific Wife and Kids

Overall, these things have contributed to a HUGE cognitive leap for me, probably the biggest one-year growth that I've had as a professional. Hiring interns has been very rewarding and is a good reminder that I want to hire people that are better than I was coming out of school!

I will likely expand on a few of these points in posts in the near future. In the meantime, you can check out the result of what I worked on during the summer and fall and winter of 2009-2010 with a dozen other folks at http://www.haggle.com!