We need a Python Developer to create a Service Framework and Manager that will allow creating services using one single management and abstraction layer. The source code must be used following de facto standards and need to take the provided specification mainly as a reference, making adaptations whenever pertinent.
To proof the framework concept and functionality, it is required to use the created Framework to implement an "Email Submission System" service that will take messages from a MongoDB and send them to the related recipient.
Screened candidates will have access to more information about the service.
They will so have the chance to make questions and entail how they intend to implement it. The final and selected candidate will have direct contact with our team leader to solve any technical question. The approval and escrow will be made in four steps steps.
To enable a better bidding, we provided a general class diagram which shows basic idea behind the Service Framework and Manager:
You are required to implement above mentioned components and we will NOT accept frameworks like Tornado, Twisted or Gevent. This is about Linux programming for long running processes. You should be comfortable using Python multiprocessing module  and Unix domain sockets  for inter-process communication.
ON YOUR COVER LETTER
We do expect you to enter details and questions in your cover letter related to the project. That will be important for our first screening step. Comments about the above linked diagram is also positive.
This is also being considered as a paid test for an on-going position. If you have interest or are not available, please mention that in your cover letter as well.
PROJECT PHASES AND MILESTONE PAYMENTS
As part of the first step, the developer will need to provide its first functional mockup of package, modules and classes. We will make some considerations based on that and the developer must provide its inputs also based on his experience.
With the information obtained, the developer should start making code modifications and adaptations to adhere to new requirements. The product of such development will be the alpha version, which will mark the end of the second phase and result on 20% of the escrow being released.
From that on, we will use the alpha version for one week and identify issues which should be fixed as fast as possible. When all the issues identified on such week gets solved, we will have the beta version and another 30% of the escrow will be released.
After beta release, one extra week will be used to test the code on our servers. Again, all the issues identified on such final week should be addressed to have our final version and release remaining 50% of the escrow.
We require developers to use Python 2.7 and de facto standars whenever pertinent, being PEP 8  the most important one. A well known verification tool will be used to check issues with the code regarding that.
Linux is the only operating system to be considered and with that an Upstart  script that will allow us to start and stop the main agent. Along with that we also expect a setuptools  script to make it easier the installation.
We will consider a plus and pay a 10% bonus if the developer implements using PEP 257  and proper unit tests.
 - http://docs.python.org/2.7/library
 - http://en.wikipedia.org/wiki/Unix_
 - http://pypi.python.org/pypi/pep8
 - http://upstart.ubuntu.com/
 - http://pypi.python.org/pypi/setupt
 - http://www.python.org/dev/peps/pep
Skills: linux, unix, multithreading
Other open jobs by this client
- Fixed-Price – Illustrator File Translation
- Fixed-Price – North American Copywriter and Researcher B2B Articles