Offer-Ready Publisher

At Offer-Ready, we allow companies to find their optimal mobile phone tariff. We've developed a bunch of proprietary algorithms to search over millions of potential combinations of base tariffs and optional packs in under a tenth of a second.

We need to store which tariffs are available, and what they cost, in a format that's easy for us to maintain. However, the calculation process needs it in a format which makes the calculation as quick as possible. Transformation from the first form to the second involves quite a few different steps, quite a lot of pre-calculation, and potentially quite a few hours of computer work.

Recently I created the "publisher" front-end software, which ties all these transformation steps together and makes them accessible via a GUI. The requirements were roughly this:

A further advantage of storing the configuration in a version control system is that after a calculation has occurred, we know what version of the configuration it executed against. If a customer rings up and says "this calculation chose the wrong tariff!" we know which configuration that calculation was executed against. We can check the VCS logs: perhaps there was an error in the configuration which has already been corrected?

Here's a screen shot of the publish screen:

I designed and implemented the software for this publishing process. It works like this:

This is the next generation of the algorithm described in the article Atomic operations over filesystem and database.

P.S. I recently created a nerdy privacy-respecting tool called When Will I Run Out Of Money? It's available for free if you want to check it out.

This article is © Adrian Smith.
It was originally published on 24 Dec 2012
More on: Algorithms | Offer-Ready | Work & Customers | Things I've Released | Web