Tagged: hiring

Why You Can’t Work For Google

Many new entrants to today’s technology job market are obsessed with the handful of high-profile companies that set the trends in the industry, and the next generation of software engineers seem to think that the only companies worth working for are Google, Microsoft, Apple, Facebook, Yahoo, Twitter, and Amazon. Software development has become both a celebrity culture (where companies and their CEOs are the stars) and an oligarchy in the eyes of recent graduates and teens, who set their sights on employment with this small number of firms. Young developers in foreign countries appear to be particularly susceptible to this hyperfocus on a tiny segment of the hiring market. If you don’t know how widespread this is, I’d suggest a visit to Reddit’s CS Career Questions section to see what people are asking.

When Yahoo changed their remote work policy the web exploded in debate around the value of remote employees, and the more recent news around Google dismissing GPAs, test scores and answers to Fermi questions made many tech companies reconsider their hiring procedures. Not a day passes where a piece on one of these companies doesn’t hit the front page of most major news sites. A cottage industry has erupted with authors and speakers providing guides for aspiring engineers to create résumés, land interviews and answer technical questions to get jobs specifically at these companies. The focus seems to be less about becoming skilled and more about being attractive to a specific subset of employers.

These companies are glamorized amongst budding engineers much like Ivy League and top-tier schools are with high school students, and the reason you probably won’t work for Google is the same reason you probably didn’t go to MIT. Because they are highly selective, and they simply can’t hire everyone.

Of course some of you can and perhaps will work for Google and the other companies listed here, just as some of you may have attended top universities.  But the majority of you us won’t – and that’s OK. Follow your dreams, but be realistic about the outcome.

So here comes the good news! Beyond Google, Microsoft, Apple, Facebook, Twitter, Yahoo and Amazon, there are hundreds of awesome places to work that are highly regarded by engineers the world over, and most people outside the industry (and many inside) haven’t heard of most of them. Experience with these shops, much like the above list, will get you noticed. Companies like Netflix, LinkedIn, Salesforce, eBay and GitHub are well-known but not typically mentioned in the same breath as the top celebrity firms, though they certainly could be. I’d venture that most college CS majors haven’t even heard of 37signals or Typesafe, where smaller teams are doing work that is regularly recognized by the engineering community.

And again the bad news. You probably won’t work for these companies either.  For most of the world, these are still reach schools that employ relatively few. Although they may not be held by the general public in the same esteem as that list up top, they are incredibly selective, and most in the industry will view the difference between this group and the Googles as incredibly slim.

And now for some more good news. Beyond the lists of companies above are thousands of great places to work that I guarantee you have never heard of. These may consist of startups that fly under the radar or smaller specialized technology companies that serve a niche market. They could be the development groups for major banks or 25 year old mom and pop shops that have an established customer base and solid revenues. Game developers, ecommerce sites, consulting firms, robotics – the list goes on.

In almost every city, this group is the one that employs the overwhelming majority of engineers. This is where most of us will likely end up – a company that you will surely need to describe and explain to your parents and significant other.

In the city where I focus my business (Philadelphia) and run our Java Users’ Group, we have some Googlers and I’ve known engineers who have worked for Amazon, Yahoo, and Apple. And I know many many others who either turned down offers or likely could have joined those companies, but chose instead to work somewhere else. Just as some students may reject the offer from the top-rated school to stay closer to home or to accept a more attractive scholarship package, many of the world’s top engineers simply don’t work for Google or Facebook, or anywhere else in the Valley for that matter.

Philadelphia is by no means Silicon Valley, yet there is a fairly robust startup scene and a large number of software shops that are doing valuable work. Over the past 15 years I’ve worked with hundreds of Philly companies to hire engineering talent, and 99% of these places would be unknown to the typical developer. I almost always have to describe my clients to potential candidates, as most of these shops have not built a reputation yet, and these are firms ranging from 20 to perhaps 20,000 employees. And the vast majority of them are great environments for technologists where developers work alongside at least a few top engineers that could (and some that did) pass the entrance requirements for the Googles and Facebooks of the world.

