Hacker News new | ask | show | jobs
by philangist 4088 days ago
Speaking as a twenty year old who didn't go to school and doesn't have a degree would you hire me - or at least consider me for an interview - based off my github here (https://github.com/philangist?tab=repositories). I am actually gainfully employed right now at a job I like a lot, but I sometimes worry that I might be pigeonholing myself due to my lack of a formal degree.
1 comments

I'd certainly consider you for an interview (you show actual development ability and an understanding of some important concepts in your work, which is much more than many interviewees), but speaking frankly, the profile is a little weak - it consists mostly of experimental or toy stuff without any kind of evidence of real-world application, no tests, nothing that's been packaged up for use by other people. These aren't bad, by any means, but by themselves they aren't something I'd look at and say "I want this guy working for me".

You don't have a lot of collaborative work (read: contributions to existing projects) or original work that others are using, which is one of the things I look for in candidates. I'm not just interested in a candidate's ability to write code, but in how they write code in the context of large projects, how they produce deliverables for consumption by other developers and stakeholders. Your Github profile isn't just a chance to showcase your ability to write code, but a chance to showcase how you write code with other people involved. A candidate who is actively contributing pull requests to other projects is very interesting to me, because they demonstrate an ability to collaborate with other people on a codebase they didn't originate, which is obviously necessary in business.

Your commits are clean, though, which is very good. I see way too many candidates with message after commit message like "stuff" and "changes" (anecdotally, I've found this to be pervasive in newly-minted CS majors and academic repositories). That's a major negative for me, because it suggests a lack of desire or ability to communicate the essence of your work.

A strong history of open source participation and/or a strong history of development of a personal project that is actively used somewhere are the biggest things I look for, because they speak not just to your ability to write code, but your ability to ship deliverables. After that, I look at code quality (cleanliness/use of idioms/lack of obvious bugs or errors) and commit quality (how disciplined are you in your commits, how well do you communicate what each change is for). The lack of those things isn't a "no" for me, but their presence is a big "yes".

> ...the profile is a little weak - it consists mostly of experimental or toy stuff without any kind of evidence of real-world application, no tests, nothing that's been packaged up for use by other people.

This is definitely true. I generally put up small one off projects where I implement an idea I'm interested in, as opposed to long-term libraries or applications that are intended to be used by others. For the longest time I wasn't technically skilled enough to contribute to other people's code, but now I think it's more about a lack of time and interest for me. I'll definitely make a deliberate effort to collaborate and work on other people's projects going forward. I'm curious to know though, what do you mean when you say that I "show an understanding of some important concepts in [my] work"?

Writing a garbage collector and binary wire protocol client, even if they're just toys, show an understanding of how things work that is important. A depressing number of professional developers are basically just stacking code legos that someone else built on top of each other until an approximation of the right result comes out, and never get deeper than that. The fact that you've even attempted a mark-and-sweep garbage collector marks you as someone who isn't afraid to get their hands dirty. It's a good thing.