Skip to content

Instantly share code, notes, and snippets.

@msdinit
Created May 29, 2019 11:30
Show Gist options
  • Save msdinit/16fd8c9226d47e6d8b4a2e665929b5fc to your computer and use it in GitHub Desktop.
Save msdinit/16fd8c9226d47e6d8b4a2e665929b5fc to your computer and use it in GitHub Desktop.
Stylindex backend engineer challenge

Reading List API

Hello! Thank you for your interest in joining our back end engineering team at Stylindex :)

We ask all candidates to complete this short exercise to help us evaluate their suitability for the roles we are recruiting for. We recommend spending between 2 and 4 hours. You will have an opportunity to discuss your solution, and the choices you made at the next interview stage.

Challenge 1

Create a simple GraphQL API that fetches data from external storage

Acceptance Criteria

  • Fetch data from https://storage.googleapis.com/development-data/recruitment/pokemons.json
  • Root query should contain two fields: pokemons and pokemon
  • Field pokemons should return a collection of Pokemon objects
  • Field pokemons should accept an optional argument first and return only the first n pokemons
  • Field pokemons should accept an optional sort argument that allows sorting pokemons by name (both ascending and descending)
  • Field pokemon should accept either name or id as argument, and retrieve Pokemon object by name or id

Requirements

A good solution will

  • satisfy the acceptance criteria
  • have good test coverage
  • use appropriate libraries
  • be production ready

Challenge 2

Create a simple scraper that scrapes books from http://books.toscrape.com/

Acceptance criteria

  • Scraper retrieves all 1000 books from website
  • Each book should contain at least following data: title, rating, price, description, category
  • Scraper should be able to output data in either json or jsonlines format

Requirements

We use Scrapy for scraping, but you are free to use libraries/framework that you are most comfortable with. A good solution will

  • satisfy the acceptance criteria
  • use appropriate libraries
  • be production ready

Please put your solution on a repository hosting service such as GitHub or Bitbucket and don't forget to include a README file to tell us how to build and run the application :)

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