All the great engineers in the world aren’t in the Valley, and they don’t all work for Google. This fact is obvious to most, but fewer than I’d expected and hoped. If that is the goal, go after it. The rest of us will be here if it doesn’t work out. 

coverpicsmallest

Job Tips For GEEKS: The Job Search DRM-free ebook is available for just $2.99 – more info here.

Why You Didn’t Get The Interview, Part II

In August 2012 I published a blog post Why You Didn’t Get The Interview, which received a good bit of attention from readers and was republished a few times (most notably by Lifehacker).  Of course one article could not list every possible explanation that an employer or recruiter might use to discard a résumé, so I decided to revisit the topic once again.  This is not intended to be a comprehensive list, but rather an addendum to the previous post that may help explain a lack of response to your job search.

No submittal content – Online applications often consist of several fields and check boxes that don’t always give job seekers an opportunity to express interest or differentiate themselves.  However, when you send a résumé via email or are provided some space within an online application to craft a custom message, you are foolish not to take advantage.  Simply sending a résumé without any supporting information about your experience or interest in the job comes across as lazy or aloof, and can give the appearance that a job seeker is simply blasting résumés indiscriminately (perhaps even in an automated fashion).  SOLUTION:  Tell the employer at least one or two things that drew your attention to the job and company.

Multiple applications to the same employer for vastly different roles – Sometimes I will open my inbox and find an email from a job seeker about one job that could possibly be a fit, and then find another four or five emails from the same applicant for other jobs that are not remotely connected to the candidate’s experience.  This applicant may have received some attention if he/she only sent the one semi-targeted application, but the additional blind stabs have too many negative implications.  It typically signifies either a lack of self-awareness regarding qualifications, immaturity, or desperation.  SOLUTION:  Before submitting your résumé, check several of the company’s listings to make sure that you are applying for the one or two jobs that best fit your experience and goals.  If you have a strong desire to work for a specific employer, sending a targeted application to one or two listings is much more effective than spamming your résumé to all of their vacant slots.

Many small red flags – My original article last year referenced 14 fairly obvious reasons that job seekers are not interviewed, but often it’s not that simple.  Many times a résumé/application package will contain a handful of items that would not be a problem when considered individually, but when combined add up to a rejection.  The recruiter or hiring manager will feel that too many special circumstances would have to occur that make the candidate’s hire unlikely.  Perhaps a candidate has a slightly elevated salary expectation, requires relocation assistance, is minimally qualified, and lacks any easily identifiable positive indicators of talent or ability that stand out from others.  An applicant with only one of those characteristics would likely be considered, but the aggregate picture makes it too much of a longshot.  SOLUTION:  There is no real fix to this.  You could always try to explain what could be perceived as a red flag.  For example, if you are relocating to a specific area, make it clear why you are looking in that specific market to avoid being viewed as someone open to jobs worldwide.  Displaying some level of interest or passion for the employer could also help overcome objections and get you a shot.

Personal reputation and your employer’s reputation – It shouldn’t surprise anyone that if you apply to firms where people either know you or are connected to those that do, a decision to interview will typically be based on how these contacts feel and talk about you.  However, your employer’s reputation may also come into play here as well.  If a particular company has interviewed multiple former employees of your firm without much success, chances are they will not waste time interviewing another.  As a recruiter, it is fairly common for companies to tell me “Unless they are outstanding I’m not overly interested in candidates from COMPANY, as we see many and have not had any luck.”  Your company’s reputation is more likely to work in your favor if you are employed by a firm known for having talent, but it seems the trend to discriminate against employees of certain shops continues.  I wrote about this a bit in a past post regarding discrimination by startups against workers from large enterprises.  SOLUTION:  Keep your personal reputation in mind when dealing with co-workers and particularly when leaving jobs.  Minimize stints at employers that have a negative reputation in your market.

