There has been a lot of discussion around the excellent question Will high reputation in Stack Overflow help to get a good job?. I immediately agreed with JoshK that basically said No (I'll will explain why), but Joel chimed in with lot of convincing facts which made me upvote him as well.My question is what other skills (other than being a technical genius) do you require from a developer? To get the job, or to keep it.I believe being a genius is far from being enough. I have met many technical geniuses in various companies I have worked for that impressed me a lot, but sadly in lot of cases, they were simply fired after a few months or put in ivory towers (mainly because of internal mutiny from other developers). I've seen many in personal distress as a result of this which I understand. That's why I'm a big fan of non-technical questions for technical positions. I like to know how the candidate will interact with others (including non-technical employees), how much consideration he will have for the business, if he will work for the desired outcome, and so on.I would like to know what you require from your developers and WHY it's important (after all, you hire someone to write code, don't you? Why would you want him to be assertive?). Ideally, I'd like you to come up with an example question you would ask during interviews in support of your answer.
When being a technical genius is not enough to be a successful developer?
skills
Excellent communication skills.  If your colleagues cannot read your brain directly, you will need to be able to tell them what you think.  Preferrably both verbally and written.EDIT:  A way to see them at interview time may be by asking them what their favorite framework for doing X is, and then say that they need to work on a project where X could be used, but it is a political decision to use technology Y (which is clearly older and has some limitations that X solves).If this ends up in an argument about why the political decision is wrong, you have a strong indication of this person not doing well with pragmatic decisions.