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
- DevOps done well can lead to a continuous loop.
- Typical supplier contracts are not suited to agile software projects where there is no requirements specification.
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.
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.
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."