Inconsistency – This can be the result of discrepancies between a résumé and cover letter/application, between a résumé and LinkedIn profile, or just something fishy in the résumé itself.  If you changed professions more often than Barbie (impressive list) or have travailed up the corporate ladder and come back down multiple times, your application will raise suspicions.  Candidates that list titles progressing from CTO to CEO and then down to Junior Developer will be scrutinized.  SOLUTION:  There isn’t anything you can do to change the past, but explanations could go a long way if you left an industry to pursue a passion.  Make sure all of your online profiles match your résumé details before sending applications.  Try to use job titles that reflected your actual duties if you worked for a small firm and had an inflated title.  Even if you were CEO or CTO of your dorm room software company, it may not be helpful to list the job that way.

Meh – Your qualifications and history are virtually identical to the others in the stack of résumés received.  You may have met what was listed on the job spec, but so did everybody else.  This is of particular importance for jobs where it is expected that most applicants will have similar qualifications, such as entry-level positions for new graduates or jobs that list highly generic specifications.  SOLUTION:  There has to be something different about you that you can add to give some positive spin to your candidacy.  Review the requirement again and try to find an area where your background exceeds the expectation, or a specific experience you have that others probably don’t.

coverpicsmallestMy ebook Job Tips For GEEKS: The Job Search was recently released and is available for $9.99 (reduced to $6.99 in December 2013) on iTunes, Amazon, Barnes and Noble, Google Play, and Kobo.  I can provide a PDF version for sale by request.

How to (Partially) Control Your Technical Interview

JTFG book cover

ebook now available

Generally speaking, when you walk into an interview you are at the mercy of the interviewers. Although you may be given some general information regarding the interview format and probably have an idea about the questions or exercises you may encounter, there are endless possibilities on the topics you may be asked about over a two or three hour session.

As was stated before, any item on your résumé is fair game, so one way to potentially avoid queries on unfamiliar topics is to keep those words off your résumé. Regardless of what is or isn’t on your résumé, it is quite likely that you will be asked questions pertaining to subjects that are not within your areas of expertise. Trying to fully eliminate the exposure of certain vulnerabilities is an exercise in futility, but there is one rather effective method to at least attempt to mitigate the risks.

There is an increasing trend in the technical hiring world for employers to request firm evidence of a candidate’s abilities that go beyond what a traditional résumé includes. For programmers, this typically can be achieved through a code sample. Front-end designers and developers may be expected to show off some UI or website that they built, and architects may be asked to share documents. Mobile developers may hear this more than any other group, and are routinely asked “Do you have any apps available?” as part of the vetting process.

One way to partially control the content and direction of your interview is to provide interviewers a work sample that will presumably become a point of discussion. This will turn what could be a technical interrogation into a version of show and tell. Even if the exchange about your sample only takes fifteen minutes, that is fifteen minutes of the interview where you hopefully will shine, and it is fifteen minutes less time for the interviewers to delve into other topics that are probably less familiar.

To employ this tactic, be sure to make it known at some point early in the process that you have samples of your work for review by request. A GitHub link at the top of your résumé, a URL to download your mobile app, or a link to sites that you developed are much more graceful than large file attachments. You can choose to extend an invitation to view these projects as early as your résumé submission, and when scheduling the interview you can express your willingness to discuss the projects in more detail and offer to bring a laptop with samples.

Independently volunteering to show representations of what you have produced will give an employer the impression that you are both willing and able to demonstrate the quality of your work. That act makes the applicant appear more open and trustworthy than someone who hesitates when asked for some samples. Recruiters and hiring managers alike will welcome résumé submissions that are accompanied by additional supporting evidence of a candidate’s abilities.

When you enter the interview, you can mention that you brought samples to show if the team is interested in seeing your work. This will typically be received quite positively and could lead to a deep dive into familiar territory.

This post is an excerpt from the recently released ebook Job Tips For GEEKS: The Job Search, available to purchase from Amazon. A sample from the iBook in PDF format can be found here.

The Engineer’s Engineer

