Small startup in Bristol currently looking for an awesome software engineer to work on our existing code base.
Ideally you'd be located in Bristol/Bath and be able to work from our office, or be able to visit our offices on a weekly basis, but remote/home working is also negotiable. You would have prior experience of working for a small startup and/or handling all technical aspects of building a tech product.
Our product is similar to Launch27, allowing customers to book a product, which is then allocated to groups within our workforce, and the lifecycle of a job is handled via our backend systems. This is not your typical boring Django integration job, there are some mundane parts but overall you should find this work quite pleasant.
Reply with why you think this role is interesting, and talk about any relevant experience you have with the technologies mentioned. Provide github links, code examples (gist/github/pastebin etc only pls, don't attach files), and anything else that makes you stand out from the rest. Interview would consist of a 1 hour phone call, and a decision made same/following day. Earliest start date would be 5th Jan.
## Tech specs
Stack: Python, Django, CircleCI, Github, DigitalOcean, Docker, MongoDB, Percona MySQL, Sentry, New Relic, LogEntries, Twilio, Slack, Vagrant, Trello, Stripe, TDD, Redis, RQ, CloudFlare, Python libs: django-debug-toolbar, freezegun, python-requests, freezegun, django-devserver, mongoengine, rq, django-rq
Primarily this is a Python role extended an existing API backend. We have complete separation between backend and frontend to ensure modularity and other developers working on the frontend. In future, we will have mobile integrations so it's absolutely imperative that the API is decoupled.
You may need to do other devops/research stuff, such as debugging prod instances, fixing memory leaks, diagnosing outages, settings up servers, fixing DNS, repairing build systems and all the other stuff that goes around a project.
All existing code follows TDD principles, has extensive commenting and is overall fairly clean, but with room for improvement on some of the core modules. Comes with CI build testing using Circle and ready to go Vagrant scripts. Our unit tests use time travel via freezegun, this allows us to test date/time sensitive functionality by means of monkeypatching. For example, ensuring that a subscription is terminated if a payment cannot be taken after 7 days. Every single piece of logic can be unit tested using a single command, and a full test suite takes around 60 seconds (not incl dependancies).
Ideal candidate would understand the importance of TDD, have good all-round knowledge of Python, and know their way around Django. You should understand the following without too much problem;
* How objects/classes works in Python (metaclasses, MROs etc would be a bonus)
* Python syntax (operators, list comprehensions, lambdas etc)
* Python stdlibs (itertools, os, sys, urllib etc)
* Stripe API for handling payments, invoices etc
* Job queues using rq/redis
* Document store using MongoEngine
* Demonstrate good understanding of what it means to be a software engineer
* Good knowledge of our stack