Welcome 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...
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 ArticleDotfiles distribution
When faced with managing dozens of servers, keeping your configuration files up to date (or existent) becomes a real chore. At Booking.com we saw many interesting ways people had solved this problem,...
View ArticleIs your A/B testing effort just chasing statistical ghosts?
Controlling for repeated significance testing errors and false positive rates in commercial A/B testing is often perceived as a bit of a pedantic, academic exercise.In academic research, lax...
View ArticleProfiling in Production
At Booking.com, we're big fans of monitoring. With the usual battery of system-level monitors, we keep an eye on the health of our servers. As you would expect from any commercial internet company, we...
View ArticleOn the importance of localisation
Here at Booking.com, we support over forty different languages, and we've seen the business value in enabling users to read in their own language, and see information presented in a format they are...
View ArticleOK: Monitoring enabled
To run a website like Booking.com you need a lot of servers. Not just webservers, but also mail servers, database servers, name servers, proxy servers and a lot more. How do we make sure they are all...
View ArticleThe Dreaded "Attempt to free unreferenced scalar"
Every single time I see an error message that looks like Attempt to free unreferenced scalar: SV 0xDEADBEEF, my heart sinks. I know that I am in for an extended debugging session. Debugging memory...
View ArticleResponsive Email
As the number of users who read our newsletters on mobile devices has grown, we've started creating mobile friendly, responsive newsletter templates [1], which make it possible to display our content...
View ArticleThe Next Sereal is Coming!
Sereal is a fast, compact, binary, schema-less serialization format that aims at dynamic languages' data structures and specifically supports many of Perl's complex structures and concepts.Over the...
View ArticleHow we do talent development in Booking.com IT
As you have read in other blog posts, we really value our developers and we give them all the freedom in finding better ways to support our website visitors in booking their accommodation. To keep up...
View Article