Lately I’ve seen quite a few requests for advice from younger programmers, asking questions either directly to me or in public forums about a career decision they are being faced with that is causing some level of stress.  Reddit’s r/cscareerquestions is a hotbed for this type of activity, and you might see the occasional similar post on Hacker News.  After 15 years in business, I’m quite comfortabel providing insight on the potential benefits and drawbacks of say, taking a job doing mostly Python versus a position exclusively using a rarely seen proprietary language and platform, or accepting a pure technical management position versus staying more hands-on.

Generally, I want to tell all these people the same thing.  If you really enjoy the work and want to be successful in the business for a long time, you should try to make decisions, think like, and become an engineer’s engineer.

I know quite a few people I’d describe as an engineer’s engineer, and most of them have some gray hairs or are young but sound like a throwback to times past.  Fortunately, some less experienced developers are benefitting from being able to work alongside someone in this category, who are more often that not open to mentoring and showing the way.  As a recruiter I look at and treat these engineers like gold, as they are the types that any of my clients would want to hire – plus they tend to teach me new stuff in every conversation.

Who is the engineer’s engineer?

  • Utility player –  In baseball, it wasn’t uncommon in the early years for players to play several positions.  Specialization has happened in baseball to the point where there are now pitchers who only pitch in the 9th inning.  Similarly, software development shops are now often filled with segmented roles for build engineers, dev ops, QA, architects, performance engineers, database developers, etc.  The engineer’s engineer is a utility player that can jump in almost anywhere, and doesn’t see the demarcation as a boundary that cannot be crossed.  Little is considered beyond the scope, and they will not want to silo themselves into a singular function.  
  • Initiative – If they see something that is broken, they fix it.  Will automating a task make our lives easier?  If so, let’s do it, and only ask permission when absolutely necessary.  This requires some level of autonomy.
  • Technical integrity – By this I mean that an engineer’s engineer will have some opinions about decisions being made (if this person isn’t calling the shots) and will make that opinion known when there is disagreement.  Instead of just saying an idea is bad, an alternate solution will be given.  This is the desire to do things correctly over taking short cuts, which is likely to conflict with the business at times.
  • Can’t be bought with money or title – This group will never take a job purely based on salary or rate, and are driven by the ability to solve interesting problems and work with a strong team.  Job title means absolutely nothing.  In my experience, most engineers factor money heavily in job decisions and sacrifice a better career move or additional job satisfaction for what amounts to a difference of $2.00 an hour.  If you’ve chosen a job based on a 5K salary difference, this is you.
  • Sharing – The engineer’s engineer wants to share, whether it be information on how and why they arrived at a particular solution, their favorite tools, or anecdotes about past projects.  This is based on a combination of pride in their work and interest in teaching others.  Open source is often a part of this equation, where there is a desire to share your solution for the outside world to see and use.
  • No limitations – The engineer’s engineer doesn’t want to have the toolset options defined and thrives in an environment where they have autonomy over what will be on their machine.  Having a company mandated IDE or OS will be a turn-off, as will any roadmap listing few acceptable tech options.  Heavy bureaucracy, regulation, or barriers to being able to solve problems are an issue.  The shop ideally will be engineering-friendly.
  • No personality conflict, less ego – Of course, many strong programmers (and some weak ones) have quite a bit of ego about what they do.  The engineer’s engineer does not come across as overly self-important, and can be more humble than those much less-skilled.  This group isn’t alway the most friendly or popular person on the team, but is never the most hated.
  • Lack of zealotry – Even though they want to use the best tools, they understand that their weapon of choice might not be appropriate in all situations.  This group knows there are no silver bullets, and laugh when others get overly religious about the new hotness.  Technology and new products excite them, but they are unlikely to get a tattoo of the latest JavaScript library.
  • Movement – This group wants things to be progressively moving forward with few delays.  Low latency in their process and little downtime at work.
  • Has the back of team members – Solidarity among other engineers is their goal, and they tend to stay above or away from the drama of interoffice politics.  They are there to solve technical problems, and have no interest in gossip or attacks on others.
  • Know that they are not their code – These people can separate a technical criticism from a personal attack.
  • Doesn’t need to be a leader – They are often more happy when they are not in charge, and are not instinctively driven to tell others what to do.

