Skip to content

Comment on The dark underbelly of Silicon Valley recruiting (and there is a silver lining)parent

Comments

Offhand and very quickly and perhaps with a bit too much gloss:

* Ability to quickly learn new languages

* Ability to quickly understand and use appropriate design patterns where sensible (even if they are unaware of the whole idea of design patterns and just do it by doing what's sensible to them from experience).

* Ability to use or adopt new stack technologies (IE maybe they're an expert in PostgreSQL or Cassandra, but if for some reason they have to use MySql or Hadoop it's not a big ordeal). Same thing for coming to grips with stuff like 3rd party APIs.

* Balance documentation and clear design approach with ability to accomplish things quickly.

* Are able to avoid poor design and extreme inefficiencies, while also being able to recognize that not everything needs to have groundbreaking performance or architecture.

* Are accustomed to creating good baseline unit tests.

* Ability to code clearly and quickly.

* Able to work well with a team and effectively communicate.

* Some ability to express design and implementation opinions graphically.

* Ability to learn and adapt and use documentation/google and knows when to ask and when to look something up.

Of course this isn't to say that there's no such thing as valid job requirements. But odds are if you're looking for a PHP dev, for example, you don't really need a 'PHP Dev,' though they might be a bit cheaper than other kinds.

Rehash of what I don't think is usually super important:

* Ability to program natively in a language on a whiteboard (though ability to use psuedocode on a whiteboard is good).

* Familiarity with specific development methodologies (the way a team works can usually be picked up quickly).

* (Most of the time) Tons of experience with a specific language. In general, the more general purpose the language, the less experience matters (I think), though there are some other factors that go into play. It does depend on what/where the programmer will be working on. But in general, I'd say a brilliant programmer who hasn't used your language or stack a lot might be more valuable than someone who does -- the heretic's nectar can be sweet indeed.

* Implementation knowledge of the head of some obscure algorithm or data structure. Maybe you should know of the algorithm. But there's no reason a good programmer necessarily knows every algorithm and its implementation details off their head. Likewise, odds are, that for the average programming job, the programmer will not be implementing a high-performance version of any algorithm because they'll be using core functionality in the language, its libraries, or their tech stack :( . And the exceptions to the rule will require some R+D time anyway.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.