It still amazes and confuses me that only the minority of tech companies are actually focussed on how they can provide a culture and environment that developers truly want to work in. They look at recruitment techniques that completely miss the point and misunderstand what attracts (and keeps) truly great developers to an organization.
Free food is a great perk but it's not what motivates passionate developers. Nor does a fussball table or a hammock. This does not make a culture.
Autonomy is a huge part of this for me. The what, when and how of the work we do and the ability to be included in its direction. This goes against the typical top-down approach that is traditional in an organization. The direction of a software product typically comes from the learnings of the business. Software development takes more than rudamentary cognitive skill. The ability to innovate is why so many developers have dreams of running their own startup. We should be harnessing that and empowering people to do that for the business.
The beliefs, the values and the way the development team work are all factors that affect the culture. This breaks down when the ability to influence is stopped/blocked without good reason.
At Opentable we (not me) have done a lot to actively focus on creating a great environment and culture to be a part of. We do "20% time" which gives us the freedom to explore new ideas or technologies in work time. When I tell people this they usually respond with "that will never happen where I work". The thought being that this is mess-about time. Until I joined the company and saw how this works I think I thought the same. The important thing to remember is that when you hire like-minded, passionate developers, the type of developers who enjoy writing software outside of work, this just doesn't happen. In fact, what does happen is that people explore, they innovate and often they fix issues.
Passion breeds passion
Take a look at the top companies that developers would love to work for; Etsy, Github, Facebook, Google etc. How do they know they want to work for them? These companies do a great job of exposing what they do. They open source their work. They blog about their work. They speak at conferences. This isn't by luck. It's a conscious effort because they know that developers want to work with other passionate developers. It's great when you interview someone who already knows the work you do and how you operate.
I still think the standard recruitment process is broken. It's laborious, it's costly and it's inefficient. For me, nothing beats a referral. Companies will pay through the nose for an external recuitment agency. Referral bonuses are a no brainer.
Organic recruitment occurs when you expose the work you do (via the methods mentioned above). When you do that then great developers naturally want to work for you.