I'm a software developer - I've been working in the software business for about 15 years and have developed products for a prestigious customer-base.I'm unhappy with recruitment agencies at the moment - some of it is the fault of the agencies, some the employers... you see, you guys don't really know how to hire a good developer - you're always interested in "have you used Microsoft's completely unrevolutionary version - released this week? ... the blue one?"...Being a software developer in this position it's like the world's gone mad...Here's what you need to do to get a good developer:1, Get someone with experience in the right language - forget this weeks flavor... Microsoft (for example) don't reinvent the wheel every five minutes... in my particular case, discounting re-branding and speeding up the process no-end, about a dozen lines of code have changed since 1997!! And this is VB to VB.Net I'm talking about... (didn't know that I bet - who's educating who here?)2. Do something really revolutionary and ask about programming principles.If I wanted to know how good a candidate was I'd ask them, what do you know about: - Defensive programming - DRY (Don't Repeat Yourself) - Abstraction - KISS (Keep it Simple Stupid) - SoC (Separation of Concerns) - Object-Orientation - Commenting - Code Reuse - POLA (Principle of Least Astonishment) - Inheritance - Extensibility - Backward compatibility - Normalisation - Database IndexingIf you put some time aside, as a layman, and read about those you could get a pretty decent grasp of most of them quite quickly. They are universal and apply to any software development language (I'll put some links at the end).I've worked with dozens of software developers who used the latest technologies last week - at least half of them were very poor indeed! Costing their employers a lot of money with practices that make software unscalable and unsupportable!Don't you think it would be much more in your clients best interests to build houses that don't rot or fall down, than to waste time worrying about local dialect?! If your clients concentrated on asking about the things I listed they'd definitely end up with a higher-caliber of developer![url]http://en.wikipedia.org/wiki/Defensive_programming[/url][url]http://en.wikipedia.org/wiki/Don't_repeat_yourself[/url][url]http://en.wikipedia.org/wiki/Abstraction_principle_(programming)[/url][url]http://en.wikipedia.org/wiki/KISS_principle[/url][url]http://en.wikipedia.org/wiki/Separation_of_concerns[/url][url]http://en.wikipedia.org/wiki/Object-orientation_(disambiguation)[/url][url]http://en.wikipedia.org/wiki/Comment_(computer_programming)[/url][url]http://en.wikipedia.org/wiki/Code_reuse[/url][url]http://en.wikipedia.org/wiki/Principle_of_least_astonishment[/url][url]http://en.wikipedia.org/wiki/Inheritance_(computer_science)[/url][url]http://en.wikipedia.org/wiki/Extensibility[/url][url]http://en.wikipedia.org/wiki/Backward_compatibility[/url][url]http://en.wikipedia.org/wiki/Database_normalization[/url][url]http://en.wikipedia.org/wiki/Database_index[/url]