Up for a bid is the full development of a JSON web service and database for storing and syncing contacts information for millions of contacts and users.
The project and web service will include:
* Around 20 Web service commands in JSON for communication with various clients - uploading and downloading contact information, user authentication, and synchronizing contacts
* Design of the databases using MySql + optimizations (indexing, bucketing, and queries optimizations) - database must support users in the hundred thousands numbers, each with their unique contacts tables, quickly write, update and fetch information
* The web service will be written in either NodeJS
* Speed and performance - Must handle thousand of requests in parallel and respond back in maximum 1-2s
* Security - as this is a web exposed service, security aware programming must be practiced. for example, all inputs must be sanitized and validated,
the service must classify illegal requests and ignore them first in order to be as resilient as possible to DoS attackes, and more.
* An external commercial API by a third party will be used to assist in enhancing and cleaning of contacts. Communication and synchronization with this API will be a part of the web service's activities.
* Developing two way synchronization of the contact information with Gmail/Hotmail and AOL
* Saving and fetching the history of all actions by the web service and users.
* Full automatic fail over in case the database is not available from the master location plus setting up a MySQL cluster
Your bid price for the project must include the following:
* Programming methodology for maximum Security and Performance of the code
* Easily understandable and readable code, logically structured and built for future modification and enhancement
* Programming philosophy of "when something needs to be changed - change it just in one place"
* Structured functions - no spaghetti code or copy paste mess
* Full documentation and easy to understand comments within the code
* Time for support and installation instructions of the source code on our developers computers
* Providing the full source code
* Please allow within your price 20-30% extra work hours for features that were not included in the original requirements document
* Payment will be divided per milestones, and specific project requirements will be sent upon accepting the project
* The last milestone will be paid after complete fixing of all bugs and confirmation of product delivery
We are looking for someone with good social and language skills, easy to work with, passionate about data manipulation, experience in web services, servers, network, performance and security, with an ocd for the little details, responsible and serious.
As this is only the first step of a bigger product, we prefer hiring for the long term, and ideally have the chosen person take ownership and feel as the project is a part of him (or her).