Building a maintainable bi-directional cross platform protocol

Today I gave a talk along side Pavel Dovbush at (#jsconfeu) about our experiences building a cross platform api abstraction based on protobuf.

Android Handler Memory Leaks

Android uses Java as a platform for development. This helps us with many low level issues including memory management, platform type dependencies, and so on. However we still sometimes get crashes with OutOfMemory. So where’s the garbage collector?

A page control with style

When we set up to design the new Hot or Not version, our designers and developers came up with a really nice way to hint users that the photos they scroll horizontally, can be seen as a grid.

Localising into 46 languages

Localisation done right will earn your app loyal users in new countries. Done badly, it becomes a nagging pain like half the apps on my computer trying to correct the spelling of localisation to localization. The purpose of localisation is not only to make your app available in other languages, but also to make the entire user experience feel like it was specifically designed with the local user in mind. Here I will share some of the lessons learned from making Badoo available in 46 languages, and point out some of the tricky bits you should pay attention to.

The technology of billing - how we do it at Badoo

There are many ways to monetize your project, but all of them have one thing in common – the transfer of money from the user to a company account. In this article we will discuss how this process works at Badoo.

5 Advanced Javascript and Web Debugging Techniques You Should Know About

In this article we will discuss 5 advanced techniques which web developers can use to reduce the time they spend debugging and squash challenging bugs by using new tools available to us and taking advantage of the new features offered by debuggers.

JSConfEU 2013

A few of us here at Badoo were lucky enough to travel to Berlin in October for JSConfEU. It was a fantastic conference, the quality of the talks was incredibly high covering topics from the future of JavaScript, to why sometimes you need to draw animals. There were so many great talks, but I just want to give a quick overview of the ones that those of us who went enjoyed the most.

Type Checking in JavaScript

Here at Badoo we write a lot of JavaScript, our mobile web app contains about 60,000 lines of the stuff, and maintaining that much code can be challenging. One of the trickier aspects of working with a client side JavaScript application of this scale is avoiding exceptions. In this post I want to discuss a particular type of exception that you have probably seen a few times - a TypeError.

AIDA - Badoo's journey into Continuous Integration


It’s hardly news to anyone that product development and testing involves a lot of boring routine work, which can lead to human error. To avoid complications stemming from this, we use AIDA.

Scaling beyond one developer

Yesterday I gave a talk to the London iPhone Developer Group (#lidg) about the lessons we’ve learnt in the iOS team at Badoo as we’ve scaled the development team.

Fixed Headers in Mobile Webapps

When building mobile web apps there is often a desire to try and make it look and feel as “native” as possible. Whether it is the styling of components, the use of transitions, or just general speed and performance, actually achieving these things can often be much more difficult than it first seems. This article explains some of the challenges we faced when trying to implement one of these “native” features - a fixed header.