5 ms·
I work for ThoughtWorks and here is how they hire: http://www.mehdi-khalili.com/joining-thoughtworks http://www.mehdi-khalili.com/joining-thoughtworks It's a pr
by MehdiKhalili 13y ago
I work for ThoughtWorks and here is how they hire: http://www.mehdi-khalili.com/joining-thoughtworks http://www.mehdi-khalili.com/joining-thoughtworks It's a pretty involved process but the result is relatively flawless.
Like you I love to look at code and IMO that's where OSS (Open Source Software) shines because people contribute to OSS when they feel passionate; so that should be a good indicator. I also get candidates to submit coding puzzles and later get them to change it while I am looking over their shoulders!
RE "I need you to be able to at least do an acceptable job regardless" Until recently I thought I can always write awesome code; but it's not until we're brought down to our knees that we appreciate how personal issues could impact everything in our lives.
- NateDad 13y agoNote that I rather specifically said "acceptable" code. That means "not good, but not terrible". Acceptable can be mediocre. But it shouldn't ever be bad.
- chris_wot 13y agoWell that's vague. Defined "acceptable"?
- NateDad 13y agoI did - mediocre. Neither excellent nor terrible.
- chris_wot 13y agoYou didn't. I'm looking for specific examples of what you consider "mediocre" code. I'd love to be able to understand what you this is to you - given it is so subjective.
- NateDad 13y agoUpon thinking about it... I think it's actually what I said to start - neither good nor terrible. Defining good and terrible code is easier than defining mediocre code, so we can do it by process of elimination. Mediocre code isn't terrible, but it's not good code either. So, what is good code? Testable and well-tested, modular, isolated, easy to read, robust, performant... What is terrible code? Well, the opposite of that, but generally there are some key indicators - code that breaks badly in edge cases, code that is impossible to read, code that entangles itself in a lot of other code, code that is hard to test. So, mediocre code would be something that has some of the properties of good code, but is missing a few of the more important ones... maybe the tests aren't fully baked, maybe there are some inefficiencies, maybe it's a little harder to read than it could be, maybe it's not quite as isolated from the rest of the code as one might like. The difference between mediocre and bad is the number of subpar things and their severity. If there are no tests, that's bad. If the code is horribly entangled with unrelated code, that's bad. If it's N cubed time in a place where we expect to handle large amounts of data, that's bad. If it ignores several common edge cases that will have really bad effects, that's bad. It is subjective, but it's not entirely opinion, either.
- zerr 13y agoBesides some publicity, partly due to key person's popular books/blog I believe, why is ThoughtWorks special? I mean, isn't it just yet another enterprise/CRUD app development shop?