Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
GitHub streak: End-game and post-mortem (manishearth.github.io)
40 points by Manishearth on May 28, 2015 | hide | past | favorite | 29 comments


I've written in the past about how I love streaks as a motivating tool.[0] It gives a motivation to get up and do something, when you'd rather do nothing.

One thing I try to do on goals that require an action, is not to add stipulations to it like the OP eventually did in the beginning. If you make the hurdle too large you're more likely to break the streak and more likely to fall into inaction, so allowing a small contribution to continue the streak is a net positive. For me, I want to study French every day and I accept that somedays I'm going to be so busy with work that I can only afford five minutes. That's fine--it keeps me motivated the next day and that day likely won't be just five minutes.

I've found it doesn't work for everyone. I personally see it as a game/challenge whereas when I speak to other people they find it overwhelming. As always, there's no one-size-fits-all when it comes to motivation. It looks like it worked for OP to get to where they wanted to go, though.

[0] http://blog.hellopico.com/the-seinfeld-method-dont-break-the...


> is not to add stipulations to it like the OP eventually did in the beginning.

Agreed; in retrospect setting rules was a bad idea (I wanted to keep it "pure" but that was a very arbitrary standard and hard to keep up). Later in the process I was able to maintain the streak with small things when I had lots of other commitments -- but that didn't make me downspiral into only small contributions -- I bounced back -- which was the important part.

> you're more likely to break the streak and more likely to fall into inaction

This was what I was mostly afraid of once I was well-past the 100 mark. By then I knew that I had gained a lot from it. But I was still afraid that breaking the chain would let me break it again, and again, until it's back to being random bursts (but more regular bursts).

Now, I'm no longer afraid of that, because I know that the streak isn't motivating me at all anymore. I'm being motivated by -- whatever it is, I don't really know :P

> there's no one-size-fits-all when it comes to motivation.

Big +1


It is actually demotivating to me. I know I can never live up to my epic October streak, so why bother?


I myself find steaks to be a motivating tool. Or at least I'm motivated to eat them.


Steaks for streaks?


I can attest to this methodology for increasing self-motivation for OSS contributions. Great post!


:D

So that's why you went on a fuzz-all-the-things spree on Servo!

(Btw, thank you for that fuzzing spree -- you got some interesting use cases for afl-rs and found bugs and now I want to do the same!)


Great to see you and other work on rust-lang. It looks like a great open community!


Using a lack of GitHub contributions as a way to disqualify candidates sounds like a really bad idea. Does anyone do that? Seems like a strawman argument.


A lot of companies say "Can you link to your GitHub" to applicants -- including applicants fresh out of college -- and the applicants don't really know if "No" or "Yes, but there's nothing there" is an appropriate / acceptable response.

I've had this happen to me, when interviewing (in 2011) with an bachelor's and an expected master's from MIT, and a bunch of other great experience on my resume. I'd had a phone screen, and got an email from one of the engineers asking to see my GitHub. There wasn't very much there at the time, and I was confident I was out of the running without a GitHub presence, so I didn't even reply. A friend at the company said that they liked me and were just curious (and I ended up replying with "well, here's a bunch of patches I sent to the Debian BTS", and ended up getting the offer).

I see MIT classmates with years of real work experience behind them worrying about their GitHub presence and how it affects their future jobs. I see questions on Reddit from students who've been asked this question. I see job postings that ask for a link to your GitHub. I don't know if anyone explicitly disqualifies candidates based on a lack of contributions, but there is absolutely an impression that it's a strong negative signal.


While I do understand that there's possible misrepresentation resulting from judging candidates based SOLELY on GitHub profiles, for those with presentable contributions/projects readily available on GitHub, I feel it makes for a much fairer representation of the candidate than many of the alternatives (whiteboarding, solving algorithm puzzles under pressure, cultural fit tests, etc).


Yes, absolutely (and many of those alternatives suck).

On the other hand, there's something of an inherent metrics bias when you evaluate some candidates on one metric and others on a different one. It's very hard to calibrate those two scales, and there's a risk that you'll be tempted to do things like compare one candidate's GitHub PRs to another candidate's whiteboard code. Even if you don't make that comparison directly, you'll never dislike a GitHub-evaluated candidate for not remembering standard APIs, making off-by-one errors (if they have the luxury of a test suite), taking half an hour to understand a problem, etc. You'll never dislike a whiteboard candidate for breaking with existing style, not commenting or writing good commit messages, being a jerk to people who send in support requests as issues, not being able to respond to code review feedback, etc.

If you have unlimited headcount, you might be able to set independent baselines for both styles of evaluating candidates (although tuning them will, again, be hard), but if you're at all comparing candidates to each other, it seems likely to cause one set of candidates to have a much easier time than the other, based on which things your engineers value. And, necessarily, that means you'll be willing to hire worse candidates from one set than from the other.

Using a GitHub profile to bypass a coding challenge, FizzBuzz, or similar is fine. Using it to break ties or to allow a candidate to express "I'm actually good at my job, even though I'm bad at interviews" is probably fine, especially if there are other ways to do those. But having two different evaluation strategies is likely to be unfair both to yourselves and to the candidates.


