Giter VIP home page Giter VIP logo

php-senior-test's Introduction

Searchmetrics PHP Senior Position Test

First and foremost thank you for applying for the position. In this repository you'll find the sources necessary for the hiring challenge which are part of the later steps of our interview process.

We value the time you're putting in applying for the position, which is why you're free to complete as many (or little) of the tasks in the upcoming list. The expected and optional tasks below should not take you longer than an hour, and the bonus tasks should not take longer than another hour on top of that.

Please clone this repository and put it under your own version control, be it on GitHub, Bitbucket (they offer free private repositories), and send us the link to the repository after you're done. We do not allow forking in order to prevent other interviewee from seeing the results of others, and to protect everyone's privacy.

Requirements

  • PHP >= 7.1 and Composer in whichever flavor (installed locally, mounted into a VM, via Docker, ...)

Tasks

  • Tasks marked with [x] are expected to be completed
  • Tasks marked with [o] are optional, but appreciated if completed
  • Tasks marked with [.] are bonuses

What is a URL ID?

A URL ID is a bigint value calculated from an URL string, using the following statement in SQL:

SELECT CAST(CONV(SUBSTRING(SHA1("http://google.de/hh"), 1, 16), 16, 10) AS SIGNED);
/* => 10996426193249918095 */

  • [x] Implement the missing code to make the tests run successfully
  • [x] Provide and implement at least one (1) other implementation of the UrlIdGenerator interface able to generate the same IDs, also including tests
  • [o] Provide a runnable environment of some kind (VM, Docker) in which the tests are still running successfully
  • [o] Extend the environment to be able to run an integration test with your implementation against it and write that integration test
  • [.] Extend the environment further with a small HTTP service allowing consumers to look up the URL IDs for a list URLs they provide
  • [.] That service should probably not always re-calculate those IDs on the fly, so implement a caching layer of some fashion

php-senior-test's People

Stargazers

 avatar  avatar  avatar

Watchers

 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.