Things on which I am stewing

I have about an hour before the November STL ALT.NET meetup begins, so I thought I would quickly jot down some things on which I have been stewing for the last few months, not because I think you will find them particularly interesting but because writing is therapeutic and often leads to greater clarity of thought.

Who I follow on Twitter, and why

I recently spent some time organizing my twitter feed into lists and browsing Twitter’s “follow” recommendations.  Before I follow someone, I browse their current tweets to see if I am interested in what they are saying.  I like people who are focused with their content.  When I look at a person’s tweets, there is some threshold that I have–some content litmus test that I use–to determine if the bulk of what they write on Twitter is valuable enough for me to follow them.  For developers, it boils down to: how much do you tweet about development, or development-related topics?  If I glance at a Twitter stream and the bulk of what I see is not related to development, I probably won’t follow the Tweeter. (Is that even a noun?)  Another criteria I have is the quality of content people retweet or link to.   Twitter can be a tremendous place to find great articles, blog posts, open source projects, etc., but not all content is created equal, and I consider trivial links or retweets to be a form of spam.  But again, I have a personal standard for judging what is “trivial” that other people might not agree with.

I would be interested to hear from others who also screen potential Twitter follows, and what methods or standards they use.

I’m not learning Rails

I attended two Ruby conferences this year: Ruby Hoedown and Ruby Midwest.  I thoroughly enjoyed myself at both conferences, and I learned a lot.  I enjoy Ruby as a language.  We use Rake at work, and I enjoy writing Ruby code to make my build tasks easier.  Rails is a powerful framework for RAD development, and the sheer volume of helpful gems that are available for Rails is quite impressive.  The reason I am not going to learn Rails, however, has nothing to do with the quality of the Ruby language or the Rails framework or the Ruby community (which is fantastic).  After stewing for quite some time on my dissatisfaction (or rather, disinterest) in Rails development, I came to a point of self-realization.

I don’t want to learn Rails because I don’t want to write CRUD applications.  And Rails is a framework targeted specifically at CRUD developers.

Can you use Rails in a non-CRUD oriented way?  Yes–but a significant portion of Rails gems, websites, articles, discussion boards, videos, books, etc. are all CRUD-centric; only a precious few breach convention.  And most Rails developers see this strong CRUD emphasis as a feature, and indeed they should, because Rails solves many problems quite elegantly; it is the right tool for many jobs.

So, Rails, it’s not you–it’s me.

I really want to become better at domain modeling

My real passion–one that has been developing for several years in the quiet recesses of my frontal lobe–is domain modeling.  The technologies and methods to which I find myself attracted (Domain Driven Design, CQRS, etc.) are all concerned primarily with encapsulating domain logic and separating it from implementation details like persistence, the user interface, remote services, etc.  This stands in direct contrast to common CRUD methodologies which often wed, for the sake of expediency and conceptual simplicity, “domain classes” and the UI, persistence, and/or service layers.  Both models have trade-offs.  But I have been programming in a (more-or-less) CRUD-oriented way for years now, and I want to grow beyond that.

The distinction between these two modes of development became very clear to me at Ruby Midwest, where I watched Uncle Bob give a presentation on this very topic.  I realized that (from what I have seen) this discipline is fairly neglected in general business development.  Maybe it is just assumed that developers have this knowledge already.  I suspect, however, that the familiar nature of CRUD, and the quick gains it achieves in the short-term are the real justifications reasons why most projects start–and remain–CRUD-centric.

As I work through this gradual shift in my development paradigm over the next few years, I will write more about the things I discover.

As always, I’m interested in feedback.  Give me your opinions.  Really, I can take it (with scotch, on the rocks).

Careers @ StackOverflow.com

StackOverflow.com has launched a new careers initiative that connects IT professionals with potential employers.  Creating a profile is free, but search placement costs $99 annually.  In the spirit of the holiday season, however, if you register before Jan. 1st the cost is only $29 for the first year.  StackOverflow is associated with Joel Spolsky and Jeff Atwood, people I consider to be pioneers in the professional software developer community.  You can read Jeff Atwood’s official announcement on his blog.

If you’re interested, my public profile is here: http://careers.stackoverflow.com/nicholascloud.

Resume added

Hello everyone, this is my professional software development blog where I showcase myself and pimp my talents. I’ll add a proper introduction shortly, but I’m just adding pieces at a time right now, the first of which is my resume. You can find it by clicking on the “Resume” link toward the top of the page.  More will come shortly.