Bing Coding Challenge Round 2!

Developers – It’s round two of Bing’s Coding Challenge! This time we have three opportunities to showcase your technical skills through three original coding challenges. Choose carefully as you can only submit one entry!

  1. Microsoft News Experience Coding Challenge
  2. The Bing Apps Coding Challenge
  3. The Bing Phone Apps Coding Challenge

Start marinating over the challenges and when complete, submit your entry or entries to bingjobs@microsoft.com no later than 5:59pm PST, December 13, 2013. Please see official rules on how to submit your entry, prizes, and eligibility.

Submission – submit your answer by email to bingjobs@microsoft.com with a subject line of: Microsoft Coding Challenge. Entries close at 5:59 p.m. PT on December 13th, 2013

Grand Prize: A meeting with Microsoft employees and personnel in Redmond, WA, to answer questions about your background, career, expectations, aspirations and employability. Winner will receive the standard Microsoft recruiting travel package including

1) Round trip coach airfare from major airport closest to winner’s home to Seattle, WA

2) Two night’s standard hotel accommodations

3) Rental car for duration of stay

4) The opportunity to meet with Microsoft recruiting staff

5) $75 per day meal allowance

Microsoft News Experience Coding Challenge:

Assume that millions of news feeds, from thousands of news partner’s worldwide, are processed every day. This includes RSS feeds as well. Most news feeds do not follow any one (or two) schema so the first hurdle in processing these feeds (one at a time) and convert them to an internal canonical format. Next, one needs to verify that mandatory fields exists and for feeds with well-known schema (some partners well-known schema), the values are correct (or in range). Once the validation is complete, the meta-data about the news story (e.g. Source, Dateline, Headline, keywords etc.) is kept in a database whereas the story itself is kept in an XML format in a (distributed) file store. At this time, news index is also updated with this processed news story.

On the consumption (of news) side, the news is rendered via msn.com sites/pages, Bing Apps on Windows and Phone. These applications make a REST-based call to the backend services to fetch a specific news story (by ID) or search by a given page grouping (e.g. entertainment entity in Thailand showing headlines with an image). The editorial team curates the experience by attaching a set of news story (e.g. by using keywords) for a specific market (e.g. French Canada) to a specific Bing App (or msn.com site) visible entity.

 

Keep in mind that the experiences (Windows 8 Apps, Windows Phone Apps, msn.com sites) have to work for hundreds of millions of users consuming news in over 100+ languages in 200+ countries and regions. Similarly, news feeds could contain news in any of these languages and meant for all regions or a particular region. The experiences need to rendered in sub-seconds.

As part of this coding challenge, you are invited to design any or all parts of the end-to-end data-flow/experience, and write code for a specific component or app. For example, you could submit a Windows 8 app mimicking the UX of Bing News App OR a web app displaying news for a given market (e.g. Israel) OR a Windows Phone App OR a newsfeed ingestion pipeline. You are also welcome to submit code for application or backend services built on non-windows/non-Microsoft platforms, if that is your current expertise.

This challenge is open to industry veterans to seniors in a college and to candidates around the world.

The Bing Apps Coding Challenge:

First head over to Microsoft Channel 9 site and learn how to build Windows 8 Application using WinJS or C#. Next find a Windows 8 machine and run Bing News Application.

Goal

Build your application to mimic the user experience of Bing News Application especially in the following area:

  • Have the default news come from
  1. A RSS feed (e.g. New York Times). User can override the default by providing a new RSS feed source OR,
  2. A RESTful backend service which provides the news stories.
  • From navigation point of view, implement (minimum)
  1. “Top Edgy” which comes up upon right click near top of the application (or touch near the top on Surface devices)

(Add picture of Top Edgy)

  1. “Bottom Edgy” which comes up upon right click near bottom of the application (or touch near the bottom of a Surface Device)
  2. User is able to swipe right to left to read pages of the articles
  3. User is able to go different sections of the news by clicking on a Table of Content (or via Top Edgy)
  4. User is able to mark an article to be saved on local disk to be read during offline mode.
  5. On a normal network setting (11Mbps on 802.11b ), the app launches in 2 seconds and each news page renders in 1seconds or less

 

Considerations and constraints

Here are some aspects to consider:

  1. Locally cached articles can be rendered on launch but app must fetch new updates and refresh the pages. Look at Bing News App behavior as template.
  2. The App must run on Windows 8 system, Surface will be ideal.

Deliverables

1) Design of the application. Be explicit about the assumptions you make.

2) The Application Code

3) Performance (Time to render) measured using Stop Watch, ETW will be ideal

.

Stretch goal (bonus points)

  • Implement Handling multiple news sources
  • App follows Windows 8 guidelines for Snapped View
  • Enable Semantic Zooming

 

The Bing Phone Apps Coding Challenge:

First head over to Microsoft Channel 9 site and learn how to build Windows Phone Application. Next find a Windows system which is supported by Visual Studio Express 2012 for Windows Phone and start building the News Application. For UX, either download Bing Phone News App for Windows Phone or get schematic at this blog.

Deliverables

1) Design of the application. Be explicit about the assumptions you make.

2) The Application Code

