Recently we've had a couple of CF developer positions open up on the government contract I'm currently working on. One has been filled but the other is still open. Incidentally, it's for a mid to senior-level CF developer in RTP, NC, and if you're interested you can read more about it here and here.
However, the real point is that I've been interviewing a number of people for these positions. Based on these interviews, it seems like there is something of a "skill gap" out there in the CF world.
On one hand is the group who would read ColdFusion-related blogs like this one in the first place. I'm talking about the people who prowl the CFC-DEV mailing list. These are people who can't wait to download the ever-growing set of ColdFusion podcasts. The people who read blogs by folks like Sean Corfield, Ray Camden, or Joe Rinehart. The people who jump head first into bleeding-edge topics like ColdSpring or Reactor. These are the kind of people just about anyone would probably want working with them. Unfortunately, this group, while growing little by little, seems to be relatively small.
Then there are the folks who might have been working with CF for awhile but haven't progressed much past the page-centric approach. They might bang out apps and get things working, but may still embed queries in their display pages. They don't seem to have embraced software development as an engineering discipline yet.
I know there is a certain amount of, shall we say, exaggeration involved when creating a resume or applying for a job. That's fine. I'll usually ask a question like "on a scale from 1 to 10, 10 being high, how would you rate your CF skill?" I want to see where this person *thinks* they are. They might say "7". OK, they have 4 years of experience with CF listed so that sounds reasonable. But then the same person will admit that they've never created a CFC. It will become apparent that they have no real understanding of what a layered application architecture is or why you'd even want to use one. Many have heard of frameworks or MVC but don't really understand what they are.
I'm not sure if it is just the sample of people I've been dealing with, but there don't seem to be very many people in the middle. My anecdotal experience on mailing lists and discussion forums seems to give weight to this perception.
This creates a problem. As our development group has kept advancing, we've embraced frameworks and design patterns and best-practices. I know these are buzzwords but I feel we've gone past the bling factor of these topics and are well on the way to a deeper understanding of their benefits and drawbacks. So bringing someone in who isn't at least somewhat familiar with these ideas is going to require a substantial ramp-up period to become productive.
So I suppose my question to people out there who might read this is two fold: First, do you agree that there is a seeming skill gap out there in the CF world? And second, do you ever worry that if you or your team become "too advanced" that you might be inadvertently creating a problem later when you need to bring new people on to build or maintain these types of applications?