A Few Fun Tools We Built At Booking.com
Everyone who starts working at Booking.com gets the technology talk. “We don’t want to hold you back,” they say. “We don’t want to restrict your creativity. You’re free to use whatever software you...
View ArticleTaming the events: How we regained petabyte-scale Hive query power
#disqus_thread { border-top: none; } .footnote-ref { font-size: 80%; } .footnote p { padding: 0; margin: 0; } article .footnote p:first-of-type, article .footnote p:first-of-type a { font-size: 100%;...
View ArticleReusing Bitmap objects on Android
Memory management in Android can be a bit complicated if the application has heavy media demands. The Booking.com Android application had an issue explicitly dealing with memory management that...
View Articlek-Nearest Neighbours: From slow to fast thanks to maths
.entry-content li { margin-left: inherit; } Abstract: Building the best travel experience for our customers in Booking.com often involves solving very challenging problems. One that appears very...
View ArticleGoldilocks and the Three Experiments
Once upon a time, during a usability test in a low and Nether-land, a seemingly meaningless pinch of the fingers by a middle-aged Dutch man named Geert sparked a series of three experiments by a girl...
View ArticleEvaluating MySQL Parallel Replication Part 4, Annex: Under the Hood
This is the annex to Evaluating MySQL Parallel Replication Part 4: More Benchmarks in Production.There is no introduction or conclusion to this post, only landing sections: reading this post without...
View ArticleEvaluating MySQL Parallel Replication Part 4: More Benchmarks in Production
Parallel replication is a highly-expected feature of MySQL available in MariaDB 10.0 and in MySQL 5.7. We already presented benchmark results with MariaDB 10.0 in the previous post of the series; in...
View Article5 ways to listen to your customers
ol { margin-left: 30px; } blockquote { font-style: italic; border-left: 3px solid #eee; padding-left: 20px; margin-left: 0; } .caption { font-size: 80%; color: #999; margin-top: -20px; }...
View ArticleA matter of design principle(s)
.caption { color: #999; font-size: 12px; } .img-caption { margin: 0 0 20px 0; } article h4{ margin-bottom:-1.5em; } Some lessons learned from jumping into the deep end.One of the core principles...
View ArticleWelcome to the Booking.com dev blog
Welcome to the Booking.com blog!Booking.com is an online hotel reservations company founded during the hey-days of the dot com era in the 90s. The product offering was initially limited to just the...
View ArticleThe Signal Handling Blues
Unix/POSIX signal handling is tricky at best of times. At worst, it drives people to write articles about it.In Perl, signal handling feels particularly messy: There can only be one signal handler per...
View ArticleSereal - a binary data serialization format
We introduce Sereal, a new, binary data serialization format that provides high-performance, schema-less serialization for Perl and other languages.As with many things in computing, serialization of...
View ArticleWe're Hiring Designers
My name is Stuart Frisby& I'm a designer here at Booking.com. I'm also hiring manager for our two open designer positions, and am on the lookout for the brightest design talent to come and join us...
View ArticleEfficient CSS Compression in Perl
At Booking.com we use Yahoo's YUICompressor to minify our style sheet and JavaScript files. We do this automatically from Perl for a smooth development experience. But since YUICompressor is written in...
View ArticleProtect Against Accidental Logging of Sensitive Information
This article introduces a novel way of handling sensitive data in the structural part of a Perl web application. Quite clearly, it does not cover the required infrastructure and protocol to store,...
View ArticleBooking.com Software Developer Hiring Process
With our incredible growth over the past few years, we've had to hire a significant number of developers to keep pace with our customers. Our massively scaled systems aren't going to maintain...
View ArticleHighlander!
There can be only one! Referring to the one process doing a particular job at a time, of course.When writing cron jobs that perform particular tasks in regular intervals, assumptions like "the run time...
View ArticleWriting Advanced Daemons That Aren't Daemons
This is the second and final article in a set of two.The first covered a pluggable locking toolkit. Here, we'll explore more advanced patterns. At Booking.com, we use Perl and IPC::ConcurrencyLimit[3]....
View ArticleF5 BIG-IP Custom MIB
SNMP (Simple Network Management Protocol) is an internet protocol used to monitor and manage devices including servers, routers, switches and assorted other devices. It allows gathering a glut of data...
View ArticleThe Little Script That Could
Almost 10 years ago, I walked into a little two-story startup company called bookings.nl to help some out with some Perl hacking on a project basis. There were two or three dedicated perl developers...
View Article