Note:  In thinking about and doing some mid-article research for this piece, I came across Paul Graham’s 2004 piece Great Hackers which identifies some of the same traits listed here as being shared with hackers.  The hackers he describes should share the workplace desires and drive as the engineer’s engineer, but may not always have the same personality or behavioral traits.

If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search even more helpful.  You can follow Job Tips For Geeks on FacebookTwitter, or Google+.

The Dangers of Book Learnin’

Today’s software professional is under constant pressure to maintain a high skill level with an ever-changing palette of languages and tools, and the fear of potentially becoming somewhat irrelevant can be daunting.  Those that do not keep up with industry trends and movements are at some risk of losing marketability, but even those that do closely follow tech news need to make choices on which skills to pursue (time permitting), which to ignore, and what methods to use in the pursuit.

The first instinct to learn something new would naturally be to find some good resources online and perhaps acquire a couple books.  You can find presentation slides and videos, articles and blog posts, and even attend live meetups or conferences in addition to your reading.  Over the years I have seen hundreds of engineers (accomplished and junior) that invest an extraordinary amount of time to reading about different languages and tools, many of which they may never even get to use professionally.  Some even read with the goal of some certification, which they feel will demonstrate mastery of a new skill.

I have also come to know another group of technologists who are inclined to learning in a different manner.  This group starts off with some amount of reading as well, which might be limited to the product documentation and a quick tutorial, and then immediately transition into a more hands-on approach.  Once they have a basic understanding of a language or tool, they actually try to build something.

As a recruiter, I have had candidates do a quick study on a new language (used by the potential employer) and throw together some common interview coding problem or even a simple app in a GitHub repo.  As a Java user group leader, I have had presenters build small apps to help familiarize themselves with a framework they will be describing to others, and then demo the app live.  The offer to present could be “I think X looks pretty cool.  I’ve read about it but haven’t used it yet, but I’ll build something and present on my experience with X.  I can be ready in a month.”

It appears that many technologists are very comfortable with the reading portion of learning, but focus there too long and never get around to creating something.  This seems to be common for some college graduates, who obtain a wealth of classroom experience but very little time spent doing.  Even if what you build is entirely useless to the world, your creation has value.  Learning by doing is not a new concept, so the educational value is obvious.  What other value is there?

Marketability and interview advantage
I was prompted to write this post about book learning when I was reviewing my recruiting placements for the past year.  The developers I’ve helped into new jobs over the past year have (with few exceptions) had one thing in common – a portfolio of products and code.  This was rarely the case ten or even five years go, but today it has become the norm.  The Android and iOS developers I’ve placed had at least one app available for download.  Web developers were able to demonstrate sites with accompanying code samples.  Even the programmers who focused on back end had something to show in interviews.

The biggest example of the value of ‘learning by doing’ and a portfolio is probably exemplified by the mobile app space.  It’s hard to sell yourself as a mobile developer if you don’t have any mobile app to show, and “Do you have an app?” is probably the first question mobile devs will be asked.  Software developers in most other areas are usually not subject to or judged on this direct a question.  Put simply, mobile developers know that in most cases having an available app makes you more marketable.

Programmers who work in more secure environments, such as those who build defense systems or financial software, often find it impossible to produce a work sample when seeking new employment.  Without being able to show your past work and with no personal projects, these candidates are much more liable to be subjected to a language interrogation and the game show style of interviews that many job seekers dread.  Marketability may be more tied to experience and somewhat arbitrary measurements of skill instead of demonstrable accomplishment for these candidates.

Interview advantage
Having a portfolio gives an interviewee a distinct advantage, in that the interviewee has at least some control over the topics that will arise.  Walk into an interview empty-handed and the possibilities for question topics are endless, and chances are you won’t have endless answers.  If a candidate brings a work sample to an interview, it will almost certainly be included in the discussion, and one would hope that the code’s author should fare better on questions regarding that sample than on questions on random topics.  Even average developers should see performance improvement in interviews when the topic is their own code.

