In order to support our business – helping families pick the best deals on the market for typical household needs, such as energy, tv, internet and communication – we use quite advanced technology. Behind simple web front ends, such as those found in comparethemarket.com and simplifydigital.co.uk, hide complex and carefully designed systems.
Simplify Digital is not tied to a specific technology or vendor, in fact, we use a best of breed approach. We evaluate hundreds of technologies so that we can make informed decisions on what’s best, and don’t just ride the current hype!
There’s no Web 2.0 without responsive, interactive, user interfaces. To help us leverage all the goodies of modern browsers, while keeping up with less advanced ones, we use Knockout, postal.js and Bootstrap. These allow us to have a nice look and feel that behaves properly in both desktop PCs and in mobile devices, while keeping business logic decoupled from it, and therefore easier to maintain and update.
For the back-end, things get a little more complex. To support our large database of products, SQL Server is our relational database of choice: a proven, robust database that provides all the scalability, security and performance our users need. But that’s far from the whole story! Some scenarios also require the storage of unstructured, stand alone data, and that’s where MongoDB jumps in – our stake in the NoSQL world! MongoDB offers unprecedent performance when it comes to storing and retrieving unstructured data. But the real key here is Elastic (formerly Elasticsearch). It makes searching for specific characteristics amongst thousands of products a breeze, in particular when what we are looking for could well be a partial match. It indexes contents stored elsewhere, and results come blazing fast! The three form the cornerstone of Simplify Digital’s data storage architecture.
But not everything runs on the browser or in the data store. For the most part, we use .NET for our applications, which includes ASP.NET MVC for all visible parts and Web API for web services. We get real time notifications through SignalR, again, a solutions that works equally well in standard desktop browsers as in mobile ones and data access is normally achieved through Entity Framework Code First, Microsoft’s flagship technology for working with relational databases.
We distribute our internally reusable .NET components and libraries using our own Nuget repository.
The glue that holds all these technologies together is RabbitMQ! It is a powerful enterprise-level service bus that delivers fast and reliable communication between application components.
Finally, it is worth mentioning the Docker virtualization technology. We use it for rapidly spawning Linux containers to answer increasing demands, and we drop them as soon as we no longer need them, leaving no traces of the data that was exchanged inside. Docker plays a crucial role on the scaling of our services.
And this is it! As you can see, there’s something for everyone, be it front-side or back-end!
We certainly hope this short presentation was enough to raise your interest. One key piece was missing, though, and that is you! We’re looking forward to hearing from you – please reach out to us and let us know why you think you should you join our team!