Why You Didn't Get The Interview, Part II
jobtipsforgeeks.com
jobtipsforgeeks.com
The majority of the time candidates look much better on paper than in person. I gave up the belief long ago that resumes can be filtered meaningfully.
Resumes are not the future of search for devs. Hiring managers want to see other things beyond your self-assessed experience levels and a laundry list of buzzwords. GeekRez aggregates data from a handful of places like GitHub and/or BitBucket, Stack Overflow, Meetup, LinkedIn as well as other relevant links a job seeker would provide (publications, blogs, etc.).
This is all brought into a single page with collapsible tabs as a public profile for a potential employer (or even someone you might be doing a side project with) to review.
Devs can use it as a way to differentiate themselves from the competition and show off the strength of these accounts - obviously there would be no advantage for devs that have weak associated accounts to use the service.
It is also set up so a manager could view several profiles side-by-side, to compare say 5 candidate profiles at once. Instead of looking at 5 PDFs and clicking on a handful of URLs in each PDF to get the full picture, it's all brought together on one screen.
Feel free to check it out now, whether you are a dev or someone who will be hiring them. I'll post about it here on HN when we launch officially.
It reminds me of back in high school, where there were always those really smart kids who were just bad at standardize testing. They risked falling through the cracks because the testing was the only method used to judge one's scholastic ability.
Perhaps the standard "personal reference -> resume -> phone screen -> interview" pattern could use some disruption. Is there a way to match candidates with jobs that's better than keyword-matching resumes and sitting in a conference room talking about a time in the past when you learned from a mistake? Given that there are simultaneously tons of companies saying they can't find talent and tons of unemployed (and under-employed) talent looking for work, you could conclude that something about the current job matching system most companies use is not working.
The news a couple weeks ago about Google and their alleged use of trick questions and such hopefully raised awareness of the problems surrounding tech interviews, the value of GPAs and majors, etc., for all the other companies. Google is one of a handful of shops that shape how others think they should do things.
As I mentioned in another comment, managers today are more keen on seeing code. A resume can make whatever unverified claims you want to make. I mentioned a project I'm working on (http://geekrez.com) that is hoping to change how talent represents themselves to hiring entities and somewhat trying to replace the resume submission process with items managers want to see.
A Stack Overflow reputation score is not a self-assessed expertise in a specific technology, but rather something that is assessed by others. Saying you write good code is one thing, but let's see what you have in your GitHub or Bitbucket to prove what you are saying. These are the types of things that will get devs hired in the years to come.
Personal references are a whole other story. If someone can't find 3 people to say something nice about their work, they shouldn't be in the industry. The only thing that is valuable about references is when a handful (3-5 usually) of people provide very consistent information - to be more specific, consistent with both positive and negative items. I know when I hear a few people share the same strengths and weaknesses about a candidate that I'm probably getting a pretty good and honest assessment (or they have all been superbly prepped).
One startup idea I've had is a scarce resume system where people are limited to 7 technologies and allocate 10 points in each for skill and interest (3-5 points means you're really good or really interested). It's like building a character sheet. More information in that than a typical resume.
Again, as someone who specialized in Java for many years, this was something I'd see on a daily basis. I see it much less now in the camps I deal with regularly (Python, Ruby, FP, mobile) but that probably has something to do with the technologies themselves and naming protocols.
Short technology lists show selectivity. For example, I've dealt with XML but I'm not going to put that on my resume. I don't even know what it means to "know XML".
For one, the number of available frameworks, IDE's, and other tools is much more significant than other language ecosystems. There really isn't another dev group that has as many tools available between the vendor and open source options.
There is also the tendency to name every single Java API - you can't just say you know Java EE (formerly J2EE), but you have to list EJB, JSP, JMS, etc specifically to get picked up by searchers. There are many Java devs who worked with JSP and servlets that didn't use EJB, but when EJB was in high demand everyone listed it anyway.
There's definitely such a thing: Do you understand entities and how they work? (There's more to it than just & and <. Without looking it up, do you know what a Billion Laughs is, and why it's related to entities?) What's in a DTD? Do you understand XML namespaces properly? (e.g., in the tag <x:test xmlns:x="http://blah.com/ns1" att="1"/>, what namespace is "att" in? What, exactly, does the http://blah.com/ns1 mean? How does it relate to blah.com or the content at http://blah.com/ns1?) Do you have an understanding of the various schema languages? Do you understand how encodings interact with XML? Are you familiar with the terminology (e.g., can you precisely answer "What is CDATA?", with some idea of where in the XML grammar it appears and what characters are and are not allowed)? Do you know what a processing instruction is? What is the correct way to embed binary data in XML?
BTW, the answer is generally no. "Everybody" understands a subset of XML with balanced tags and simple attributes, but I'd guess single-digit percentages of the people who have "XML" on their resume really know XML, rather than the simple subset. Fortunately, as an interchange format, since nobody understands XML, nobody uses it to its full capacity, those few who try use it incorrectly, and it turns out there isn't a heck of a lot of reason to actually know the full scope of XML, since in general you're unlikely to encounter correct advanced XML anyhow. You can easily go an entire career without ever seeing the advanced features used correctly. Actually knowing XML can be almost end up being an impediment, you're almost better off having a fuzzy understanding so that when you encounter some developer's weird half-assed dialect, you're less shocked and just get on with it.
(I am aware that some of my example questions there are themselves based on false premises. Consider them trick questions.)
(...or is that the whole point...?)
3 points of Machine Learning with 20+ years of experience (or 2.0 level skill) is different from 3 points from a fresh college student. The first means he's probably an expert; the second means he specialized in it while in school.
Resumes have two purposes. One is to give a list of topics one is willing to discuss in the interview. The second is to project social status (i.e. lie). So you have a mix of self-evaluations and lies on a resume. The latter don't have signal, but the former do. The reason for the 10-point allocation is that self-evaluation has a great deal of signal if a person is expected to trade off one claim against another ("i.e. I know Java but I'm really good at Python" vs. "yeah, I'm an expert in all languages").
I would think that those in the know will limit the amount of technologies they list based on the job spec and their experience level. It isn't really useful to list something that you read one article about.
I'm not sure if it's a good startup idea, but I definitely plan on doing something like this one my own resume next time I have to job hunt.
So if your main programming experience is a couple of semesters of Java at university you are a "9" at Java and a "7" at PHP because you built a website for the knitting society.
In some cases, maybe, but there are genuinely people who have worked in lots of technologies, and others who have stuck with the same stack (in other fields, this is also known as the fox vs. hedgehog paradigm). Making both types list the same number of technologies elides an useful distinction.
I also find it somewhat naive to advise “selectivity” and “focus” in resume writing, if said resume is then filtered by machines or humans doing keyword spotting for specific technologies (and implicitly assuming you could not possibly learn them if you haven’t listed them on your resume).
What I’d try to do is an expansive listing, but providing perspective. In my case, I’ve written C++ pretty much every day for the last 25 years; I wrote a substantial amount of Tcl/Tk for 3 years, 15 years ago; I used PostScripts for 2 smallish tasks, both of which left the customer amazed and happy. I feel entirely justified in listing all three languages, as long as appropriate qualifiers were added.
It is a bit naive to advise candidates to be selective when they know that a machine might be ranking their words. If candidates that have 9 page resumes and 2 pages of buzzwords stop getting phone calls and find out why, that will solve the problem eventually.
On a resume you can say you are the best in the world. You control your self-assessment on a resume, but have no control over what someone thinks of your code or what someone thinks of your answers on Stack Overflow (reflected in your reputation).
Or I might not take pains to find some way to mention every single technology I used in my experience. For instance there are about 17 technologies I use currently, if I were to try to name-drop every single one of them it would end up looking like a laundry list anyway, and not interesting to read. Better to focus on what you accomplished and dump the technology list into its own section, IMO.
I wouldn't waste my time on the formality of a traditional cover letter with all the "To Whom It May Concern" garbage. Just a few sentences, keep it loose.
For example, someone who applies to 5 unrelated positions isn't looking for a career upgrade or new challenges, but just looking for a job in general. That's not attractive.
Once you're in the interview process, you don't have to answer for the mere fact of looking for a job. You've cleared that stigma.
This sums up what my experience seems to be hiring. I've never really thought of it that way, but there's a clear selection bias. The good ones get snatched up quickly; the bad ones spam out to every damn listing they see.
It's not much different than real estate, where if you see a house that has been on the market for a long time you may be less inclined to give it a look. Thankfully, job seekers don't have listing dates unless they choose to post a resume publicly.