tl;dr
Read enough to get going, then build something.  Don’t worry about whether your something is going to change the world.  Save what you build, and occasionally look back and improve upon it.  Bring what you build to interviews, and practice talking about your creations.

If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search even more helpful.  You can also follow Job Tips For Geeks on FacebookTwitter, or Google+.

Indicators of Talent (and Heuristics) for Software Engineers

A recent Hacker News post by a man named Andrew was voted to the front page and received over 50 comments (as of my post).  The post was called Ask HN:  Would you hire me?, and Andrew specified that he was talking about a junior level position.

He provided the following details about himself:

  • 28 years old with a Finance Degree from a non-Ivy league school
  • Spent the last two years living overseas teaching English and learning to code
  • Fairly well versed in html, css, javascript, and PHP

He also included links to his:

  • GitHub – handful of repos, 7 months as a member, pretty active over the last quarter
  • Stack Overflow profile – 521 reputation, top 37% this quarter, 16 badges
  • Blog – Attractive UI, 7 overall posts (a few with some code), with the highlight being details of a Chrome extension he built and demonstrates in a video

Andrew received a fair amount of positive feedback, and not one single poster gave a ‘you are not hirable‘ response.  No CS degree, no professional experience, yet a highly technical audience were either mostly positive and at worst neutral on hiring (considering is more accurate) this potential applicant.  Only a couple responders mentioned looking at the one project he listed, and none referenced the quality of his code samples on his blog or GitHub, so we might assume that no one even bothered to look at his code.  Interesting.

Part of the explanation for the positive response is undoubtedly the makeup of the Hacker News crowd, which does not include a large contingent of HR reps from large companies who control a great deal of the hiring decisions.  Place this resume and story on Monster or Dice, and I expect that Andrew would receive responses from less than a quarter of his viewers.  Possibly less than a tenth.

I admit, if I were to see this candidate’s resume (assuming it reflected the details he put on HN), I would absolutely want to speak to him.  The clients I represent, which are mostly startup and early stage software companies, are more representative of the HN crowd (at least in terms of evaluating engineers) than most larger companies.  And even if I did not have a great opportunity for him today, I would think that a few years down the road he will be someone that I’d want to represent.

What is it about this candidate with no experience and no highly relevant education that gets our attention?  Of the details we have about Andrew, how many could have impacted my decision to speak to him?

When evaluating talent and the decision whether or not to interview a candidate for a software job, I must rely on several attributes that have historically been attached to quality talent that were successful in receiving job offers from my clients.

Let’s break it down.

28 years old with a Finance Degree from a non-Ivy league school – Most readers, including myself, probably didn’t give this any thought.  His degree in finance should indicate some math background, and if he had listed his specific school that would have had an impact.  Although most might be reluctant to mention it, the age demographic is probably a positive based on the industry, as he obviously has some life experience and maturity but will not fall prey to any old dog/new tricks bias.

Spent the last two years living overseas teaching English and learning to codeTeaching any subject to any students is valuable experience for almost any profession, and should indicate some level of communication skills.  The international aspect adds a bit more interesting background than if he were teaching domestically.  Some who chose to speak to Andrew may have been strongly influenced by the oversas aspect, as this could also show some willingness to face risk and change.

Fairly well versed in html, css, javascript, and PHP.  Just getting started with Ruby – His claim of being ‘well versed’ is only a self-assessment, but that could be at least somewhat validated (or invalidated) by anyone taking a look at his blog’s source or GitHub account.  This at least indicates that he is learning technologies that will give him some marketability based on demand for these skills.  We may question Andrew’s choices if he were learning a less popular skill.

GitHub, Stack Overflow, and Blog – For those that make decisions about technical talent, the fact that Andrew has both a GitHub and Stack Overflow account is probably more of an indicator of possible talent than what is actually in the accounts.  Most candidates in my experience don’t have a GitHub/Bitbucket or SO account, but those who do have accounts are historically more successful with my clients than those who don’t.  The attractive blog and few technical posts are yet another indicator, showing some passion as well as the ability to articulate his ideas in writing.

