Skip to content

Instantly share code, notes, and snippets.

@tsengvn
Last active December 10, 2016 06:03
Show Gist options
  • Save tsengvn/4b5702611356187a3fd45b23f5645c49 to your computer and use it in GitHub Desktop.
Save tsengvn/4b5702611356187a3fd45b23f5645c49 to your computer and use it in GitHub Desktop.
wz mobile challenges

Imgur Challenge

This is a guide for presenting the challenge to the candidate, not a document to give to the candidate.

Overview

Create an application that displayed images from Imgur services http://imgur.com/

Critical Points

  • Display images as a list
  • Display the full detail of an image

Important Points

  • Support paging in list
  • Display images in a list with 2 columns and flexible height adjustment (as Pinterest)
  • Application provides function to share image
  • Search images by tag

Bonus Points

  • User are able to download image into device's gallery
  • Nice transition animation
  • Display GIF images
  • Save favorite images to local application's DB

Design Discussion

  • Need to have some UI screen mockups TBD

Presentation Questions

General

  • Why did you choose this framework/library?
  • What features of this framework/library are most important to you?

Recommendations for the On-site Coaches

  • Before the candidate starts solving the challenge, ensure you:
  1. Explain the challenge to the candidate.

  2. Give the API creditials/documents to candidate (App Client ID, App Secret)

    • The base URL for APIv3 is https://api.imgur.com/3/
    • Authen https://api.imgur.com/oauth2
    • API to get images (randomly) https://api.imgur.com/endpoints/gallery#gallery-random
    • API to get image detail https://api.imgur.com/models/gallery_image
    • API to search images https://api.imgur.com/endpoints/gallery#gallery-search
    • Image data model https://api.imgur.com/models/gallery_image
  3. Pick the importand points that can be completed on time

  4. Make the following recommendations:

    • To use any tools, languages, frameworks, or databases they like.
    • Search on the web for any resources they need.
    • Ask any team members for help.
    • Not to invest much time on any given problem before asking for help.
  • Check on the candidate every 45 minutes and ask the following questions:

    • How is it going?
    • What is working yet?
    • Is there anything you need?
  • Observe the following:

    • Does it seem like they'll finish the challenge? At least in some part?
    • Are they stuck on something and, perhaps, shy to ask for help?
    • How do they handle interruptions, unsolicited interactions, etc?
  • Make sure they know how much time is left; offer additional time if it might help. e.g., if almost done with a last feature or detail, delay lunch by 15-30 minutes.

  • Offer the candidate snacks, water, coffee, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment