• The Summer 2014 GameChanger Internship Challenge
  • GameChanger's approach to collecting game data leaves pencil and paper in the dust!
  • We'd like to see you do what we do (in miniature) for the sport of your choosing. Write a program that takes a game in a certain state and a play of a certain type and works out some interesting things about the resulting state of the game. You might find surprising trends in the stats, insights into a player's improvement, or opportunities for unorthodox strategies. You should choose a sport that you're passionate about (and we'll be flexible with the definition of "sport").
  • You design your own schema for games and plays. You may use and elaborate on the sample schema at the bottom of the page.
  • You should spend "a day" on this. We don't expect you to capture every last component of the game, but we'll be impressed if your program can do a few really creative things (or a single thing extremely well!).
  • What you give us:
    • A script that we can run from the command line (language of your choice). It can read in plays from a file you give us, or provide an interface for human input. You decide what kind of output best shows off what you've done; you might want to print it to stdout or bring up a GUI.
    • A brief summary of what your program does and any instructions you think we might need in order to see its full capabilities.
  • What we're looking for:
    • Good clean code
    • Solutions to interesting problems
    • A passion for the chosen sport
  • Sample ideas (which you may use):
    • Given all the data you can find on the Miami Heat from last year, build a visualization that helps LeBron James become a better player.
    • Rank players in a soccer game by various stats, using knowledge of how the game has gone so far to decide which stats will be the best predictors.
    • You record data from every attack from a fencing bout. You make suggestions as to which targets the fencers should be aiming for more often.
  • Submit the following to jobs@gc.com (subject: "Challenge"):
    • Brief summary of your program
    • Your program (either as a script or as a link to a web application)
    • Your resume or a complete LinkedIn profile

  • Here's a more specific example of how a game and play might be described (for baseball):

    Input Game:
                    {
                        "defense": [
                            {"playerName": "Adam Wainwright",
                             "position": "P"},
                            {"playerName": "Allen Craig",
                             "position": "1B"},
                            {"playerName": "Matt Carpenter",
                             "position": "2B"},
                            {"playerName": "David Freese",
                             "position": "3B"},
                            {"playerName": "Pete Kozma",
                             "position": "SS"},
                            {"playerName": "Matt Holliday",
                             "position": "LF"},
                            {"playerName": "Jon Jay",
                             "position": "CF"},
                            {"playerName": "Carlos Beltran",
                             "position": "RF"},
                            {"playerName": "Yadier Molina",
                             "position": "C"}
                        ],
                        "offense": [
                            {"playerName": "Derek Jeter",
                             "isAtBat": true,
                             "base": null},
                            {"playerName": "Robinson Cano",
                             "isAtBat": false,
                             "base": 2}
                        ],
                        "state": {
                            "inning": 5,
                            "half": 0,
                            "balls": 2,
                            "strikes": 1,
                            "outs": 1,
                            "homeTeamName": "Cardinals",
                            "awayTeamName": "Yankees"
                        }
                    }
                    
    Input Play:
                    {
                        "type": "PITCH",
                        "result": "FLY_OUT",
                        "out": [
                            {"playerName": "Derek Jeter"}
                        ]
                        "nextBatter": {
                            "playerName": "Hiroki Kuroda"
                        }
                    }
                    
    Output Game:
                    {
                        "defense": [
                            {"playerName": "Adam Wainwright",
                             "position": "P"},
                            {"playerName": "Allen Craig",
                             "position": "1B"},
                            {"playerName": "Matt Carpenter",
                             "position": "2B"},
                            {"playerName": "David Freese",
                             "position": "3B"},
                            {"playerName": "Pete Kozma",
                             "position": "SS"},
                            {"playerName": "Matt Holliday",
                             "position": "LF"},
                            {"playerName": "Jon Jay",
                             "position": "CF"},
                            {"playerName": "Carlos Beltran",
                             "position": "RF"},
                            {"playerName": "Yadier Molina",
                             "position": "C"}
                        ],
                        "offense": [
                            {"playerName": "Hiroki Kuroda",
                             "isAtBat": true,
                             "base": null},
                            {"playerName": "Robinson Cano",
                             "isAtBat": false,
                             "base": 2}
                        ],
                        "state": {
                            "inning": 5,
                            "half": 0,
                            "balls": 0,
                            "strikes": 0,
                            "outs": 2,
                            "homeTeamName": "Cardinals",
                            "awayTeamName": "Yankees"
                        }
                    }
                    

GameChanger


Official Scoring Team

We encourage any user to create a GameChanger team and utilize our scorekeeping and stat management tools. As a result of this open platform, there may be several versions of the same team.

GameChanger is beta testing solutions to establish authenticity of teams so fans can easily trust that the teams they follow will provide consistent game data.

Official GameChanger teams will be marked with an official tag in search results and on team home pages.

GameChanger reserves the right to contact a team's head coach to confirm that it is an official team.

GameChanger Plus
$2.99/month or $29.99/year
Never miss another play
All the features of GC Basic, plus:
Live GameStream play-by-play
Full game recap stories
Box scores of each game
GameChanger Premium
$7.99/month or $49.99/year
Powerful stats and insights
All the features of GC Plus, and:
Comprehensive season stats
Player spray/shot charts
The complete GC experience!