Reports / June 2017

Intermission

I’ve been working at a somewhat reduced capacity this month after our two year old was injured by glass in a play area. There’s been several nights in hospital, surgery, a few follow up hospital appointments, and more support needed around the house. He’ll be out of his plaster cast a little over a week from now and hopefully will be walking okay again, and regaining confidence.

I’ll be cancelling a my planned EuroPython attendance and talk as a result of this and other family commitments.

Uvicorn

Much of the feature work this month has been towards Uvicorn - a super-fast asyncio server, implemented with MagicStack’s uvloop and httptools projects.

There’s two ways that I’m hoping to make this of benefit to the Django ecosystem.

Firstly this will give us an alternative ASGI server implementation to Daphne, once we’ve integrated support for the Redis-based ASGI channel layer.

Secondly I’m considering a deployment option for having the server interface with the application directly, rather than via a channel layer. This needs more investigatory work, and might require some careful bridging from the asyncio server component to a separate thread or thread pool for running the application code.

There are also significant benefits to the wider Python ecosystem here, which is clearly lacking an equivalent to WSGI for that works for asyncio frameworks. Driving forward an ASGI-based standard there, and having the design discussions to help make that happen are a really important part of making Python more suitable for very high-throughput web services.

The performance of Uvicorn looks impressive to me in local testing, but I’m waiting for the next set of TechEmpower benchmarks before making any absolute judgements there.

We’ll be adding sponsor placements to the Uvicorn documentation in due course.

Triage

This month we’re up from 165 open tickets at the start of the month to 175 at the end.

Community & Operations Manager

Anna managed all daily operations such as responding to emails, communicating with current and prospective sponsors, signing up new sponsors, monitoring the @restframework Twitter account, issuing invoices, and keeping track of finances.

Her main focus this month was finishing up our last round of fundraising, making sure all company-internal documentation is complete and up-to-date, as well as gathering thoughts for a future roadmap for REST framework.

A huge round of congratulations is due to Anna, who is starting a new full-time job with Elastic! She is planning on continuing to help with the community & operations work for REST framework, but with a reduced commitment.

Engineering role

We’re now at the point of considering hiring someone to work on engineering. This role would initially involve REST framework ticket triage and development, building out our website and sponsor management site, and developer support. With Anna cutting back on her hours and therefore freeing up some financial resources, this seems like the next step for us to take.

We don’t have enough revenue to be able to support two full time jobs, so we need to think carefully about the best way to make this work. The most promising option will probably be for us to offer an initial full-time contract for a fixed time period, and then follow that up with a part-time commitment. If our sponsorship revenues grow then we might be able to expand into a full-time role.

Finances

Our recurring revenue is roughly £6,200/mo. Tom is currently drawing a salary at £4,100/mo. Running costs including co-working office space, accountants & software subscriptions add up to a few hundred each month. We’ve some money in the bank which would allow us to finance a fixed-term contract.


As ever, thanks to all our sponsors, contributors, and users for your ongoing support.

— Tom Christie, 3rd July, 2017.