I honestly don't know; I'm still a student and have never had the chance to experience this first-hand. Various people have mentioned similar things though.

https://twitter.com/sarahmei/status/597276242887348224

https://twitter.com/nick_r_cameron/status/597328012787384320


I doubt it, that's a very silly measuring stick.

It's nice when we have a candidate with a GH history, but I'd venture a guess that 90% of the best code written by the engineers we hired was written for some other company in private repos. I can't imagine that being too far outside the norm.


Sadly, there are a lot of absolutely silly measuring sticks in widespread use in tech industry hiring. Remember when everyone was asking logic puzzles because they heard that's what MS did?


What do you mean "remember"? They still do that! :/


No, no, now they do that because they heard that's what Google did. Wrong bubble. :P


Its great to have a goal to increase participation. However, this seems to be a point of vanity than something beneficial at that point.


Well, initially I started off by having a friendly competition with a senior of mine (both of us FOSS enthusiasts) after noticing my own inadvertant-streak. At that point it was less about vanity and more about competition and fun. Of course, when I reached 50 I was more than happy to boast about it :P

At this point -- keeping it up would be mainly a vanity thing (but I'm not consciously doing so). For the past few weeks I haven't even thought about it unless I open my profile and notice ("has it been that long? Wow."). It's just continued with no conscious support -- I used to sometimes think "hey, did I forget to commit today" (the answer would usually be no, but the point is that I was still asking myself this). Now I don't. Not because I know I've committed, but because the streak doesn't matter.


FYI, the GitHub streak can be manipulated.[0] My apologies for the lack of documentation. Basically, since you can modify the author and commit date in Git, you can trick GitHub into thinking you've committed something several years in the past[1] or the future[2]. Some people have written things that allow you even write messages into the commit graph[3].

[0] https://github.com/zg/streaker

[1] https://github.com/zg/streaker/commits/master?page=710

[2] https://github.com/zg/streaker/commits/master

[3] https://github.com/jbranchaud/commitart


Yeah, I know.

In fact I have a bunch of commits on my github account that predate the account itself because of commits imported from a project that used to be on svn.

As I mentioned in the post; the streak is useful as a personal metric; so if you're cheating, you know, and it's pointless :)


I wonder how you can go on that long.

You can easily see in mine (https://github.com/daurnimator) when I went on vacation for 3 weeks in November/December last year.


I'm not sure if you know, but GitHub's stats depend on the viewing user. Most who look at my GitHub profile will see a streak of only 13 days[1], but my coworkers see 171, and I see 871[2]. If the viewer can't see a repo, it won't show up in the stats.

1. https://github.com/ggreer

2. http://geoff.greer.fm/photos/screenshots/Screen%20Shot%20201...


Also if you contribute to a clone, it won't show in the stats.

It is a metric for self-motivation, but I guess it can be wrongly used for other things. Is like the "GH is your CV" thing, ignoring that there are other code hosting environments and non public code.


I always figured this, but never cared to confirm.

Otherwise, you should take a holiday!


Well, last summer I was doing GSoC so it was easy.

During the semester I have to stay put anyway. Any weekend excursions I would be taking a laptop with me for studying (we have a lot of coursework, and I usually am overloaded with stuff so I need to allocate at least some weekend time for coursework) so I would squeeze in some programming and push it when I got access to internet again. Programming is a refreshing change from physics coursework (which I like too, but it gets tedious) and other stuff, so it's easy to do it daily.

When I went on vacation to the Sunderbans I was filing issues and making minor fixes from my phone.

This summer my internship is elsewhere, and while I do still contribute to Rust/Servo because I love doing it, as mentioned in the post I'll probably forget one day or just take a break.

At this point, if I go on vacation or something I'm just going to drop it -- as I mentioned I don't care about the streak anymore and what I gained from it won't go away unless I take a really long break.


Your streak is impressive. I have a question - Do you ever suffer from FOMO [1] while investing yourself in writing code everyday? Of course, I know, programming is fun but does it turn into anxiety when you see other people's achievements?

[1]: https://en.wikipedia.org/wiki/Fear_of_missing_out


Not really, no.

As far as missing out on Real World social interactions and stuff; I make sure I get some sunlight and talk with people :) Living in a hostel I get a lot of that anyway. Plus, between organizing events and going to events of various kinds I don't miss out on much.

As far as missing out on programmery things go; I don't mind. Part of this is because programming has been a hobby for most of my life and only recently did I start treating it as a viable career option. (I had thought of it as a "backup plan" in the past but didn't do much to maintain that).

I'm not doing as many large contribs as I was doing last summer or this winter. And yes, that can get to me at times. I have this huge queue of things that I've planned to work on, and sometimes someone else picks it up. It's initially saddening, but then I'm happy because someone else wants to work on something I thought up, and if they hadn't, it would never have been done in the first place!

In open source you're generally surrounded by awesome people so I'm used to it; I don't really have anxiety issues due to that.


Awesome! That was quite inspiring - you managed to travel, contribute, write and go to events while still keeping up with all of your coursework. :) I often complained about lack of time for crossing-out things from my to-do list but it is my late realization that, one can be as productive as he wants and time is not really as big as constraint as it feels.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: