What do recruiters look out for?
If the profile is empty, I close the tab and find something else to talk about. I will never, ever penalise a candidate for an empty GitHub profile. So many people just do not have time for open source and that’s totally fine.
GitHub activity helps lubricate conversation at interviews, but it should never be taken as anything other than a superficial representation of the candidate’s ability or experience.
But anything on your resume or linked from your resume is fair game.
If you haven't been able to meaningfully participate in open-source work there's no penalty, but don't link to an empty GitHub page on your resume.
Nobody is a expert in everything, of course, but if you specifically put "TCP/IP" or "OOP" on your resume, you better be able to explain TCP vs UDP or class vs interface (both real examples from real phone screens I've done).
If you have something really notable in your GitHub account, maybe it should probably be on your CV/resume, too!
It feels to me like having a blog site and only putting notes, scraps and drafts in it. Maybe there’s some functionality i’m not seeing?
On the other hand, it's hard to imagine someone senior enough (in terms of experience, not years) who haven't ever hacked a FLOSS dependency to do something it originally didn't.
Of course, it could be that the source wasn't on GitHub, or that author did effort to persuade upstream into accepting their changes and then repository was removed, or that the code is in the company's internal systems (which can be a good idea for various reasons). However, I'd say that most typical scenario is "you see it, you find it on GitHub, you fork it, patch it and leave it there - just in case". I have a bunch of those, and I'm just archiving those repos when I recognize they're not relevant anymore. It's not like I'm paying for those - and having an ancient fork had helped me once, when someone from my old place had a problem and asked me if I still remember how things worked there.
I mean, many (most?) of software engineers are directly working with free software every day. And, sadly, world isn't that perfect this software provides everything one might need without any tinkering. :) So, in a certain sense, "no time for open source" is a little bit questionable.
But, yeah, there are valid reasons why a good engineer may not even have GitHub account at all. Unless you're drowning in a torrent of great-looking resumes (and you're not GitHub Inc.), no harm in not making GH account a mandatory requirement.
No, I find that pretty easy to imagine.
I can think of plenty of developers working in non-OSS (either internal/nonlicensed or proprietary licensed) shops who, even if they have and work with OSS dependencies, and even if they might hack on them for the sake of the projects they work on, have never, by (or at least as a result of the requirements of) employer policy, contributed a thing back.
Of course, that's because I've spent most of my career in that kind of environment, which is why I've got very little on my GitHub none of which has a direct relationship to my paid work.
We work in GitHub, and of those who use their personal profile for work, all of them have "empty" profiles and no meaningful OSS contributions. They spend their free time with their family and in other hobbies.
People who hack on OSS for fun are usually good developers, but good developers rarely hack on OSS for fun especially once they get older.
I think there's many more working on proprietary software, we just naturally don't hear about it due to its nature. Open source is prominent only because it's public.
* I want to see thoughtful README files. If the README is whatever was generated default by the framework and not edited at all, that's a huge groan and turn off and you lose tons of strength (credibility) as a candidate.
* I want to see your code looking pretty. Consistent indentation, run through a linter, good comments, and so forth. Would I be able to contribute to and maintain this code?
That's pretty much it. The most important thing that companies want to see is employment history, either at brand name companies or somewhere where you've already been doing the job they're hiring for.
It’s a personal Github profile. Why would anyone add thoughtful readme’s or a clean coding style if they’re the only contributor?
I mean, those things are great of course, but not sure if I’d expect it on Github.
As a developer in a professional context you'll hardly ever work alone or be the sole contributor.
Even if you use a GitHub profile just as your personal code repository code still is communication, even if it's just with your future self.
Therefore communication skills are crucial. A well-thought-out README file and consistent, readable code help others to understand your work. These aspects often are more important than what the code accomplishes.
Working, even efficient, but unmaintainable code is a risk. Ultimately, code is a precise specification of what the software at hand is supposed to do. If that specification is hard to understand it'll be much less useful.
If I see a tower of inscrutable Haskell on someone's Github, that is a great thing: both that they have the urge to do it, and the good sense to scratch that itch away from the company's codebase.
If a developer writes sloppy code when they're doing it for passion, then that doesn't show them at their best. Of course we all have repositories, tools, or code, that was just thrown together to solve an immediate project but in general I'd expect something that is a labour of love - not a project for work - to be something that they'd put more effort into.
But on the other hand I'm no employee and don't know the "virtues" employers look for, haha.
I think the obvious thing to do is create a showcase profile and a scrappy scratchpad profile. keep the former clean and polished
Toxic and off putting. You put too much weight on relatively minor things. It’s preventing you from fairly considering the rest of the candidate. You could be the one to teach them to do READMEs well.
1. A developer who doesn't respect himself first and foremost to write a README/maintainable code so that his future self and others can have an easier time.
2. A developer who cares about communicating his work to himself/others and making the environment easier for everyone to work for the future.
Right.
Google is known to can applications if there are typos in either the resume or cover letter. Supposedly there is a statistical correlation that backs this. While this seems arbitrary and absurd it is important to know it's a thing so you can at least work around it.
Do you ignore all my half-done prototypes and junky hacks and experiments?
It's almost like a dating profile. You use the items as jump-off points to start a conversation and get to know the other person better.
That's a good description!
I'm riffing on a comment chain elsewhere in the thread about candidates who provide links to empty Github profiles.
Reading the comparison to online dating just makes me think of the dating profiles out there that have a couple of photographs, but nothing beyond the line "Just ask" in the summary/description field of the profile holder.
But agree, it's an interesting and apt comparison I think.
To me, being able to see an interviewee's code is like being able to see an artist's portfolio. Alternatively, if an interviewee can point to mailing lists, code repos, etc, for open source contributions, that also is very valuable.
Some other folks in the comments are saying they use Github, etc, as a dumping ground for projects. Still valuable. In my opinion, that means you're interested enough in the project to at least save the code. Plus, even quick and dirty code can have valuable information. Does this person understand, for example, the common idioms in C, C++, Python, etc? (Specific example, using malloc/free/printf correctly, new[]/delete[], not using for i in range(len(foo)). Simple stuff like that.)
Note a repo containing "this is code where I'm learning this language, this library, etc" won't have the best use of the language, obviously, but will be a good sign this person is learning something new. It's another signal.
Just my opinion.
But sometimes I can get a really strong positive signal from a GitHub profile. All else being equal, if a candidate has a meaty personal project, or has been an active contributor to other projects, etc, I can greatly increase my confidence that they're a good hire by reading through their code. It can sometimes show me that they're really capable in some dimension that's hard to assess otherwise.
In other words, a GitHub profile is not a make-or-break thing for me, but hiring is always based on information that's more limited than one would like, and sometimes a GitHub profile can provide enough extra signal to make a hiring decision easier.
I will say that one specific thing that is really helpful is the presence of simple README files for original projects that describes what they are and who the author is.
95% of the times when they respond with "I don't have a Github|StackOverflow profile" they prove to be juniors or time wasters applying for a high salary. That's fine if I'm looking for a junior but they often apply for senior positions.
I trust the data on these two as I consider it to be really difficult to get by as a programmer without decent activity on at least one platform. HAving code out there, IMHO, adds better than any CV. It's just data but it helps me get a clearer view.
I wrote the /bin/ps program used by Linux. You might have heard of it. I maintained procps for about a decade. I also did a few Linux kernel changes. That all stopped around 2006 due to having 5 kids and working at a start-up.
StackOverflow and Github were both created years later, in 2008. I still don't have much use for either. Occasionally one will show up in a search for something.
There is no indicator of my struggles. When I had them, I'd walk over to the office of a more-senior developer and have a chat. Back when I started as a professional software developer, the web... existed. It wasn't a place with forums for asking beginner questions. One could turn to Usenet or IRC, but that was often useless. We used to buy books about computer programming by traveling to a bookstore, usually paying with cash.
I've always used SO as a "read-only" source, and generally when I need an answer to a question not on there I ask on a relevant IRC channel. My github has quite a few OSS projects though.
Do you find there are any other devs like that?
I’ve answered questions enough that I have enough rep to edit review queues, and probably 90% of what gets asked on SO these days is unnecessary.
But if you have a high amount of applications then statistically it may work for you. Same as throwing half of the CVs in the bin, as you only hire lucky people.
Github and SO data is a conversion point, not a filter. Sure I am also suspicious if no public profile, but never exclude as it often has valid reasons.
My personally github code is a lot more slapdash than my commercial github code. Nearly all of my commits in commercial github repos are private repos so not on my profile except in the activity graphics.
I have worked with and hired really good developers with a great public github profile and with lots of SO points. I have also worked with many very experienced and good developers with no github or SO presence. And I have met people with lots of SO points that I never want to work with again.
But if you got too many applicants you can apply whichever filter you want. It just wouldn't work for me, or my location (London)
I’ve been coding since the 80s.
Some people don’t live on social networking - and that is, after all, exactly what those sites are.
You cannot learn new things without asking questions.
So I guess you weren't familiar with the industry before 2010?
SO is the most frequented place with the least reliable, least trustworthy information on current topics that comes to mind. In fact, all in all it's a very mediocre site (the 'practical programming' parts). Its only merit is its discoverability via search engines. The pearls are few among mountains of rubble. I wouldn't expect a really competent person to waste their time with that.
I think there’s a lot of people like that. Making github a mandatory requirement is strange.
This is the first time I'm hearing about something like this. Why would your employer sue you?
Now that Github allows free private repositories, if you're planning to use your profile as part of a recruitment process, you're arguably better off only making your best work public. It doesn't have to be your best code, just something you're proud of and are happy to talk about.
This may run counter to normal thinking, but I have no way of knowing the extent to which my assessment is unconsciously coloured by seeing code that isn't representative of your ability, so I worry about the impact of that.
Someone besides a recruiter? Might give it a glance out of curiosity and for conversation starter material, but if they're overly concerned about what's there or how much is there - you didn't want to work for/with them anyway. Honestly, most people that have been in the industry for any time at all quickly run out of free time and motivation for this stuff, and their github profiles will be rather barren as a result (unless they work at a company that publishes open source software, of course... but that's the exception not the rule).
In all, I find it to be a fairly poor signal. I get a much better feel for someone from conversation alone, and some well thought out questions about someone's previous projects and workflow usually tell me all I need to know.
So what am I looking for? Clean code that's more than just boilerplate. Comments, good logic, some sense of purpose. There can be garbage repos in there, too, but I expect there to be some that show off who you are.
In short, they want to see who you are. If your Github isn't showing who you are, you're not helping yourself by providing it to the recruiter.
Many companies will ask you to invest a couple hours of your life writing some toy project as a code exercise (often unpaid). Instead, we ask you to pick any open issue in an opensource project and contribute a few hours to fix it (we suggest links to a dozen issue lists filtered by "easy for beginners" tags) - we call it "social code exercise".
Of course if you have such contributions already you can skip this step. We will analyse your github profile and give extra points to:
* any PR to projects in our technology stack
* good online citizenship
* constructive, reproducible bug reports
* well written documentation
* test coverage
We penalize:
* unprofessional, disrespectful or toxic behavior while interacting with the community
* non-constructive comments and answers
The rationale is that while pushing the envelope with an opensource stack we often have to report (and fix) bugs or implement lacking features.
Projects like Python and Django have a high bar for accepting contributions so any candidate able to land a PR is capable of basic communication in English, writing acceptable code, documentation and tests.
Right away, I reported several bugs. I found a problem in the executable loader, a problem with the division instruction, and a problem in the memory mapper. These could be considered software vulnerabilities if you accept that test code or a game might be hostile.
Despite the bugs, we hired him.
(now everybody will apply for the job so that I will find their bugs, LOL)
If it's okay, let me highjack one thread to ask, RECRUITERS, how would you improve further my Github profile?
Mostly overall activity, consistency in commit messages, and actual code and PR.
A couple of times I’ve seen real code and it certainly didn’t hurt.
Worth to note: GitHub itself does NOT matter, the contents your profile and you contributions do. Prefer GitLab? awesome! Just don't forget to put it in your resume.
Isn’t that your job as a hiring manager? Also how do you know that their github projects actually work in production? Do you do a through code analysis to evaluate performance bottlenecks or do you do a build-deploy-test do figure that out? IMO if you want to evaluate candidates on complete end to end projects you should give them assignments based your your evaluation parameters and ask them to explain their code/solution
It's on you to communicate your intent for things you release publicly. That means a README.md which explains what the reader is looking at. If it's just some half baked idea you've been kicking around, say so. Tell your reader what to expect, because if you don't, they WILL expect the wrong thing.
Effective communication is the foundation of any relationship, including work relationships. Show that you can communicate your thoughts. Guide your reader. Make it dead simple for them to see the best of you.
Beyond that, it's helpful to have a showcase "portfolio" project that is written as if you were presenting a finished product to a customer, including documentation, unit tests, ci, good design, the works. Showing that you can see a product through from initial design to release will impress people. Do you need it? No, but it will set you apart from the crowd.
However, there is one thing I look for that will, usually, be a huge negative against the candidate. I have run into many candidates where their github projects are just 100% clones of various tutorials. When a github profile is only full of such projects it doesn't tell me anything different than what is on your resume, and my trust in the candidate goes down.
Other than looking at code quality, I actually look into their commit history and see if they are using the various best practices of git.
Something I really try to find is how they communicate when writing bugs, responding to questions, differences in opinion etc. If you find someone who can respond to an angry user of their library because their feature wasn't implemented, or that can politely turn down a PR for example, that's really good sign.
Here are some things that I check for in a GitHub profile, as a hiring manager and as a recruiter (hooray startup roles!):
1. Repos that aren't just forks. I've seen plenty of profiles where the majority or entirety of repos are forks. Unless there's some annotation that talks about contribution to those projects, I assume that those forks don't contain any actual development.
2. Code past the boilerplate. A lot of projects start with enormous boilerplate, checked-in node_modules, and large-app scaffolding. The README should have a pointer that says "actual code is in src/app/site" or something, otherwise I click around for where the commit message is something other than "initial commit".
3. A real README.md. Bonus points for README.md in the subdirectories.
4. A "real" photo of you. LinkedIn profile pictures tend to be very professional and buttoned-up (sometimes literally). Most GH profile photos in my experience are a closer of the real person though. You're more likely to see a casual photo, a hobby, someone's dog, a photo of their art, etc. When that person is working with you, they're going to act more like their GitHub profile photo than their LinkedIn profile photo. Conversely, when I don't see a profile photo, that's concerning.
5. Nothing too boring, or too creative, in the name. The era of screen-name judging is not over, and you will get judged based on your GitHub handle. John35082192 makes me think that John reluctantly created a GitHub account and loathes using it. XxCodeMurdererGoatSlayerJohnnyXx makes me think that John is a bit of a weirdo, and his code reviews may be... uncomfortable.
6. Stars. If your real repos have real stars (or even forks), that means that not only have you creating something cool, but you've created something useful, and marketed it at least somewhat well. NB: repo stars are not expected for professional-profile style repos, only if you're creating something for an actual OSS community.
7. A real github.io page/repo. Maybe this is the basis of your professional profile, maybe there's a link to a personal website in your profile, but I am interested in seeing how you present yourself beyond which repos you show first.
FWIW, as a woman, I leave my photo off github to avoid the assumptions people make when they know someone’s gender. In fact, there’s research to back that up: https://arstechnica.com/information-technology/2016/02/data-...
Just something to humanize the profile, even if it doesn’t gender the profile.
EDIT: and re forks: surely regular PRs against other projects would also tell you something?
Perhaps you are not aware of the workflow many fs developers use when creating pull requests? You start out by forking the project's repository and create a branch in it where you put your bug fix. Then you submit a pull request using the github UI. End result is that your profile contains a lot of repos appearing to never have had any activity unless you dig into them.
It also appears that you are using candidates github profiles more for finding negatives rather than positives, which is disheartening.
Ever considered how women or non-whites feel about this?
They'd use GH to evaluate coding style and as a proxy for skill level.
It was a terrible proxy IMHO, because a lot of the projects or contributions they were looking at were years old. (People change and grow.)
Anyway, if there's a takeaway here it's this: Delete old repos that you wouldn't feel comfortable putting forward as examples of how you currently work. Or refactor the code to match what you'd currently do. Or don't maintain any public GH profile, frankly -- there are plenty of great engineers out there who have a family and no time to contribute OSS.
I'm not sure how often these come into play, but I would also bet that outfits that do don't brag about it.
The list of repos give a rough idea about the tech stack the person prefers.
That's it.
If it is Javascript or Python (I can read & assess the quality of the code of these languages) I sometimes dig into some project, if it is not a fork.
- Green squares
Everyone asks for github profile but no one actually has the time to analyze it. I asked an interviewer about it and said he admitted he hasn't looked at it.
But that’s just my opinion.
Is this generally true?
Daily stars in the seize_the_means_by_any_means repository is going to get your resume tossed.