Do you remember the good old days during the Internet boom when a shiny resume, clean haircut and a vast vocabulary of IT acronyms was enough to get you a six figure job at a fast moving Internet company with a half-life of less than a year?! Well, those days are long gone now… At least in the specific technology field I am in.
Here are some tips from past experience when trying to hire a developer, technical architect or a super ninja coding monkey (that’s a large visual to absorb, I know
.
Developers
> If during the phone interview he answers yes to every questions, including “Do you enjoy drinking Snapple and Red Bull cocktails at 2am while re-writing another developer’s source code?”, there could very likely be a severe problem with his work ethic and level of productivity. Why? Well, any developer that works odd hours will most likely not be productive on fast moving agile-like projects that require a functional and cohesive team during normal work hours – well, unless he/she happens to be outsourced out of Estonia (yes, there are developers there now).
> Good developers talk less, and produce more. When you are in a meeting with a developer and he starts questioning every architectural decision and going off on a tangent, it is likely when it comes to actually write code, there will be little produced. This is also a double-edged sword, since developers that sit in silence and don’t ask the write questions can be a sign of a severe lack of understanding as they wander off into building an application that can process prime numbers faster than any application ever known to man kind – when he should have just been creating a tax calculation module.
> “What is an object?” is one of the most feared questions from a developer – seriously, if you hire a sharp developer he/she better know what the heck is object oriented programming. The last thing you need is every business object, method, function and (oh yes, HTML renderer) packaged into a single .ASPX file. Give me entity classes, business objects, a data layer, and a clean extensible object model that we can leverage into a SOA model if we need to.
Technical Architects/Lead
> Are you a technical “architect” or a technical “lead” – the two differ greatly. What you need to look out for is anyone claiming to be a technical lead “designing” the “solution” and “leading” “the team”. These candidates are 90% of the time PMs gone AWOL claiming expertise to design a solution, when in fact all they do are PM duties with business requirements gathering, and client interfacing skills.
> A good technical architect will tell you the difference between an apple, orange and pear, and give you specifics as to why each would work best with a hearty breakfast. No, but seriously, technical architects need to have “big picture” understanding, all the way from the physical to logical layers, and beyond. They are the masters of designing sound solutions, and gifted in interfacing business with technical teams to achieve a common goal. Architecture is a constantly moving/changing machine, and TA’s need to be in motion with what changes, how, and what the best approach would be in order to avoid chaos, lack of scalability, and secure continuous integration with all other systems.
> Document! Document! Document! Good TAs create good documentation, with clear implementation diagrams and descriptions, using well defined frameworks and patterns. They need to constantly communicate these documents to both business and technical stakeholders, align their understanding of them, and update them regularly to keep everyone up to date. If a TA has not been a project that produced more than 100 pages of design documentation, it is very likely that he/she does not have the depth/expertise as a TA.
Super Ninja Coding Monkeys
> These developers are hard to find… Did I say they are hard to find? Right… Well. The trend, given the enormous “brain drain” of Western civilization over the past 3 years, seems to have pushed levels of intelligence farther in countries like India, China and Russia – with the latter being a rising star of some of the world’s best developers.
> Complicated last names are a sign of a SNCM – a common joke amongst Indian developers, but given the history, I can see it…
> Good, clean, efficient and well remarked source code is a positive sign of a SNCM – if one out of ten developers can re-write 100 lines of code to 10 lines, they are definitely worth considering.
> Lastly, developers with C++ experience are definitely SNCM candidates… Looks for developers with at least 1-2 years of C++ experience on decent sized projects.
In short, remember to use some of these basic rules, combined with whatever other tools/resources you use for IT hiring, and always try to meet in person (if possible) and white-board the candidate to understand his/her thought process, candor and ability to make swift decisions under pressure.
Good luck to you all out there!