Engineering Fellows Program

The 2019 Kleiner Perkins Engineering Fellows Program is open to outstanding undergraduate and graduate students enrolled at U.S. universities who are studying computer science, engineering, mathematics, physics or fields related to software development. For only the Engineering Program, a requirement is that all applicants be enrolled in school for the 2018-2019 school year.

* required field

General Information
School Information

Are you graduating in 2019? Click here to get notified about 2019 Product Fellow applications.

Personal Statement
.pdf, .doc, .docx formats
Experience
.pdf, .doc, .docx formats

Answer the challenge question (optional)

Make your application stand out.

Problem

Build a console-based (i.e. runs in terminal) unix-compatible interactive card game. You can pick Blackjack, Solitaire, Memory, or any other game of your choosing (please include game rules in this case).
 
Along with your code, include a design document covering:
  • Instructions for running your code and any tests you may have written
  • Rules for your card game, if not one of the three listed above
  • A brief explanation of your design choices and any data structures or algorithms that you implemented
  • Choice of tooling (language, libraries, test runner, etc.) and rationale behind those choices.
Notes
  • The card game can be single or multiplayer
  • Many card games rely on the cards of a player being hidden from other players. You may want to consider implementing such a feature.
  • Feel free to use any programming language.
  • Please cite any external libraries that you use.
  • We suggest you spend no more than 3 hours on this challenge.
 
How You Will Be Assessed
You will be assessed on your creativity and the quality of your code and design document. This includes, but is not limited to, the following:
  • Does the game work, i.e. is it possible to play a complete game of the card game you chose?
  • How thoughtful were your system design decisions?
  • Is the game designed well / easily playable?
  • Is the code organized, modular, and well-factored?
  • What edge cases were considered and accounted for?
 
Best of luck, and we can’t wait to see what you create!