Skip to content

Instantly share code, notes, and snippets.

@itsmikeq
Forked from kenchung/rdd.md
Created October 29, 2015 01:48
Show Gist options
  • Save itsmikeq/c8900f03c84768cff9da to your computer and use it in GitHub Desktop.
Save itsmikeq/c8900f03c84768cff9da to your computer and use it in GitHub Desktop.
Resume Driven Development Challenge

Resume Driven Development Challenge

Using the Github Archive API, create a command-line tool to find popular repos to add lots of hipster acronyms to your resume!

It should support a date range in the past in case time travel becomes possible and you decide to go back and learn different things.

You should use Ruby or Javascript based on the role you are being considered for.

Given the date range, you'll collect event data from the Github Archive and give each repo a popularity score.

  • Activity archives are available starting 2/12/2011.
  • Activity archives for dates between 2/12/2011-12/31/2014 was recorded from the (now deprecated) Timeline API.
  • Activity archives for dates starting 1/1/2015 is recorded from the Events API.

Example Usage

rdd [--after DATETIME] [--before DATETIME] [--top COUNT]

rdd --after 2015-03-18T13:00:00Z
rdd --after 2015-08-05T15:10:02-00:00
rdd --after 2015-03-16
rdd --top 500
rdd --after 2015-01-01 --before 2015-01-08
  Options:
    [--after=AFTER]    # Date to start search at, ISO8601 or YYYY-MM-DD format
                       # Default: 28 days ago
    [--before=BEFORE]  # ISO8601 Date to end search at, ISO8601 or YYYY-MM-DD format
                       # Default: Now
    [--top=N]          # The number of repos to show
                       # Default: 20

Output Example:

./rdd.rb --after 2015-08-05T20:10:02-00:00 --top 20
Getting Github statistics for 2015-08-05 20:10:02 UTC - 2015-08-05 21:56:30 UTC
Results (~15 seconds):
#1. jtleek/datasharing - 70 points
#2. docker/libcompose - 59 points
#3. daveliepmann/tufte-css - 52 points
#4. rdpeng/ExData_Plotting1 - 50 points
#5. DataScienceSpecialization/DataScienceSpecialization.github.io - 49 points
#6. servant-app/JAWS - 43 points
#7. octocat/Spoon-Knife - 40 points
#8. skirmer/R_Coursera_Cleaning - 30 points
#9. JuanitoFatas/fast-ruby - 25 points
#10. WasatchInstitute/wit-website - 25 points
#11. sux13/DataScienceSpCourseNotes - 25 points
#12. familiar-protein/familiar-protein - 25 points
#13. reactoroverflow/reactoroverflow.com - 22 points
#14. trilkk/faemiyah-demoscene_2015-08_4k-intro_ghosts_of_mars - 22 points
#15. FreeCodeCamp/freecodecamp - 21 points
#16. mkolh/nodeschool-module-solutions - 20 points
#17. normanjaeckel/Lotophage - 20 points
#18. jbsturgeon/tourOfGo - 20 points
#19. lopezjorge1/ColorGenius - 20 points
#20. travishaby/sales_engine - 20 points

Scoring:

Be prepared to talk about the following, if you didn't solve them during the challenge
  • What factors impact performance? What would you do to improve them?
  • How could you add additional reporting formats besides STDOUT plain text?
  • If you had to implement this using only one gem/package, which would it be? Why?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment