SRE: On-Call Procedure at trivago

One of the many responsibilities of a Site Reliability Engineer (SRE), is to ensure uptime, availability and in some cases, consistency of the product. In this context, the product refers to the website, APIs, microservices, and servers. This responsibility of keeping the product up and running becomes particularly interesting if the product is used around the world 24 hours every day like trivago. And just like in the medical profession, someone has to be on call to react on failures and outages outside of the office hours.

Read Improving Evaluation Practices in Natural Language Generation

Improving Evaluation Practices in Natural Language Generation

Throughout last year I had the opportunity to participate and collaborate on multiple research initiatives in the field of Natural Language Generation (NLG) in addition to my responsibilities as a Data Scientist at trivago. NLG is the process of automatically generating text from either text and/or non-linguistic data inputs. Some NLG applications include chatbots, image captioning, and report generation. These are application areas of high interest internally within trivago as we seek to leverage our rich data environment to enrich the user experience with potential NLG applications.

Read Improving Your Data Layer with Rebase on Python

Improving Your Data Layer with Rebase on Python

Technology keeps getting better and better which, at some point, makes us think "Should I migrate to the latest version/technology or not?" Well when you decide to use a better technology for your application, you have to also consider rewriting the code that your application runs on. The business logic remains the same in most of the cases but the data model would definitely change if you are switching from SQL to some NoSQL Technology for example.

Read Prioritizing resources for a faster app startup

Prioritizing resources for a faster app startup

We've prioritized the resources that our users need to load and gained an impressive boost on our JavaScript application startup. In this article, I will explain how we've used Webpack, adjusted our handling of SVG icons and prioritized user needs to achieve up to 4.5 times faster startup.

Read Dropping IE8 Support: Consequences for JavaScript

Dropping IE8 Support: Consequences for JavaScript

When people hear about dropping support for a certain Internet Explorer version, they mostly think of all the CSS hacks and workarounds that could be removed as a consequence. However, dropping support for IE8 can have subtle, but profound effects on your JavaScript. Read on to learn what we experienced when discontinuing support for IE8.

Read How to export a JavaScript module to multiple formats

How to export a JavaScript module to multiple formats

When publishing a JavaScript library, we usually want to make it available to as many people as possible to maximize the library's usefulness and adoption. In that respect, it can be helpful to users to have the library available in their preferred module format - CommonJS, AMD, ES6, etc. This article shows how to use webpack to automatically export multiple formats without having to maintain them separately.

Read Speeding up webpack performance with parallel builds

Speeding up webpack performance with parallel builds

When using webpack to build your assets, it's only a matter of time until you wish for targeted builds. Whether it's the output of the library you're working on (CJS, UMD, AMD, Var, etc.), or the specific feature set (IE8 support, no IE8 support). parallel-webpack can run those builds in parallel, thus making full use of the multi-core processing capabilities of modern devices.

Read trivago Internal Hackathon 2015, 2nd edition

trivago Internal Hackathon 2015, 2nd edition

Twice a year, the trivago software developers gather to have a 2 day internal hackathon. This December saw another round of ambitious creativity, relaxed atmosphere, and good food :-)

One of our core values at trivago is fanatic learning. A great way to learn and expand your knowledge is to creatively try new technologies, or to apply well known technologies to new situations, without having to pay attention to a strict schedule or deadline. Exactly that is what roughly 120 engineers were doing on the first Thursday and Friday in December: It was internal hackathon time, meaning each developer could spend two entire days on their own projects as he or she saw fit.

Read Introducing Gollum: A NxM message multiplexer written in Go

Introducing Gollum: A NxM message multiplexer written in Go

Here at trivago we write a huge number of log messages every day that need to be stored and monitored. To handle all these messages we created Gollum, a tool that enables us to conveniently send messages from multiple sources to different services. While initially only covering log messages Gollum quickly evolved to a routing framework for all kinds of data. This blogpost is a short introduction to Gollum and how we use it at trivago.