Typically a graphical user interface(GUI) application has a companion GUI or simply UI testing process attached to it which is responsible to ensure that the UI of the product meets its specifications.
One of the most common things about UI testing is the need to assign identifiers to UI elements, usually called views. Usually these identifiers are assigned manually which easily scales to a painful process.
This article aims to describe an approach to get rid of that burden using reflection, which allows us to do runtime inspections.
Continue reading “Identifiers for UI testing: a reflection based approach”
A couple weeks ago we were making some performance tests in a legacy java component, in preparation for a week of expected high load. We wanted to find problems that may cause the services to fail during this important period so we could be prepared and preemptively perform some mitigation actions. We were not familiar with the inner workings of the service, there were few metrics available and it had never been closely monitored under this kind of load, so we had some work ahead.
At high level the service’s job was not too complex, it received messages from multiple rabbitMQ queues, did some processing over the data and finally published the result to an outbound rabbitMQ exchange and different Kafka topics.
Continue reading “My objects are aging too fast”
In this article, we’ll cover the introduction of distributed tracing in Betfair. First, we outline our problems with monitoring and logs, and explain why we think tracing is important. Then we detail the steps we took to enable tracing the bet placement in our platform. If you are looking for an open source implementation of a distributed tracing system, we propose you to check out https://www.jaegertracing.io/ . Jaeger is also our choice here in Betfair. Yuri Shkuro has written a great book on the subject.
Continue reading “Adopting Distributed Tracing – Part 1”
A few months ago, I had a unique opportunity to represent Betfair at the prestigious Kafka Summit in London where I presented the story behind how the Betfair Exchange evolved technologically from a monolithic system with serious reliability problems that was tightly coupled to an RDBMS, to a modern, event-driven, scalable and reliable platform, that is the backbone of our global business today.
Continue reading “Showcasing the Betfair Exchange at Kafka Summit, London”
“Every action has a consequence, and each consequence has another consequence… Be careful when making changes.” – Josh Kaufman
Frank Chen of Andreessen Horowitz spoke at the AI Summit in London in June 2018 on an area he calls “The Autonomy Ecosystem”1. The centrepiece of the presentation is the addition of a new artefact to tomorrow’s world – the self-driving car. The narrative to date around autonomous vehicles has predominately been focused on two significant consequences; human drivers being made redundant by technology and lives being saved through reduction in errors. In many instances, those two points are contrasted almost as cost and benefit. The debate of whether or how we proceed with the revolution of transport appears to rest on a simple net equation. Technology does not live in a vacuum however and the car touches a lot of ecosystems. As we come to understand the implications from the advent of new technologies, we should look towards the farther-reaching consequences and understand the role we have in shaping effects.
Continue reading “The Unintended Consequences of Technology: Second Order Effects”
Alex Cioflica, Cristian Bote and Tiberiu Krisboi
In the first part, we’ve taken you through benchmarking and choosing and the right frameworks by using PoCs, now we’ll take a deep-dive into our app.
Multi-product, multi-brand app
The big challenge was how to deliver several products for multiple brands from the same codebase, with no overhead or performance penalties when developing new features. Similarly challenging is that everything needs to be easily maintained.
Continue reading “Rebuilding the Gaming lobbies – part 2”
Alex Cioflica, Cristian Bote and Tiberiu Krisboi
Just a few
days before the World Cup started, we sequentially released a major rework of
all our Gaming sites covering both redesigning all the products and a complete
under the hood revamp. Rebuilding our technology stack was a massive effort
across multiple teams and departments, ranging from Product, Design and
Marketing to Tech, Content, SEO and the list goes on.
lengthy article we’ll talk about our journey through choosing the right
technology, learning from different mistakes and ultimately achieving what we
set out to do.
Continue reading “Rebuilding the Gaming lobbies – part 1”
The Betfair Exchange is a truly 24/7 product as part of a global business, both in terms of the customers that bet on it and where the events they are betting on take place. Uptime and stability of the Exchange technology stack are of paramount importance to the business and its customers. Even a few minutes downtime could mean a huge loss in revenue and customer impact, as an important horse race runs without any in play bets being placed or a customer misses a crucial trade out opportunity as part of their carefully tuned betting strategy. Therefore, keeping the Exchange platform running and having an early indication of any problems are always at the forefront of our minds on the Exchange development team.
Continue reading “Ensuring Stability and Responding to Failures on the Betfair Exchange”
At Paddy Power Betfair (PPB) we build software not only for us and our direct customers but also for several partners. We’re responsible for empowering them to run their betting businesses without having to build and run a whole infrastructure from scratch.
Some of the web applications we build for our external partners run within our infrastructure but are meant to be used by both, us and them.
Continue reading “SAML 2.0 SSO certificate rollover”
The Technology Strategy team in PPB was formed in November 2017 and has since worked on a strategic vision for technologies on the horizon, or “2021 vision”. Our team’s contention is simple: the history of emerging technology, particularly that which is characterised as disruptive, means it always warrants a keen eye.
Often waiting for maturity is a more cost-effective approach to using something which another entity will do the groundwork on. The danger, however, lies in how pronounced a disruptive effect someone else could have with that technology in the meantime.
Continue reading “Why Look At Emerging Technology?”