Developer Exchange

Brad Jayakody
The Hotels.com Technology Blog
3 min readJun 29, 2018

One of the challenges with a large engineering organisation, is that each individual team works slightly differently. This has advantages and disadvantages, letting teams run independently is great, but when Team A is doing something amazing, that is now so much a part of their DNA that they don’t think it’s worth sharing, how do we get that knowledge and ideas out to the wider company?

One idea that we’ve started to do at Hotels.com is to a “Developer Exchange Program”. Think of a Foreign Exchange Student program, where you spend time in a different culture before going back to your country of origin. Similarly, our Engineers get to go work with another team, for either a short period of time (a week) or sometimes for 3 months. Then they return to their team, with new ideas of both ways of working and also technology learning. As well on sharing their knowledge with whichever team they are visiting.

Recently one of our interns, Andra Andrus spent a week with another team, the following is her description of the exchange program.

A couple of days ago I had my 1 year work anniversary — during this year I spent most of my time as a Scala developer in the Replicants team (formerly known as SEM tools) and I only got familiar with Kubernetes a couple of months ago while using it to deploy one of our apps to the Cloud. However, my knowledge was quite basic, so when I was given the opportunity to join Data Highway for a week, as part of an exchange program, and work with Kube, I got quite excited!

Earlier this month I joined them and was welcomed me with open arms (although I’m coming from a Scala team)! I was super happy to be included in their team traditions and also get a taster of wakeboarding*.

During my time in DH I have worked with Riccardo on Node Reaper, a Golang app that connects to the Kubernetes API and based on an user-defined set of health conditions, decides whether or not a node should be terminated. We worked on designing a plugin architecture so that the app is agnostic of the Cloud provider, used Govaluate to give users the possibility to specify complex logical predicates for the “reap” conditions, worked on the logic behind draining and reaping nodes and also wrote a couple of unit tests.

As a Scala developer, switching to Go was a challenge in itself, but luckily I had some awesome people around to help me and explain some of the concepts — shoutout to Riccardo who actually had the patience to sit with me and clarify stuff (sometimes more than once). However, by the end of the week I feel like I have grasped at least the basics of Go — and hopefully also provided some helpful input :).

* It’s much easier than it looks

Exchanging engineers between teams is something at Hotels.com, for either a short period of time or more permanently is something we highly encourage. The environment we have is one of high levels of collaboration and with continuous improvement as part of our DNA, sharing knowledge between teams on better ways of building incredible software is something we strive towards.

--

--

Brad Jayakody
The Hotels.com Technology Blog

VP of Engineering@Pleo. Builder of awesome things, part-time Astronomer.