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.
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.
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.
An Inline SVG Icon System For Our Hotel Search Application
Around a year ago, in our large scale refactoring project also known as Project Ironman, we stepped away from image sprites that we used for our icons. In this post we will explain our reasoning behind this decision and how it improved maintainability and website performance.
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.
Thoughts on Atom Building in the Pattern Library
At trivago we are building and using a Pattern Library which is based on Brad Frost's Pattern Lab adapted to our needs; our patterns are written in Twig.
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.
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.
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.
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.
tCache - Scalable data-aware Java Caching
tCache takes a creative approach for near lock-free evictions and supports data-aware evictions. Its key features are:
Configuration of features is individual per Cache instance, by using a cache Builder:
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.
Realtime metrics with Go: Running InfluxDB in production
At trivago we love hotels above everything else, but we also like metrics, we love to measure everything, compare, decide, improve and then rinse and repeat. In this blog entry we are going to describe our experience with InfluxDB, a time series database that we are using to store some real time metrics.
Popular tags
Featured articles
Career? trivago.
Tackling hard problems is like going on an adventure. Solving a technical challenge feels like finding a hidden treasure. Want to go treasure hunting with us?
View all job openings
Follow us on