Bet365: A company betting on its own technology innovations

While many sites make great use of agile development, run on the cloud and are built on Java and JavaScript, Bet365 is doing IT its own way

This article can also be found in the Premium Editorial Download: Computer Weekly: How the internet of things could save the honeybee

An open-source functional programming language and middleware – originally designed by Ericsson to support distributed, fault-tolerant, real-time software in telecoms switches – is behind Bet365’s sports betting app.

Alan Reed, head of systems development and support at Bet365 (pictured above), runs a team of 65, which develops the user interface and supports the middleware for the company’s core products. Reed is responsible for ongoing development of sports betting products across the Bet365 websites, across desktop, mobile and tablet.

He says: "We use functional programming rather than procedural programming, because the problems we face are similar to the problems historically faced by the telco industry."

As a result, in 2012, the company decided to replace Java with a programming language called Erlang.

Erlang was developed in the 1990s by Ericsson for telephone switches. For Bet365, the problems telephone switch providers had to deal with the in 1990s are very similar to the kind of problems in running a sports betting website, with issues of reliability, scalability and simplicity.

Erlang enabled Bet365 to build its Cash-Out product, launched in 2014. This feature allows users to close a bet early, before an event has finished, requiring substantial calculation of odds in real time. It has also been used in database migration to NoSQL.

Read more about software development

Keeping up with innovation

The back end of the Bet365 site has been engineered to handle large volumes of transactions, written as generic code, while the front end is about consistency. "We tend to have very lightweight product and keep the front end very small and our code as portable as possible." But supporting different devices requires a balance between creating a consistent user interface while supporting native features of the device.

HTML 5 has allowed Bet365 to create a common product with a small amount of device customisation. "HTML 5 has allowed us to write common code," says Reed.

"We may not have 100% visibility on all the devices around the world, but we can make our code as portable as possible. The app has allowed a certain differentiation." For instance, he says: "If you are on an iPhone, we’ll try and support certain gestures." While buttons across different smartphone devices will look different, he says Bet365 tries to give a native feel while at the same time retaining its brand.

Reed adds: "We try to differentiate where technology dictates." As an example, Objective C is used to build the iPhone app, which supported embedded video. Similarly, native Android code is used where features are unsupported in HTML 5.

Like many sites, Bet365 uses JavaScript but, rather than give developers free reign to write their own scripts, Reed says the company uses TypeScript, the open-source scripting language from Microsoft, to generate JavaScript. He says: "It allows us to create quite clean code with a larger team, producing Java in a prescribed format, which means you have fewer problems."

Creating standard code is extremely important for the website, according to Reed. "One of the challenges we face is, because code is live for a long time, maintenance becomes a larger part of what we do. With more standards, you can reduce maintenance," he explains.

The Bet365 way

Regarding agile software development, Reed says: "We tend to use proprietary methodology, which has worked well for us.” Strictly speaking, Bet365 is using what Reed describes as “the best parts of the different methodologies". 

He adds: "We’re quite open about our development practices, and take the most suitable ones for us."

Reed says a lot of the challenges the company faces in software development perspective are unique; new recruits are taught the Bet365 way.

But the company's code development does borrow from agile. "We release code pretty much every day and update continually, but you can’t beat a technical specification and a formal requirements document," Reed says.

So the company needs to balance the need in the mobile space for continual improvement – where, historically, a waterfall methodology was not suitable – with work that better fits formal methodologies. "Our demands don’t quite fit 100% agile or waterfall," says Reed.

Technology odds

It is surprising that Bet365’s infrastructure is hosted in its own datacentres, rather than in the cloud. 

Reed says: "We prefer to do things in-house, because it is a strategy that has worked for us." 

In many ways this is reflected in the choices the company has made in software development. Its own development methodology, basing its back end on Erlang over Java; and standardising JavaScript work using TypeScript, which Microsoft introduced in Visual Studio 2013; serve as examples of how Bet365 is punting on its own technology, rather than following the crowd.

Read more on Software development tools