Coder Social home page Coder Social logo

coding-test's Introduction

Coding test for tails.com

About this test

Think of this as an open source project. How would this have to look in order for you to be impressed with it, if you were to find it on GitHub? Now go and do that.

Please spend at least 90 minutes on this test. Feel free to take more time if you wish - make sure you are happy with your submission!

Hint: we are looking for a high-quality submission with great application architecture. Not a "get it done" approach. Stay away from frameworks and boilerplate code that handle everything for you. If you do use a framework, only use it as a thin layer, so we can see how you structure applications yourself.

Remember that this test is your opportunity to show us how you think. Be clear about how you make decisions in your code, whether that is with comments, tests, or how you name things.

What to do

Follow the three steps below to submit your coding test to us.

First

  • Create a Docker container with a new Python-based application. Any framework is fine, we prefer Flask.

Second

If you are applying for a Backend Software Engineer role:

  • Render the list of stores from the stores.json file in alphabetical order using a template.
  • Use Postcodes.io to get the latitude and longitude for each postcode. Render them next to each store location in the template.
  • Build the functionality that allows you to return a list of stores in a given radius of a given postcode in the UK. The list must be ordered from north to south. No need to render anything, but the function needs to be unit tested.

If you are applying for a Full Stack Software Engineer role:

  • Build an API that returns stores from the stores.json file, based on a given search string and unit test it. For example, return "Newhaven" when searching for "hav". Make sure the search allows to use both city name and postcode.
  • Order the results by matching postcode first and then matching city names. For example, "br" would have "Orpington" as the first result as its postcode is "BR5 3RP". Next would be "Bracknell", "Broadstairs", "Tunbridge_Wells", and "Brentford"
  • Using your favourite frontend framework (we prefer Vue/React) on the user-facing side:
    • Build a frontend that renders a text field for the query and the list of stores that match it
    • Add suggestions to the query field as you type, with a debounce effect of 100ms and a minimum of 2 characters
    • Limit the results to 3 and lazy load the rest on page scroll

Third

  • Zip your code up and upload it to us. Use the “Show Questions” button provided in the email you received. Please note - the file size should not exceed 10MB.
  • Provide answers for the following questions within your zip file submission:
    1. Which test did you complete? (backend or full-stack)
    2. If you had chosen to spend more time on this test, what would you have done differently?
    3. What part did you find the hardest? What part are you most proud of? In both cases, why?
    4. What is one thing we could do to improve this test?

coding-test's People

Contributors

alberto-c avatar bennyjo avatar gig0i avatar healeycodes avatar peter-featherstone avatar tombazza avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.