I've occasionally taken to send out a 'nano' CV - with my contact details, a paragraph of text and 3 URLs. My Stackoverflow account, Github, and my tech blog.
I've also been responsible for hiring developers over the last five years and if I saw something like that, and there was anything useful to see on those links, the person would be at the top of the shortlist. The only time I ever came close to it - I offered the guy a job within the first hour of meeting him. I've also worked with that guy again since then.
Any hiring manager will have at least a dozen CV's in his inbox. Nano CV's take seconds to read and you are instantly made aware of the candidates ability plus it also gives an excellent indication of confidence in said ability which is a crucial factor in finding good people.
There's a deep secret of HR most of us programmers don't know of or understand - CVs are often printed on paper and transfered to other desks by hand. While it'd be exciting for a nerd to receive, in a traditional HR dept such a 'nano-cv' or what you call it will quickly become a piece of garbage just as it hits the printer.
To be fair, if you are applying to a HR contact, then traditional is the way to go. I'd only ever recommend the use of 'nano' CV's if you can directly contact the person who makes the final decision.
Let's be honest: that only can work for small startups ran by young technical people or very small software houses where the 3-5 employees are in one room next to each other. In any company where there's even a slight hint of a corporate structure, you have to provide just what they are asking for or you'll be that dude who sent us a cv with no cv on it.
//edit: Actually, now I remember I was that guy many years ago. I was applying for a programmer at the tech dept of a publisher. Sent a very short cv with some basic data and a link to portfolio. The head of IT (actually a clueless older dude on sweatshop wage) came with a print, took a look at it very disappointed and said "that's the shortest cv I've received". And there wasn't even a laptop around to check my portfolio while speaking. From what I saw there I didn't want to work for them anyway, but it still proves my point.
Do a CV even if you're not applying to a HR contact. The CV has one purpose: To give the salient points of why you are the right person for the job.
A good startup is absolutely swamped by resumes. The less I have to hunt around for info about you, the better (remember: I don't know you from crappy-developer-x. Make it easy for me to differentiate!). I want to know what skills you consider relevant to the job, and how proficient you are in them. I want to know where you've worked before, what you did, and for how long. I don't want a bunch of URLS I have to click through, then navigate a bunch of sites, only to discover that you're a web developer with no Objective-C experience applying for an iOS position.
Once I have the essential info to decide that you at least have the basic skills for the job, THEN I want to see blogs, github accounts, etc.
OTOH, i have had phone screens, where the interviewer seemed to have no idea of what i have done or had asked questions that seem irrelevant if you visited some of the links in my profile. It's actually a weird feeling. if you ask me.
he does mention nongithub possibilities, quote: "[...]GitHub account or at least a portfolio of personal work hosted on the candidates own website[...]"
Though I certainly agree with you, people don't seem to notice any other hosting repositories.
I love the tiny stats TFA spouts out and concludes with, "I've seen it all.". Oh you've been on 6 technical interviews, have you? Tell me more about your incredible wisdom.
The advice offered is great for a new programmer. Anyone going for a truly senior level position would be better advised to not do what is advised.
I always have a problem in mind while in college, and the problem becomes my real problem. If my day job requires me to work from 9am to 8pm, excluding 1 hour round trip commute, which is a norm in the city I am living in, how can I squeeze out time to maintain a meaningful github repo/ SO profile / tech blog? I really want to sharpen my skills AND display it, but my day job already take up literally half of my life.
I do understand your frustation and to be perfectly honest, I hear the same concern constantly. The fact is, if you're truly passionate about something, you'll find the time. I work a 60 hour week and I have a 2 year old boy and an impatient wife at home yet I find the time to dedicate at least a couple of hours a week to blogs, news, forums and so on and I can sincerely say that it doesn't have any significant impact on my precious family time.
Keep in mind, a useful GitHub repo doesn't need to contain anything groundbreaking. Honestly, even a simple fizzbuzz application is enough to prove you can code.
If you put it that way, someone will create a Github repo of nothing but fizzbuzzes in random languages like Erlang, Whitespace, Prolog, CoffeeScript, Intercal, Malboge, Perl, 0x10^c assembly, ...
I understand the frustration of trying to find talent in a sea of uselessness. (Not even mediocrity: I've interviewed candidates who could not explain a for loop, how to write one, or when to use one.)
However, you are trying to take your version of passion and project it onto everyone else, and I think that is harmful. If gwat is working 9-8 and in love with their job, they are passionate and don't need a github to prove it.
It's your phrase "truly passionate" that rubs me the wrong way, as did the content of the OP. Your definition of a True Hacker(tm) definitely does not match mine. Your post reminds me of a checklist for a recruiting fantasist's wet dream resume more than an explication of what makes hackers different, and I found it distasteful.
As always, YMMV. I can only speak to how the post struck me.
I feel you there. For the best part of the last five years I've been commuting 3-4 hours on top of a typical 8 hour working day.
I guess it depends on your situation. I was fortunate enough to spend most of that on the train and typically able to get a seat so usually able to code, and always at the very least read, so I managed to make use of this time.
Other than that, I've put plenty of weekends into my projects too.
As Steve said, if you're passionate enough about it you'll find a way.
Honestly though, this gives a decent three step template for how to get yourself on the top of the pile in about ~1-5h worth of work:
1. Register a GitHub account, fork some projects that look cool
2. Register a domain, set up a yourname.github.com page for hosting, and add your contact info and link to github, whatever. Set up a mail redirector.
3. Upload your own project. If you don't have one, probably a good idea is to replicate some basic utility. How about pretty printing JSON using python from the command line?
Bam! Passion, done. For extra credit, create a blog and write two-three posts on why Java is verbose, something on getting started with node.js on your machine and a benchmark of your json utility and another one.
In all sincerity, when I look at candidates I also look hard for passion, and a blog, github, stackoverflow, etc puts them at the top of the pile.
As a counter anecdote, I've worked with tons of really, really good developers who went home at five, and came in at nine, and brought it every day. For most of them, life happened and with two kids it's harder to be prolific or show resume-friendly passion.
On the other hand, I doubt any of them will ever need to send in a resume anyway.
Your fake passionate guy knows that GitHub is a place to get noticed, can write a json parser in python, can understand the basics of node.js, and can articulate the strengths and weaknesses of Java verbosity.
Your fake passionate guy knows that GitHub is a place to get noticed, can cut and paste a json parser in python, can follow a node.js tutorial, and can parrot the cool kids bitching about Java verbosity.
Sounds pretty standard graduate fare, but can they solve an actual coding problem with me? I don't mind what language they use, and they can have any IDE from a pencil and paper to a modern autocompleting behemoth.
People already do everything you said. It's pretty easy to spot. Just look for a bunch of forked projects with no commits by the person in question, a high ratio of forked to original projects, etc.
The biggest giveaway is that there are no projects which are just for fun.
Incidentally, I've observed that the "just for fun" projects is a good trick for identifying a serious economist as well. A real economist Tyler Cowen obsesses over the economics of finding good restaurants and whatever else tickles his fancy, whereas a pretender like Krugman is all serious policy issues (both examples of economists who's policy I tend to disagree with).
"I will instantly disregard any CV that doesn't have reference to a GitHub account"
Well bravo you. The problem with recruitment in our industry is not the candidates with no GitHub account, its the egomaniacal interviewers who waste no opportunity to turn any interview, in this case any application, into a passive-aggressive pissing contest.
Perhaps its acceptable for an interview to be adversarial, but I don't think any other industry matches the tech industry for the utter hostility of the interview process.
Well, not quite. I read a recent post that said that
people over 35 should find other things to do with their
life. Mark Zuckerberg is quoted as saying that young people
are just better. Japanese companies won't hire programmers
over 35. The programming business has somehow become the
new "fashion" industry. Everybody wants "ninja rock stars"
(somewhat a contradiction in terms I think).
As someone who is a programmer for 41 years, leads multiple
open source projects, posts to github on a daily basis,
and writes code every day I find this trend disturbing.
I have interviewed for a job where I helped implement the
compiler they use and I'm "not qualified for the job".
People ask me why I'm not in management. I've turned down
several "promotions" in companies because I live to program.
Why would I move from the top of my skill set to the
bottom of a career I know nothing about?
So your advice is interesting but seems to have a target
audience of recent graduates, not seasoned professionals.
Look over your hiring record. I'm willing to bet that you
have not hired anyone over 40, regardless of their github
status.
Please don't be so polite. If a company is discriminating against "older" programmers, please call them out by name so the rest of us know to avoid them.
The exact phrase is "We don't think you will fit in to our
culture". I won't name names for two reasons. First, I'd
likely get a law suit. Second, the attitude is pervasive.
Recent post-graduates doing first level "filter interviews"
asking questions from their recent algorithms class. The
process is optimized toward new graduates. "What's the
average order of mergesort?" kind of nonsense. In 41 years
of daily programming I've never had to code a sort routine.
I have spoken to Tarjan about computing the order of the
Rete algorithm but I don't think the Rete is covered in the
college courses... and who ever heard of Tarjan anyway?
Sadly, this means that we will continue to repeat the same
mistakes "for the first time". Knuth's literate programming,
Alan Kay's Meta insights, Chandy and Misra's parallel work,
and other fundamental quality gains will have to wait for
another generation, assuming that generation ever gets its
chance.
What I see are languages without standards "evolving". That
is, they are making all old inventions but badly (e.g.
Python has "closures" but only 1 liners. What a joke.)
They "abstract away" complexity but badly (e.g. Ruby has
gems but you have no idea what the ruby stack is really
doing.). This is much different from Alan Kay's abstraction.
To quote Stroustrop "C++11 is a whole new language!" And
MapReduce as an "invention". Oh, please. The list goes on.
The worst part is the stupid hiring games meme. Solve our
puzzle! Take our quiz! Show us your blog! How many angels
can dance on the head of a pin? Make sliding colored blocks
on web pages!
Experience is a valuable asset in most professions but is
looked down upon in programming. Unless, of course, your
experience is "exact"... "oh, we need an Oracle 10.3
database guru with stored procedure experience".
If you want to know what companies to avoid...
look for the ones that emphasize "culture'.
I'm willing to bet that you have not hired anyone over 40, regardless of their github status.
You would lose that bet I'm afraid! To be fair, I've only ever hired one person over 40 and that was purely down to the fact that 95% of applicants I've received to any of my jobs to date are under 35.
You are right on one point, this advice is mainly geared towards younger professionals purely because someone with your breadth of experience I would expect to have plenty of worthwhile experience to surpass any 'popular' github repo.
Increasingly, I'm thinking that "show us your GitHub" is a good filter for companies or recruiters I don't care to work for or with, but then perhaps I'm not the target market; I've been doing this for a while, I'm not a shiny new graduate.
When I've interviewed people in the past, I've had them do some coding or domain modelling / OO design exercise as a phone screen. On the other side, companies I've interviewed with have used coding exercises (live or on paper).
I don't agree with the "if you're truly passionate" argument; challenge me in an interview and you'll find out how passionate I can be :) That doesn't extend to wasting my time with the latest recruiter fad. If I want your job, and if you want to see code, ask me to write you something. Pick a language, I'm not choosy; I'll tell you if it's one I know or if I'll need some extra time to learn it, and if I'm not interested in a job using $SCRIPTING_LANGUAGE_OF_THE_WEEK$ we can stop there.
If you are passionate about football, do you play football? or atleast watch others play football? That's definitely not your work. Why do you do it then?
Um, no, they don't. They're desperately trying to find a proxy for "is a good hire" without spending a lot of time on it. GitHub is just the latest in a long line of such.
I have some sympathy with them; recruiting is hard, vital to get "right", and susceptible to gaming by unscrupulous individuals. It's also hard to get rid of people once they're in (at least in the UK). However, this is WHY you have to spend a lot of time on it. There are no shortcuts. Adding another checkbox "Has GitHub account with code in it" to the process is futile. You know, it won't surprise me to see "faked" accounts with lots of (scripted) commits showing up. Easy to do. Or better, I'll sell you a convincing looking repository with some code and a cheat-sheet of what to say when asked about it at interview. Hey, cool new startup idea!
I don't mind giving bonus points for having a github account, but to take it as a bad sign? Actually no - good for us - we'll get all the interesting people stuck in jobs which don't allow own projects or make them hard to publish with useless bureaucracy.
This bothers me. I consider myself very passionate about programming - I think most people who know me would consider me to be a hacker.
That said, I work for a company that does not allow its code to be open-sourced. The job is demanding and after I put in 60+ hours a week, I simply feel worn out. On top of that, I have an 8 month old son which means that my sleep is fragmented at the best of times.
If you're unwilling to take the time to have a conversation with me to see my passion (and this is something I firmly believe comes across in any interview) then I am unwilling to waste my precious time with my son to have an inane dialog about my lack of a public portfolio.
I think what the OP is trying to convey is that, passionate people leave external residue of their passion. Which I think is true. Do you have anything (code, scripts, blogs) to show (stuff which you worked on) when you worked at a different place?
On a different note, 60+ hours a week sounds too much, not sure when you started working on this job, but if you keep continuing that. You. Will. Burnout.
Been 7 years, been burned out for nearly 6. ;) And I've been here since I've graduated university in 2005.
And to answer the next question: it's a bank. Every time I've contemplated leaving, there was some major life-changing event that prevented me from doing so (i.e. getting married, wife losing her job, buying a house, moving abroad, having a kid...). Likely I'm making some excuses here, but my point remains: I know a lot of hard-working hackers that simply don't have the time to build a decent GitHub profile.
Those hackers - whom I work with - all read HN extensively to stay abreast of trends, and toy around with side-projects. But all that "side coding" happens whilst at work. And therein lies the problem. If you have ever worked as a programmer on Wall St. you won't need me to spell it out for you, but for those who haven't: your firm owns your intellectual property. Even if it's not related to the firm's business, if you do that work on the firm's premises, it is theirs, and you are not entitled to export it. If you try it is generally considered as grounds for termination.
Most start up companies have open source at the core of their philosophy, so it naturally follows that people working at such companies will have a rich open source portfolio. For instance, today I contributed a fix to a plugin we're using. Making open source contributions is just part of my normal workflow.
If you are working at a company that doesn't value open source now, and you don't contribute to open source, it will be hard to transition to a job that does value open source contributions.
You mention your current job is in banking. If you were to apply to another banking job, you'd probably have a better chance of getting the position than someone who has a rich open source portfolio, but no experience in the industry.
Having a GitHub account with x projects is just the new has x years of experience in Java.
Sounds like cult-speak. "If you're not one of us, you're against us. Join us! Or be damned to eternity!" Lighten up.
Lots of startups disdain open source, for good reason. Been working at startups for 20 years, and none of them used open source for more than incidental reasons.
Here's the problem from the company's perspective:
You get thousands of resumes, and you can't possibly call every one of them. So you try to find ways to build a funnel, hoping that your heuristics are weeding out the majority of those who are unsuitable for the position and keeping the majority of those who are suitable.
It's not that the company is being a dick, or that they don't value the candidate's time; it's simply that they can't possibly find each and every needle in the haystack, or find any at all unless they start filtering on SOMETHING.
So unless you have something compelling on your resume and cover letter that makes you stand out (not saying it has to be source code; just saying it has to be compelling), you're a lot more likely to be filtered out of the first funnel and never make it to the phone screen to have a dialog.
The haystack of unqualified applicants (people lacking the skills needed for the job, people who can't even program, people who aren't a good cultural fit, people who don't take pride in their work, etc). You'd be surprised at the crazy shit that comes in via the jobs@mycompany address, or the sheer amount of obviously poorly matched resumes that come in via recruiting companies. It's enough to make you tear your hair out in frustration, and that's just at the initial resume scan phase! The general scarcity of engineers only exacerbates the problem by lowering the needle ratio.
It's hard to grok how difficult and complex hiring good people is until you find yourself on the hiring side of the equation. The leaked Valve manual does offer some insight, but even that's barely scratching the surface.
1) I'm not that surprised. For example, I know that half the recruiters who call me are asking about positions for which I'm blatantly unqualified and which simply don't appeal to me. When I've carried through to an interview, this often becomes abundantly clear to both sides.
2) If you're only even interviewing such a tiny fraction of the many, many applicants you hear from, you simply don't get to claim there's an engineer shortage. There's a shortage of engineers you like.
If you only hire the top 1% of applicants, you will never hire more than 1% of the applicant pool... no matter how large it is. You'll just get the vast majority of the engineering population pissed-off at your hiring practices because you reject 99 resumes for every 1 you offer to while complaining of a shortage.
I'm a junior level web developer in my first year at a salary job for such. I'm self taught and motivated, with a good CV and lots of completed projects under my belt.
Now it's become obvious my work has a serious visibility problem. Still pulling less-than-average wages, I asked my employer for a performance review which resulted in above average praise. Naturally I'm curious about the difference between my work and a Real Developer. They explained that a a web developer is dedicated with more experience on real projects etc, but reading between the lines it seemed like a perception that I've yet to pay my dues with long hours spent in frustration testing on overdue deliverables. So I understand that resentment, who do I think I am to walk in and demand wages consummate with my output? This is a communication problem. My abilities might mirror my peers, but reputation is effecting my career directly. At this point I realize most of my work is invisible, patching broken websites and refactoring old code, deploying small changes etc.
I need more visibility, I need to show off my skills and process more. I'm out of time and energy, my private projects at home are my own and I'd like to keep them private (for now). Now I'm working with my marketing person to setup a company development blog, hopefully that will give me more control over my image with this company.
It's never a good thing to feel unappreciated or underpaid. If your employer refuses to give you what you consider a fair wage, start looking elsewhere. Many employers tend to operate on inertia: Unless you're about to leave, it's easier to just ignore your problems. It's up to you to spur them into action, which it sounds like you've been doing to varying degrees, but if they still refuse to move, you have to kick it up a notch. Find a better offer from another company. If your current company truly values you, they will try to keep you on board. If not, you have a better offer anyway and will likely be valued more at the new place.
"...typical career programmer that doesn't touch a line of code between Friday night and Monday morning."
do late-night and weekend commits to a Github Firewall account count?
A pretty polarised view, here: we are all either 'career' 501 programmers, or disenchanted hackers?
What of the guys who choose companies they're passionate about and which inspire them to find spare coding time after hours and during weekends? You know, the kind of role you don't need an opining recruiter to source on your behalf.
I am a junior level developer and in both jobs that I have had since graduating, to the senior developers the term programmer refers to a professional software developer who takes pride in their work and does things correctly, while the term hacker can either mean someone who is attacking a system, or someone who comes up with kludge solutions to temporarily 'cover up' poor design decisions i.e. a 'hack'.
exactly - steve buckley's blog post uses the word "hacker" for shock value which reduces to spam for anyone who knows the difference between a hacker and a programmer.
There is one outstanding hacker in our company. He is one of the smartest people I've met. He knows so much and incredibly deep. However, he has no blog. He has no github account. He does not share own code anywhere. He does not use social networks. Your advices quite correct, but quite dangerous at the same time. I learned that CV are often misleading, so better to contact a person and ask some questions...
The "every good hacker has a github account" sentiment is a bit scary to me.
As far as I know, after signing my hiring contract, all of my work is owned by the company. Even work done at home; owned by the company. I do not believe this is unusual, every company I have worked for has had me sign a similar contract. If I make the perfect sandwich, the recipe is company property. I am not allowed to distribute company owned assets without the company's permission; and I am not going to ask the company for permission to share code they haven't seen on github.
Even if I wasn't contractually restricted, I would not contribute to a github account. My spare time is spent working on research projects for my corporation's benefit. Many of these become real products. A few I've had patented. These make us real money; github does not.
I hope I am not, in the future, disregarded for a job because I am missing a link to a github account in my resume.
This is exactly the problem with hiring. No one can take their ego out of the equation. Every single one of these 'hiring hacks' stems from our deep-seated desire to see ourselves as one of the "10x programmers". So we look for the same thing on other people to validate ourselves. When we're in a position to hire, we hire people who match our own particular quirks, re-enforcing the idea that we're one of the best. All of these subjective hiring hacks mean absolutely bullocks.
I see a lot of discussion over the Github comments. I understand the merits of having an account with some code on it, as well as the restrictions of corporations and time that prevent many people from maintaining a repository. However this is a red herring.
The problem is visibility.
The resume is very poor at showcasing your talents. All the common resume advice makes yours hard to differentiate from everybody else's. While having a website, Github, Bitbucket, or something else will help your case, you are already hobbled by the very generic-ness of the resume format. You can play with the fonts and format, but I've found that it's a fine balance between the "Pop" factor and annoying the reader.
The other major problem with the resume is they are very low cost in terms of those applying. A unscrupulous candidate can send out hundreds of resumes to shotgun his chances at landing a job. The time it takes to vet out these is many times higher for the hiring party, and it is multiplied by the number of resumes to vet. Companies must then increase the cost of applying, either through coding tests or puzzles, but this paradoxically turns away candidates who might be qualified and don't have the time. This is especially true for small startups who have problems with visibility of their own.
To me, the question isn't Github use or having a website, but how can I increase my visibility? Being physically present in front of people who are hiring is so ridiculously powerful, that most hires are made that way. Thus, obviously, meetups/networking/hackathons are a giant step in the right direction, but not everybody is in the correct neighborhood and can't casually attend. For those of us that aren't local, how can we disrupt the email->resume->round-file process that effectively dehumanizes most applicants?
I am warming up to short video submissions because of their ability to show the personality and creativity of the individual behind all the credentials. It allows for both a quick introduction, as well as introducing a subtle time cost, on behalf of the applicant and it doesn't add significant (as far as I know) time to the hiring manager.
On the other hand, maybe the hiring process is an NP-Hard problem.
61 comments
[ 3.2 ms ] story [ 175 ms ] threadI've also been responsible for hiring developers over the last five years and if I saw something like that, and there was anything useful to see on those links, the person would be at the top of the shortlist. The only time I ever came close to it - I offered the guy a job within the first hour of meeting him. I've also worked with that guy again since then.
Any hiring manager will have at least a dozen CV's in his inbox. Nano CV's take seconds to read and you are instantly made aware of the candidates ability plus it also gives an excellent indication of confidence in said ability which is a crucial factor in finding good people.
//edit: Actually, now I remember I was that guy many years ago. I was applying for a programmer at the tech dept of a publisher. Sent a very short cv with some basic data and a link to portfolio. The head of IT (actually a clueless older dude on sweatshop wage) came with a print, took a look at it very disappointed and said "that's the shortest cv I've received". And there wasn't even a laptop around to check my portfolio while speaking. From what I saw there I didn't want to work for them anyway, but it still proves my point.
A good startup is absolutely swamped by resumes. The less I have to hunt around for info about you, the better (remember: I don't know you from crappy-developer-x. Make it easy for me to differentiate!). I want to know what skills you consider relevant to the job, and how proficient you are in them. I want to know where you've worked before, what you did, and for how long. I don't want a bunch of URLS I have to click through, then navigate a bunch of sites, only to discover that you're a web developer with no Objective-C experience applying for an iOS position.
Once I have the essential info to decide that you at least have the basic skills for the job, THEN I want to see blogs, github accounts, etc.
Is it possible that you really aren't the most important thing in their world!?
Yours, A Bitbucket User
Though I certainly agree with you, people don't seem to notice any other hosting repositories.
The advice offered is great for a new programmer. Anyone going for a truly senior level position would be better advised to not do what is advised.
Keep in mind, a useful GitHub repo doesn't need to contain anything groundbreaking. Honestly, even a simple fizzbuzz application is enough to prove you can code.
However, you are trying to take your version of passion and project it onto everyone else, and I think that is harmful. If gwat is working 9-8 and in love with their job, they are passionate and don't need a github to prove it.
It's your phrase "truly passionate" that rubs me the wrong way, as did the content of the OP. Your definition of a True Hacker(tm) definitely does not match mine. Your post reminds me of a checklist for a recruiting fantasist's wet dream resume more than an explication of what makes hackers different, and I found it distasteful.
As always, YMMV. I can only speak to how the post struck me.
I guess it depends on your situation. I was fortunate enough to spend most of that on the train and typically able to get a seat so usually able to code, and always at the very least read, so I managed to make use of this time.
Other than that, I've put plenty of weekends into my projects too.
As Steve said, if you're passionate enough about it you'll find a way.
Honestly though, this gives a decent three step template for how to get yourself on the top of the pile in about ~1-5h worth of work:
1. Register a GitHub account, fork some projects that look cool
2. Register a domain, set up a yourname.github.com page for hosting, and add your contact info and link to github, whatever. Set up a mail redirector.
3. Upload your own project. If you don't have one, probably a good idea is to replicate some basic utility. How about pretty printing JSON using python from the command line?
Bam! Passion, done. For extra credit, create a blog and write two-three posts on why Java is verbose, something on getting started with node.js on your machine and a benchmark of your json utility and another one.
In all sincerity, when I look at candidates I also look hard for passion, and a blog, github, stackoverflow, etc puts them at the top of the pile.
As a counter anecdote, I've worked with tons of really, really good developers who went home at five, and came in at nine, and brought it every day. For most of them, life happened and with two kids it's harder to be prolific or show resume-friendly passion.
On the other hand, I doubt any of them will ever need to send in a resume anyway.
Fake or not, sounds hirable.
Sounds pretty standard graduate fare, but can they solve an actual coding problem with me? I don't mind what language they use, and they can have any IDE from a pencil and paper to a modern autocompleting behemoth.
The biggest giveaway is that there are no projects which are just for fun.
Incidentally, I've observed that the "just for fun" projects is a good trick for identifying a serious economist as well. A real economist Tyler Cowen obsesses over the economics of finding good restaurants and whatever else tickles his fancy, whereas a pretender like Krugman is all serious policy issues (both examples of economists who's policy I tend to disagree with).
[edit: just noticed someone downmodded you. WTF, how does your valuable correction to my comment deserve a downvote?!?]
Well bravo you. The problem with recruitment in our industry is not the candidates with no GitHub account, its the egomaniacal interviewers who waste no opportunity to turn any interview, in this case any application, into a passive-aggressive pissing contest.
Perhaps its acceptable for an interview to be adversarial, but I don't think any other industry matches the tech industry for the utter hostility of the interview process.
My disregard of people who don't commit to their own projects is entirely a personal choice and I didn't intend on that point to be a direction.
As someone who is a programmer for 41 years, leads multiple open source projects, posts to github on a daily basis, and writes code every day I find this trend disturbing. I have interviewed for a job where I helped implement the compiler they use and I'm "not qualified for the job".
People ask me why I'm not in management. I've turned down several "promotions" in companies because I live to program. Why would I move from the top of my skill set to the bottom of a career I know nothing about?
So your advice is interesting but seems to have a target audience of recent graduates, not seasoned professionals. Look over your hiring record. I'm willing to bet that you have not hired anyone over 40, regardless of their github status.
Sadly, this means that we will continue to repeat the same mistakes "for the first time". Knuth's literate programming, Alan Kay's Meta insights, Chandy and Misra's parallel work, and other fundamental quality gains will have to wait for another generation, assuming that generation ever gets its chance.
What I see are languages without standards "evolving". That is, they are making all old inventions but badly (e.g. Python has "closures" but only 1 liners. What a joke.) They "abstract away" complexity but badly (e.g. Ruby has gems but you have no idea what the ruby stack is really doing.). This is much different from Alan Kay's abstraction. To quote Stroustrop "C++11 is a whole new language!" And MapReduce as an "invention". Oh, please. The list goes on.
The worst part is the stupid hiring games meme. Solve our puzzle! Take our quiz! Show us your blog! How many angels can dance on the head of a pin? Make sliding colored blocks on web pages!
Experience is a valuable asset in most professions but is looked down upon in programming. Unless, of course, your experience is "exact"... "oh, we need an Oracle 10.3 database guru with stored procedure experience".
If you want to know what companies to avoid... look for the ones that emphasize "culture'.
Either something's wrong with me, or something's wrong with this profession.
You would lose that bet I'm afraid! To be fair, I've only ever hired one person over 40 and that was purely down to the fact that 95% of applicants I've received to any of my jobs to date are under 35.
You are right on one point, this advice is mainly geared towards younger professionals purely because someone with your breadth of experience I would expect to have plenty of worthwhile experience to surpass any 'popular' github repo.
When I've interviewed people in the past, I've had them do some coding or domain modelling / OO design exercise as a phone screen. On the other side, companies I've interviewed with have used coding exercises (live or on paper).
I don't agree with the "if you're truly passionate" argument; challenge me in an interview and you'll find out how passionate I can be :) That doesn't extend to wasting my time with the latest recruiter fad. If I want your job, and if you want to see code, ask me to write you something. Pick a language, I'm not choosy; I'll tell you if it's one I know or if I'll need some extra time to learn it, and if I'm not interested in a job using $SCRIPTING_LANGUAGE_OF_THE_WEEK$ we can stop there.
If you are passionate about football, do you play football? or atleast watch others play football? That's definitely not your work. Why do you do it then?
I have some sympathy with them; recruiting is hard, vital to get "right", and susceptible to gaming by unscrupulous individuals. It's also hard to get rid of people once they're in (at least in the UK). However, this is WHY you have to spend a lot of time on it. There are no shortcuts. Adding another checkbox "Has GitHub account with code in it" to the process is futile. You know, it won't surprise me to see "faked" accounts with lots of (scripted) commits showing up. Easy to do. Or better, I'll sell you a convincing looking repository with some code and a cheat-sheet of what to say when asked about it at interview. Hey, cool new startup idea!
That said, I work for a company that does not allow its code to be open-sourced. The job is demanding and after I put in 60+ hours a week, I simply feel worn out. On top of that, I have an 8 month old son which means that my sleep is fragmented at the best of times.
If you're unwilling to take the time to have a conversation with me to see my passion (and this is something I firmly believe comes across in any interview) then I am unwilling to waste my precious time with my son to have an inane dialog about my lack of a public portfolio.
On a different note, 60+ hours a week sounds too much, not sure when you started working on this job, but if you keep continuing that. You. Will. Burnout.
And to answer the next question: it's a bank. Every time I've contemplated leaving, there was some major life-changing event that prevented me from doing so (i.e. getting married, wife losing her job, buying a house, moving abroad, having a kid...). Likely I'm making some excuses here, but my point remains: I know a lot of hard-working hackers that simply don't have the time to build a decent GitHub profile.
Those hackers - whom I work with - all read HN extensively to stay abreast of trends, and toy around with side-projects. But all that "side coding" happens whilst at work. And therein lies the problem. If you have ever worked as a programmer on Wall St. you won't need me to spell it out for you, but for those who haven't: your firm owns your intellectual property. Even if it's not related to the firm's business, if you do that work on the firm's premises, it is theirs, and you are not entitled to export it. If you try it is generally considered as grounds for termination.
If you are working at a company that doesn't value open source now, and you don't contribute to open source, it will be hard to transition to a job that does value open source contributions.
You mention your current job is in banking. If you were to apply to another banking job, you'd probably have a better chance of getting the position than someone who has a rich open source portfolio, but no experience in the industry.
Having a GitHub account with x projects is just the new has x years of experience in Java.
Lots of startups disdain open source, for good reason. Been working at startups for 20 years, and none of them used open source for more than incidental reasons.
You get thousands of resumes, and you can't possibly call every one of them. So you try to find ways to build a funnel, hoping that your heuristics are weeding out the majority of those who are unsuitable for the position and keeping the majority of those who are suitable.
It's not that the company is being a dick, or that they don't value the candidate's time; it's simply that they can't possibly find each and every needle in the haystack, or find any at all unless they start filtering on SOMETHING.
So unless you have something compelling on your resume and cover letter that makes you stand out (not saying it has to be source code; just saying it has to be compelling), you're a lot more likely to be filtered out of the first funnel and never make it to the phone screen to have a dialog.
It's hard to grok how difficult and complex hiring good people is until you find yourself on the hiring side of the equation. The leaked Valve manual does offer some insight, but even that's barely scratching the surface.
1) I'm not that surprised. For example, I know that half the recruiters who call me are asking about positions for which I'm blatantly unqualified and which simply don't appeal to me. When I've carried through to an interview, this often becomes abundantly clear to both sides.
2) If you're only even interviewing such a tiny fraction of the many, many applicants you hear from, you simply don't get to claim there's an engineer shortage. There's a shortage of engineers you like.
If you only hire the top 1% of applicants, you will never hire more than 1% of the applicant pool... no matter how large it is. You'll just get the vast majority of the engineering population pissed-off at your hiring practices because you reject 99 resumes for every 1 you offer to while complaining of a shortage.
They must exist. How do you avoid missing them?
Now it's become obvious my work has a serious visibility problem. Still pulling less-than-average wages, I asked my employer for a performance review which resulted in above average praise. Naturally I'm curious about the difference between my work and a Real Developer. They explained that a a web developer is dedicated with more experience on real projects etc, but reading between the lines it seemed like a perception that I've yet to pay my dues with long hours spent in frustration testing on overdue deliverables. So I understand that resentment, who do I think I am to walk in and demand wages consummate with my output? This is a communication problem. My abilities might mirror my peers, but reputation is effecting my career directly. At this point I realize most of my work is invisible, patching broken websites and refactoring old code, deploying small changes etc.
I need more visibility, I need to show off my skills and process more. I'm out of time and energy, my private projects at home are my own and I'd like to keep them private (for now). Now I'm working with my marketing person to setup a company development blog, hopefully that will give me more control over my image with this company.
You're the one producing the output. Duh.
do late-night and weekend commits to a Github Firewall account count?
A pretty polarised view, here: we are all either 'career' 501 programmers, or disenchanted hackers?
What of the guys who choose companies they're passionate about and which inspire them to find spare coding time after hours and during weekends? You know, the kind of role you don't need an opining recruiter to source on your behalf.
As far as I know, after signing my hiring contract, all of my work is owned by the company. Even work done at home; owned by the company. I do not believe this is unusual, every company I have worked for has had me sign a similar contract. If I make the perfect sandwich, the recipe is company property. I am not allowed to distribute company owned assets without the company's permission; and I am not going to ask the company for permission to share code they haven't seen on github.
Even if I wasn't contractually restricted, I would not contribute to a github account. My spare time is spent working on research projects for my corporation's benefit. Many of these become real products. A few I've had patented. These make us real money; github does not.
I hope I am not, in the future, disregarded for a job because I am missing a link to a github account in my resume.
The problem is visibility.
The resume is very poor at showcasing your talents. All the common resume advice makes yours hard to differentiate from everybody else's. While having a website, Github, Bitbucket, or something else will help your case, you are already hobbled by the very generic-ness of the resume format. You can play with the fonts and format, but I've found that it's a fine balance between the "Pop" factor and annoying the reader.
The other major problem with the resume is they are very low cost in terms of those applying. A unscrupulous candidate can send out hundreds of resumes to shotgun his chances at landing a job. The time it takes to vet out these is many times higher for the hiring party, and it is multiplied by the number of resumes to vet. Companies must then increase the cost of applying, either through coding tests or puzzles, but this paradoxically turns away candidates who might be qualified and don't have the time. This is especially true for small startups who have problems with visibility of their own.
To me, the question isn't Github use or having a website, but how can I increase my visibility? Being physically present in front of people who are hiring is so ridiculously powerful, that most hires are made that way. Thus, obviously, meetups/networking/hackathons are a giant step in the right direction, but not everybody is in the correct neighborhood and can't casually attend. For those of us that aren't local, how can we disrupt the email->resume->round-file process that effectively dehumanizes most applicants?
I am warming up to short video submissions because of their ability to show the personality and creativity of the individual behind all the credentials. It allows for both a quick introduction, as well as introducing a subtle time cost, on behalf of the applicant and it doesn't add significant (as far as I know) time to the hiring manager.
On the other hand, maybe the hiring process is an NP-Hard problem.