What other details may have led to the decision of HN readers or people like me who would at least want to speak to Andrew?

He reads Hacker News – Even if he isn’t a senior developer, he at least appears to have spent some time in one community where they frequent.

He comes across as modest and doesn’t appear to feel entitled – You don’t see anywhere in Andrew’s post a reference to how awesome he is or how he is ‘kicking CSS’s ass on a daily basis’.  His responses to feedback are very positive, grateful, and polite.  The choice of ‘well versed’ over some other terms that may be linked to overconfidence was wise.  Andrew also will not be accused of sounding entitled to a great dev job, and on the contrary he comes across as someone who knows he has to earn it.  Perhaps that is a function of his lack of a CS degree, but either way he appears to be taking the right approach.

He’s already creating product – Although he is only early on in his tech studies, Andrew has a product on the market that you can find in the Chrome Web Store that you can download.  There are developers with 20 years of experience that haven’t built any of their own tools or products yet, but this guy is two years in and has that mindset.  Some may question how great (or even good) a product someone at this level of experience could build, but the desire to produce and distribute a tool is something that perhaps can’t be taught.

Note:  Other indicators I use regularly include:

  • Past employers – Some companies frankly have a higher standard of hiring
  • Technical hobbies – Arduino, build robots, or create things at home
  • Speaking or writing – Presentations and publications are usually strong indicators
  • Tool choice – What blogging platform or operating system you run at home
  • User group and meetup – Shows interest and passion

Conclusion:  Hiring managers and recruiters are making quick decisions to interview and consider candidates, and as demonstrated by this HN post it seems that there are several recognized indicators of possible talent.  For job seekers, you may want to display links to your accounts prominently, and highlight details such as independent product development.

Of course, these indicators are not perfect.  I, too, have a GitHub and Stack Overflow account and a blog that covers technology (and I even run one of the best Java Users’ Groups in the world) – but I don’t write code.  Readers of HN should not hire me.

Discuss here or on Hacker News.

If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search even more helpful.  You can also follow Job Tips For Geeks on Facebook, Twitter, or Google+.

Why You Scared Off the Ninja

The saying goes you never get a second chance to make a first impression, and it is well-documented that this is never more true than in the effort to hire great technical talent.   Complaints about the interview practices of some companies and anecdotes about how recruiters make foolish approaches are quite popular reads lately.  As someone in the hiring business, the criticism can be painful to hear, but when justified with evidence of ineptitude it is certainly understandable.

Demand for elite developers is so competitive (and talent is so hyperaware of this fact) that both recruiters and company representatives rarely get a second chance if their first contact or the ensuing hiring process is received negatively.  The best case scenario for the headhunter approach gone awry is to have the attempt ignored, and the worst case is public shaming by a tech celebrity.  It is particularly painful when a recruiter or company turns off an attractive candidate (whether through an email or hiring process) that possesses a very rare skill or experience, or worse yet a high degree of both skill and community influence.

Accomplished technologists can be brutally unforgiving to even the slightest perceived breaches by recruiters, and the level of outrage is often congruent to the programmer’s self-perceived industry status.  This is most likely a function of the sheer volume of noise received by high-end talent with status, and the frustration that noise can cause.  Junior level candidates tend to appreciate any type of attention, while the more senior or recognizable professionals seem to rarely find any recruiter contact worthy of a positive response.  Beyond just the recruiter problem, the interview process and practices used by companies cause very strong negative reactions by many in the industry.  When offended, those that feel they’ve earned ninja status (used ironically, please stop saying ninja) seem most likely to wield the sword.

Applicants that appear average will probably be treated that way.  But when a recruiter or a company hiring manager discover what could be that once-in-a-lifetime potential hire, or even a candidate that would seem to fall into the top 10%,  they must be flexible enough to change their standard hiring protocol while exercising an abundance of both caution and tact at every contact.  Many companies homogenize the process for all candidates to their own detriment, and when dealing with in-demand talent that typically comes with a bit of ego thrown in for good measure, treating the ninja like a common commodity is a critical error.