3) Performance (Time to render) measured using Stop Watch, ETW will be ideal.

The MSN Web App Coding Challenge:

For building your Web site/App, you can leverage Microsoft platforms (e.g. ASP.NET MVC, Microsoft Azure) or non-Microsoft platforms (e.g. Apache).

For engineers familiar with Windows platform, first head over to learn about MVC platform. Then, create a RESTful service around a real RSS feed or a local file – to get news story for your web site. Then, build the Web UX mimicking a msn.com news site for your (or nearest) region e.g. US Site.

Deliverables

1) Design of the application. Be explicit about the assumptions you make.

2) The Application Code

3) Performance (Time to render) measured using Performance Counters.

Stretch Goals (Bonus Point):

  • Design the application such that the same code can be leveraged to render local (to a region) news story around the world
  • Design the application such that editorial team can add news clusters after the application is live in data center
  • How would you design the system for ensure high availability (e.g. 99.9%)? What design change would you need to make to get to next level (e.g. 99.99% or 99.9999%)?
  • Design points around scale. What would change if you have 100 times more feeds? 100 times more stores? 100 times more users
  •  

The Bing News Processing Service Coding Challenge:

For engineers fascinated with building massively scale-able systems like news ingestion pipelines (or indexing systems), design the backend system. Remember that data is consumed (via RESTful APIs) around the world (where the users are). Clarify the assumptions you are making as part of the design and then code up one portion of the design and submit both the design and code. You are welcome to assume all services running on physical machines or Cloud-based systems (e.g. Windows Azure, Amazon AWS, or Google Cloud). For building the code, you can leverage Microsoft .Net or Java or any other stack that you are most versatile in.

Deliverables

1) Design of some or whole pipeline. Be explicit about the assumptions you make.

2) The Service Code

3) Performance (e.g. # of ingested feeds per second per system, # of news story indexed per second) measured.

4) Design points around scale. What would change if you have 100 times more feeds? 100 times more stores? 100 times more users

 

Stretch Goals (Bonus Points):

  • Design an end-to-end monitoring solution which tells in real-time if ingestion pipeline is working correctly
  • Design a dashboard which shows data flowing end-to-end in this (distributed) ingestion pipeline
  • Design an indexing solution which can handle hundreds of millions of news story coming in every day from around the world.

 
 
   

 

BING CODING CONTEST

OFFICIAL RULES

 

 

COMMON TERMS USED IN THESE RULES:

 

These are the official rules that govern how the Bing Coding contest will operate (“Contest”).

 

In these rules, “we,” “our,” and “us” refer to Microsoft Corporation, the sponsor of this Contest. “You” refers to an eligible Contest entrant.

 

CONTEST DESCRIPTION:

 

This is a skill-based Contest. The object of this Contest is to exhibit skill in software coding.   For purposes of this Contest, each coding exercise that you create and submit in the Contest will be called an “Entry.” All eligible Entries received will be judged using the criteria described below to determine winners.

 

WHAT ARE THE START AND END DATES?

 

This Contest starts at 10 a.m. Pacific Time (PT) on October 18, 2013, and ends at 11:59 p.m. PT on December 13, 2013 (“Entry Period”). Public voting will take place during the Entry Period, the results of which will be considered in the judging criteria described more fully below.

 

CAN I ENTER?

 

You are eligible to enter this Contest if you meet the following requirements at time Entry:

 

  • You are a legal resident of the 50 United States and District of Columbia, are 21 years of age or older and you have unrestricted authorization to work in the U.S. (proof may be required from selected winner(s)); and

 

  • You are NOT an employee of Microsoft Corporation or an employee of a Microsoft subsidiary; and

 

  • You are NOT involved in any part of the administration and execution of this Contest; and

 

 

This Contest is void outside the geographic area described above and wherever else prohibited by law.

 

HOW DO I ENTER?

 

To enter visit http://blogs.bing.com/jobs/ and follow the instructions to complete the Contest coding exercise using Object Oriented Programming Language within the Entry Period. A total of one coding exercise will be presented.  

 

The answer you submit and the registration information you provide will together be called your “Entry.” Limit 1 Entry per person. We are not responsible for Entries that we do not receive for any reason, or for Entries that we receive but are not decipherable for any reason. In the event we receive more than one Entry from you for the same coding exercise, only the first Entry submitted will be considered and the rest will be disqualified.

 

We will automatically disqualify any incomplete or illegible Entry.

WHAT CONSTITUTES AN ELIGIBLE ENTRY?

 

To be eligible for judging your Entry must meet the following requirements:

 

  • Your Entry must be your own work; and
  • Your Entry cannot have been selected as a winner in any other contest; and
  • You must have obtained any and all consents, approvals or licenses required for you to submit your Entry; and

 

We reserve the right to reject any Entry, in our sole and absolute discretion, that we determine does not meet the above criteria.

 

HOW WILL MY ENTRY BE POTENTIALLY USED?

 

By submitting your Entry, you:

 

  • understand and acknowledge that the Sponsor(s) may have developed or commissioned materials similar or identical to your submission and you waive any claims you may have resulting from any similarities to your Entry;

 

  • understand that you will not receive any compensation or credit for use of your Entry, other than what is described in these Official Rules

 

