The Go Gopher; Go’s mascot.

This blogpost introduces you to the Go programming language.

It is mostly a summary of “The Go Programming Language” book, by Alan A. A. Donovan, and Brian W. Kernighan, with examples from the tour of Go.

Intro

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Conceived at Google in 2007 and announced in 2009 Go is a compiled, strongly, statically typed language. It is primarily influenced by the C language.

Go is an object-based language, but strictly speaking not an object-oriented one. There is the notion of objects but there are…


EXPEDIA GROUP TECHNOLOGY — SOFTWARE

Guidelines for developers

A screenshot of a dashboard
A screenshot of a dashboard
Figure 1: Example of a Single Pane of Glass Monitoring Dashboard.

Recently our teams at Hotels.com™, part of Expedia Group™, started moving from Graphite to an internal metrics platform that is based on Prometheus. We saw this as an opportunity to improve our observability and, among others, we provided a set of simple guidelines to help with the migration.

We believe these guidelines would be useful to the community and hence we share them in this blog post. Some of the examples apply to our tech stack (i.e. Spring Boot, Micrometer, Kubernetes) but the idea is the same for other technologies and libraries.


EXPEDIA GROUP TECHNOLOGY — SOFTWARE

Mittens is an open-source tool that can be used as a warm-up routine for HTTP applications over both REST and gRPC

Mittens logo
Mittens logo
Mittens; a warmup routine for HTTP applications over REST and gRPC.

At Hotels.com™, part of Expedia Group™, we deploy our services on Kubernetes. Many of those services are deployed to production multiple times per week while Kubernetes restarts pods and applications on a regular basis.

When an application starts as part of a deploy, redeploy, or restart, the very first requests are expected to be slow.

Although there are many reasons that contribute to this and to various extents (e.g. …


EXPEDIA GROUP TECHNOLOGY — SOFTWARE

Continuing our learning about gRPC — this time implementing a service

Introducing gRPC to our Hotels.com Platform

In the first part of our series we introduced gRPC focusing on services written in Java and deployed on Kubernetes. In this blog we’ll present a simple Spring Boot application which exposes a gRPC endpoint and we’ll go through the code you need on both the server side and the client side. Although this application is far from a production-ready service it can be used as a starting point. Within Hotels.com™ (part of Expedia Group™) we use both gRPC and REST/HTTP services, though gRPC is only used internally

Application overview

The project can be found here. It is a Spring Boot application…


EXPEDIA GROUP TECHNOLOGY — SOFTWARE

Details of the January 2020 Chaos and Resilience Engineering London event held at Expedia Group including slides and talk outlines

Here at Expedia Group™ we have a strong commitment to supporting the tech community, and our newly refurbished London office has a purpose built area for internal and external meetups. On 28th January, 2020, Expedia Group hosted the first London Chaos and Resilience Engineering Community meetup for 2020 at its offices in Angel. This time we had Florian Rathgeber from Google Cloud, Russ Miles from ChaosIQ, and Crystal Hirschorn from Condé Nast sharing their experience in resilience and chaos engineering.


EXPEDIA GROUP TECHNOLOGY — SOFTWARE

Learnings from our experiments with gRPC

Hotels.com loves gRPC.
Hotels.com loves gRPC.
Introducing gRPC to our Hotels.com Platform. Source of right-hand side image: https://grpc.io.

At Hotels.com™ and Expedia Group™ we have been investing in tools that cover the 3 pillars of Observability (logs, metrics, and traces) and the help of those tools when debugging latency issues has been invaluable.

As an example, we have open-sourced our Haystack solution for distributed tracing and our Pitchfork forwarder, which lifts Zipkin traces into Haystack.


EXPEDIA GROUP TECH — SOFTWARE

Meetup at Expedia Group

On 6th November, 2019, Expedia Group™ hosted the London Chaos and Resilience Engineering Community meetup at its offices in Angel. Three speakers from Expedia™, Hotels.com™, and Vrbo™ shared their journeys in chaos engineering.


On the right side of the picture you can see a monkey… and kube… keep reading.

When we wrote our first blog post that’s related to resilience engineering we didn’t think about starting a series of posts in that area, mainly due to the following facts:

  • We didn’t have enough exposure to resilience testing and resilience engineering (we don’t have even now).
  • We were still at early stages in terms of our cloud migration from our data centres to AWS with Kubernetes (now we are not).

Since then lots of things have happened, many services are currently running in AWS in production while we are also collaborating with the other Expedia Group brands in the area…


Presenting at Voxxed Days Thessaloniki.

Recently I had the pleasure of speaking at Voxxed Days Thessaloniki, one of the biggest tech conferences in Greece. If the name reminds you of Devoxx (of which Expedia Group was a proud sponsor) this is because Voxxed Days is an initiative from the Devoxx community.

Voxxed Days Thessaloniki was a full 2-day conference with talks spanning from trendy technologies like Kubernetes and Istio, to ones that trigger discussions, such as remote working or the rights and responsibilities of a delivery team. …


Software engineering is more about reading code than writing it, and part of this process is finding the code that you should read. — Han-Wen Nienhuys

The good old days when entire websites (including hotels.com) were served by a single web service are gone.

It’s clear that most companies are moving from monoliths to microservices. This shift obviously has numerous benefits but it also brings new challenges such as that IDEs can no more effectively locate source code as this spreads along several projects. Here is where source code search engines come into play.

Why do you need a source code search engine?

First, I wouldn’t agree more with Han-Wen Nienhuys, author of Zoekt source code search engine who said that:

Software engineering is more about reading code than writing it, and part of this…

Nikos Katirtzis

Software Engineer @ExpediaGroup

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store