What are the most obvious ways that recruiters and companies turn off the most qualified candidates during first contact and the subsequent hiring process?

First, mistakes in the approach:

  • Impersonal contact and lack of research – The link earlier in the article referencing a recruiter approaching DHH for a Rails role happened more than once, and notably a recruiter for Groupon made the same mistake.  These examples are well beyond a typical recruiter infraction, as most Rails engineers are not DHH and most recruiters are not this lazy and clueless.  The ‘Let’s connect on LinkedIn‘ invite without any point of reference also applies to this category.  Recruiters are given little leeway and must conduct at least minimal research before contact, and then must choose their words wisely.  Once you know a bit about the candidate, tell him/her why you felt it was appropriate to reach out.  Be specific.
  • Referral requests – Recruiters are trained from birth to end every communication with ‘Do you know anyone else who might be qualified?‘, and they are often asking complete strangers.  Technologists at the lower levels look at this as an opportunity to help a colleague find work (and maybe even get a referral bonus), while ninjas who make plenty of money have no interest in helping most recruiters and view the request itself as a breach.  Don’t ask top people for referrals until you have at least developed some form of relationship, and even then only with caution.
  • Technical ignorance or irrelevance – Recruiters who confuse Java for JavaScript get crucified, and will be forever remembered as being ‘that guy/gal‘.  Whether you are a non-technical CEO or a recruiter, be sure that your communication is technically sound.
  • Approached by the wrong person – When courting high-end talent (particularly for a small company), it is wise to get an internal talent or leader involved as early as possible.  Your junior recruiter that started last week should be kept in check until he/she knows how to market the company, and that marketing skill should be honed in conversations with junior candidates that generally require a lower degree of difficulty and thus reduced potential risk.  Startup CEO, CTO or Development Managers should be willing to send a quick note from their own email in order to get a ninja’s attention early in the process.  Recruiters need to know when it may be appropriate to step aside for first contact.
  • Lack of details – Vague, boilerplate company descriptions rarely get the attention of top talent, and may turn off the candidate completely without ever getting the chance to show them more.  Provide as much detail as reasonably possible to demonstrate that you have no intention of wasting their time.

And in the hiring process:

  • The HR phone screen – I cringe when a client responds to my submittal of a top talent with ‘This one looks great!  We’ll have Joe from HR do a quick phone screen‘.  NO!  Some recruiters vet engineers better than others, but if a candidate looks stronger on paper than most you see, forgo the pleasantries and get down to business.  
  • Standardized tests – These are fairly rare with startups and small companies and for midsize and large companies these tests serve as just another way to scare off top talent.  Tests for IQ, personality types, and even third-party technical tests tend to give the wrong impression to talent.  Development managers at companies that employ standardized tests could be frustrated with the skill level of their applicants, and should want to promote policy change or at least allow for exceptions.
  • Disorganized interview process and inflexibility – Missed phone calls and making candidates languish in a lobby while waiting for an interviewer is inexcusable when wooing a strong candidate, and tech talent may feel these indiscretions could reflect on your work environment.  Even if you traditionally like to keep interviews very loose and informal, use at least a small amount of choreography when entertaining the ninja to keep their engagement level high.  Accommodating a request for a call either before or after hours could also be the difference when interviewing candidates that are unable to use business hours for meetings.
  • Lowball offers and negotiation games – After investing a fair amount of time building mutual trust and admiration during the interview process, the last thing you should do is play games when it comes to sealing the deal.  The long term value of the hire should not be risked for a few thousand dollars saved through negotiations.

Conclusion:  Companies and recruiters need to do a better job of customizing their approach and treatment of top technical talent.  While technical recruiting is generally considered a numbers game focused on high-volume, the courting of the most elite developers requires a completely different and more time consuming campaign to be implemented by your most competent resources.

Discuss on Hacker News.

If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search very helpful.  You can also follow Job Tips For Geeks on FacebookTwitteror Google+.