Please note that your Entry may be posted on a website selected by us for viewing by visitors to that website. We are not responsible for any unauthorized use of your Entry by visitors to this website. While we reserve these rights, we are not obligated to use your Entry for any purpose, even if it has been selected as a winning Entry.

 

If you do not want to grant us these rights to your Entry, please do not enter this Contest.

 

WINNER DETERMINATION AND PRIZES

 

At the close of the Entry Period a panel of Microsoft judges will review all entries and select one Grand Prize winner and three First Place winners based on the following judging criteria:

 

  • Originality / Creativity (35%),
  • Composition/syntax (35%)  

 

The decisions of the judges are final and binding. In the event of a tie between any eligible entries, an additional judge will break the tie based on the judging criteria described above. The decisions of the judges are final and binding. If we do not receive a sufficient number of entries meeting the entry requirements, we may, at our discretion, select fewer or no winners.

Grand Prize:  A meeting with Microsoft employees and personnel in Redmond, WA, to answer questions about your background, career, expectations, aspirations and employability. Winner will receive the standard Microsoft recruiting travel package including Round trip coach airfare from major airport closest to winner’s home to Seattle, WA

  • Two nights standard hotel accommodations
  • Rental car for duration of stay
  • The opportunity to meet with Microsoft recruiting staff
  • $75 per day meal allowance paid as a check from Microsoft

Please remember that participation in the Contest, winning the grand prize, or meeting with Microsoft employees is not a guarantee of a job or job-offer at Microsoft.

Winner is responsible for providing all required travel documents, including, but not limited to any required photo identification etc. If winner lives within 500 miles of Redmond, WA, Sponsor reserves the right to provide alternative transportation and hotel accommodations.  

Any expenses not mentioned above are the winner’s responsibility. Some restrictions may apply. Trip dates will be arranged with the winner based on a mutually available time. Winner may not cancel or transfer of reservation to another date after reservation has been made.

(3) First Prize: A Bing branded T-Shirt. ARV ea $20

 

If you are a potential winner, we will notify you by sending a message to the e-mail address, the phone number, or mailing address (if any) provided at time of Entry within seven (7) days following completion of judging. If the notification that we send is returned as undeliverable, or you are otherwise unreachable for any reason, we may award to a runner-up.

 

If there is a dispute as to who is the potential winner, we will consider the potential winner to be the authorized account holder of the e-mail address used to enter the Contest. If you are a potential winner, we may require you to sign an affidavit of eligibility, liability and publicity within 10 days of notification. If you do not complete the required forms as instructed and/or return the required forms within the time period listed on the winner notification message, we may disqualify you.

 

If you are confirmed as a winner of this Contest:

 

  • You may not exchange your prize for cash or any other merchandise or services. and

 

  • You may not designate someone else as the winner. If you are unable or unwilling to accept your prize, we may award it to an alternative winner; and

 

  • If you accept a prize, you will be solely responsible for any applicable taxes related to accepting the prize; and

 

We will only award one (1) prize per person.

 

WHAT OTHER CONDITIONS AM I AGREEING TO BY ENTERING?

 

By entering this Contest you agree:

 

  • To abide by these Official Rules; and

 

  • To release and hold harmless Microsoft and its respective parents, subsidiaries, affiliates, employees and agents from any and all liability or any injury, loss or damage of any kind arising from or in connection with this Contest, or any prize won; and

 

  • That Microsoft’s decisions will be final and binding on all matters related to this Contest; and

 

  • That, by accepting a prize, Microsoft may use of your proper name and state of residence online and in print, or in any other media, in connection with this Contest, without payment or compensation to you, except where prohibited by law.

 

WHAT LAWS GOVERN THE WAY THIS CONTEST IS EXECUTED AND ADMINISTRATED?

 

This Contest will be governed by the laws of the State of Washington, and you consent to the exclusive jurisdiction and venue of the courts of the State of Washington for any disputes arising out of this Contest.  

 

WHAT IF SOMETHING UNEXPECTED HAPPENS AND THE CONTEST CAN’T RUN AS PLANNED?

 

If someone cheats, or a virus, bug, catastrophic event, or any other unforeseen or unexpected event that cannot be reasonably anticipated or controlled, (also referred to as force majeure) affects the fairness and / or integrity of this Contest, we reserve the right to cancel, change or suspend this Contest. This right is reserved whether the event is due to human or technical error. If a solution cannot be found to restore the integrity of the Contest, we reserve the right to select winners from among all eligible entries received before we had to cancel, change or suspend the Contest.

 

If you attempt to compromise the integrity or the legitimate operation of this Contest by hacking or by cheating or committing fraud in ANY way, we may seek damages from you to the fullest extent permitted by law. Further, we may ban you from participating in any of our future Contest, so please play fairly.

 

WINNERS LIST

 

To find out who won, send an email for receipt by December 20, 2013, with the subject line “Bing Coding Contest Winner” to bingjobs@microsoft.com

WHO IS SPONSORING THIS CONTEST?

 

Microsoft Corporation

One Microsoft Way

Redmond, WA 98052