More for less, more or less

I have always loved simple designs, being able to look at something and see immediately how it works without needing to ask the person who built it. I believe that is one of the cornerstones of good architecture whether it is buildings, machinery or software. When working in a company, like bet365, where normal throughput exceeds 1000s of transactions per second, and there must be consideration for every millisecond (or microsecond) used, multi-threaded code is a necessity. The challenge, from an architecture point of view, is to establish a standard approach in C# to define and organise highly concurrent code…

Read More

Riak Update

Riak has come a long way since the unfortunate demise of Basho Technologies. With the release of Riak KV 2.2.5 (https://github.com/basho/riak/blob/riak-2.2.5/RELEASE-NOTES.md), which is the first community-led release of the database, the incredible success over the last few months is clear. A significant number of pull requests have been created, from organisations that operate large-scale Riak deployments, and also individual contributors. The community has continued to grow steadily, in both size and activity, across social channels and in terms of code contributions. The progress is staggering, considering that it was only a little over 6 months ago that the first community…

Read More

Moving between technologies

…and the challenges that we face when bringing in change and enforcing it For this post we are going to have a look at how the Sports UI team within bet365 handle the rapid pace of change in technology, what happens when it doesn’t go well and how we have reacted to this to allow success in the future. Being a company focused on technology we are all too aware that the landscape of technology is constantly moving. Today the flavour of the month could be Angular2, which could flip entirely to ReactJS the next month and then next month…

Read More

RIAK Workshop Summary

Between 12th and 13th of October bet365 hosted the first post-Basho RIAK developer workshop. Over the two days, the international RIAK community came together at bet365 House to discuss, the current situation, ongoing development work, and to shape the initial development roadmap. What follows is a brief summary of the two days and the outcomes. Martin Davies, Hillside Technology Limited’s CEO, opened the workshop, discussing bet365′s RIAK involvement and history. Martin explained how RIAK has shaped the development of the bet365 platform over recent years. Martin also discussed the reasoning behind bet365′s purchase of the RIAK IPR from Basho’s receiver….

Read More

Image Optimisation

One of the most important but perhaps under-appreciated tasks in the design and development teams is the judicious optimisation of images. We use the word judicious very specifically here because it is a job we can’t currently leave solely to computers. It is a job that requires keen eyes and excellent judgement. Why? The largest category of assets, in terms of file size, on a web application are almost always the images. An unneeded JavaScript library like jQuery or generally flabby code (which obviously we would never be guilty of writing, but suppose we did) can be easily dwarfed, in…

Read More

bet365 and RIAK @ London Riak Meetup

Andrew Deane, Systems Development Manager at bet365, recently spoke at the London Riak Meetup to discuss bet365’s acquisition and its consequences for the product. Andrew gave an overview of the historical relationship between bet365 and Basho, how bet365 came to acquire Basho’s assets, and announced the roadmap workshops to be hosted at bet365 house. View the Slides from the presentation here. Check out the recent editorial featuring Andrew on bet365’s multilingual development environment.

Read More

Efficient Default Property Values in TypeScript

In order to ensure that our website runs as fast and efficiently as possible, we often use performance analysis tools to take a look at what is happening inside the browser, specifically on more constrained devices such as Mobile Phones. It was during one of these profiling sessions that we realised that the JavaScript emitted by the TypeScript compiler had the potential to be optimised so that the output used CPU and Memory more efficiently. While investigating this we devised a TypeScript design pattern for properties of classes called the Static Initialisation Pattern. This article discusses this pattern, how it…

Read More

Normalising Geometric Data at bet365

Normalising geometric data is not a problem solving exercise that immediately springs to mind when you initially join the Sports UI team at bet365. What does geometry have to do with sports betting? As part of bet365’s In-Play Sports offering, we have enhanced several sports; with a feature we call “Match Live”. We know that our customers may not always be able to catch the sports they have placed a bet on, Live on TV. The Match Live feature enables customers to get an overview of the latest scores and view several different statistics for the Matches that are in-play….

Read More

Large-Scale Web Development Using TypeScript

Or, Re-building The World For The Post-Flash Era This article discusses the technology decisions that we made in developing our latest desktop site, and how those choices allowed us to deliver the site in the face of pressures outside our control. Background In 2014, our flagship desktop sports product had reached the pinnacle of what we could do using Adobe’s Flash platform. Even so, we knew that Flash was reaching the end of it’s natural life as a web platform. Ever since Steve Jobs had penned his “Thoughts on Flash” in 2010 the technology industry (specifically browser vendors) had begun…

Read More

Bi-Directional Communications for the Web

Or: Websockets for Fun and Profit   What Is This Hyper Text Thing Anyway? HTTP (Hyper Text Transport Protocol) was originally built to provide a resilient means of conveying data across a unreliable network of unreliable networks, and it arguably accomplishes this very well. It is now one of the most widely adopted and implemented application protocols in the world. The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol that can be used for many tasks beyond its use for hypertext, such as name servers and distributed object…

Read More