We started doing challenges like this in our hiring process some years ago. Our challenges are open-ended so the time spent on it really is up to the applicant, but you can come up with a good solution in a few hours.
The feedback from candidates (including those we didn't hire) has been extremely good - they much prefer this to puzzles or whiteboard coding sessions.
Note that we give such challenges to candidates after they passed through a phone screen and a first interview with a pair of engineers.
Well, I wasn't thinking of specific skills for a given language/framework, but maybe more how those frameworks help you evolve along with the tech landscape.
I started my career around 15 years ago, working on a complex server system written in C++. The important skills back then were all about managing concurrency using mutexes, RW locks, events, and so forth.
Fast forward to now (with lots going on in between), and I find myself working again on server software, but this time the approach is much different: now for dealing with concurrency I'm relying on immutable state, and using Futures or actor systems to coordinate parallel work. It's been years since I've had problems with a deadlock.
Bottom line, it's true that a good programmer doesn't care about language or framework, since he can pick those up pretty fast anyway. But it's a skill that needs practising, and I've seen people neglect this and then regret it later.
I don't think age as a numerical thing is the issue here. The problem is probably more related to people that stopped learning / being interested in new stuff when they landed a stable job. So they've been using the same skill base for a long time, and suddenly they realize they are obsolete.
Sure they may have grown their skills inside that particular silo, and that is worth something, but maybe outside the whole world has taken a different direction.
Never forget that the cool tech you're learning now will be out of fashion in a few years, and completely obsolete a few years more down the road (replace years by months for any JS framework out here :p).
Hmm I'm not sure I agree with that. From my experience the period where family is most likely to be a problem with a demanding job is when kids are very young. The short nights, demanding daycare schedules, having to clean them, feed them, and provide a mostly continuous watch, etc. It's pretty gruesome. If I look around me this tend to happen around 28-30 years old.
Of course family remains #1 priority afterwards, but there is enough flexibility to go along with a demanding job (provided you like said job).
I've been working remotely for the larger part of may "young father years" so I guess this helped a lot, too.
I've been using a Pi running XBMC for about a year. It's connected to a big hard drive. I can copy stuff there from my laptop (movies, music, etc.) It works pretty well; I don't remember having to "service" it in any way since I plugged it in.
It works fine to stream stuff from YouTube, too. Shows for kids, etc. The XBMC remote on my phone is pretty handy too.
Funny how this post made me realize I've often been confronted with people wanting to implement 'agile' by imposing us to follow strict processes. I'd never seen it that way, even if the irony is pretty obvious.
(I have no knowledge of health care in the US - both countries I lived in have free health care)