This is the description of the challenge we need you to do before joining us. We'll use everything you'll do here to evaluate you, so please, do your best!
You need to create an application to index words in text files. Basically, we'll send some simple text files to you, and you will count how many times every word appears in it. Then, you will write an interface where we will search for a word, and you will list the documents that contain that word, and how many times the word appear on each document. Also, remember to order the results by word occurrence.
- Your application needs to scale as much as it needs to. Also, it needs to be able to scale independently. For instance, if the application is receiving a lot of requests to search for the indexed words, but not as much documents to process, it should only scale the searching endpoint.
- Please use Ruby or Python somewhere in your application. We understand that every language has its suitabilities, but these are the languages that we currently use in our services, so we would like to see you coding in them.
- Please include tests for your application.
- You are free to tackle this problem in any way you want. If you think one application is not enough, create some more!
- Please provide a document explaining your whole architecture, what you did, and why you did it.
- This document must contain a scaling plan. Basically, you should tell us what you would do to scale your application, in detail. You don't have to implement any of it, though.
- Please provide a document for your application explaining how to install, test, and run it. (Vagrant boxes or similar gets extra points!)
- Just do what you think is right. We understand that no one knows everything, and of course, you will have the opportunity to improve once you're here.
- We think that a week is a good deadline for this challenge, but please reach out to us if you need any extra time.
- Create some private GIT repos (if you don't have private repos on Github, you can use bitbucket)
- Commit your code in the repos
- Once you're finished, grant read access to them to the users diogolacerda
- Send an email telling us it's done
- There is no step 5.
While you can use any text file to test your application, we will use the files in the test-files/
folder to evaluate your application. Please make sure you test using them as well.
Thank you for your interesting in IDXP Analytics. We look forward to working with you!