Dear redditgifts enthusiast,

Join us in our quest to make people smile and bring happiness to an increasingly angry and cynical world! Here at redditgifts we started on this quest a little more than two years ago and we have already succeeded in creating record-setting Secret Santas, organizing donation drives, and massive meetup gatherings. We are only scratching the surface of what we can do and how many people we can reach but in order to get there, we need your help!

When you join us we will have all sorts of fun engineering work for you to do. We’ve got a lot of interesting work around the gift exchanges.

For example, can you figure out the most optimal way to match up redditors across the world so that everyone gets matched with someone they will be most likely to give an amazing gift to? Can you invent novel ways to increase participation? Have you ever done payment processing or built a storefront? We even have a new project that could really use your expertise and will be really fun for the reddit community. Your work will require knowledge and mastery of the full web stack. You should be able to set up servers, write (or learn) Python and django, design beautiful, interactive web apps using modern HTML, CSS and Javascript, and when required, you should be able to delve into the internals of Python. We need new ideas and you should have them! We know that is a lot to ask but we also know how skilled you are and we believe in you. Additionally, we hope you've been a redditor for a long time and maybe you've even done some redditgifting.

Now, on to where you will work... redditgifts will have an office in Salt Lake City, Utah, and we hope you will join us there. If you write back soon enough you'll even get to help us find this office and pick the right furniture. It will be fun! If you'd rather work in San Francisco, that is also an option. Most of the reddit team works in a really cool office in SOMA and would be happy for you to join them there as well, but we would prefer that you join us in Salt Lake City.

We hope to hear from you very soon and we hope that reply with enough information about you that we can tell you really want to join us. What do we want exactly?

You must reply to this in letter form (to the email address provided below). If you can fit some humor into your letter, we would really like that. It’s important to laugh, especially while you work.

reply to this in letter form (to the email address provided below). If you can fit some humor into your letter, we would really like that. It’s important to laugh, especially while you work. Please tell us your favorite gift from our gift gallery and explain why it’s your favorite.

Please tell us your favorite holiday and explain why it is your favorite.

Please provide a resume or a link to your linkedin profile.

Please provide a link to your redditgifts profile.

Complete the programming challenge described below, where your task is to write a matching process for participants in a redditgifts gift exchange:

When participants sign up for a gift exchange on redditgifts they specify two properties that are used within our matching process:

Shipping Country (string) Shipping Preferences - whether or not they are willing to ship internationally (boolean)

Your program needs to find the best possible way to match participants such that:

Whenever possible, the participants shipping preferences are adhered to. Whenever possible, participants who send a gift to a country other than their own are more likely to receive a gift from a country other than their own. Participants who indicate that they are willing to ship internationally typically wish to receive internationally, so amongst those who are willing to ship internationally, maximize the number of people who receive a gift from a country other than their own. Whenever possible, participants should not receive a gift from the same person they send a gift to. Every participant must be matched. The matching process should runs efficiently, meaning the execution time is short.

Your program should take 1 parameter as input, a list (array) where each item is a list (array) that represents a participant and has these three elements:

unique id of participant (integer) shipping country of participant (string) willing to ship internationally (boolean)

Example: [[234, ‘US’, True], [235, ‘US’, False],]

Your program should return a list (array) where each element is a 2 item list (array) containing:

Unique id of participant giving the gift Unique id of participant receiving the gift

Example: [[234, 235], [235, 234],]

Your solution should be representative of how you program. You should be able to explain the program and understand its strengths and weaknesses. You may write this program in any language you’d like to, but it needs to be executable (no pseudo code please).

For your reference, here is a spreadsheet containing numbers from Secret Santa 2011 of participants from each country and their shipping preferences. You can use this to generate a dataset that you use for testing.

Send your solution and anything else you think might help show us how rad you are to jobs@redditgifts.com! We like github links, we love reading code, we LOVE seeing examples of previous work, especially if you tell us what you did and why it's a good (or bad) example. Please email us at jobs@redditgifts.com and we will get back to you!

Sincerely,



kickme444 and 5days





PS. You may or may not look like this