Introducing Build.Better Days

We’ve been growing at an incredible rate here at Trainline. While it’s been amazing to see the constant stream of fresh, enthusiastic faces, it’s really put our engineering practices – and culture – through its paces.

However, complete autonomy that is easy to manage in small, nimble teams becomes unmanageable across hundreds of hard-working, creative engineers. Continue reading

The year at Trainline in numbers


2016 has been a very busy year at Trainline as we have been growing at a rapid pace.  This means our tech team has had to work hard to scale effectively and cope with the sheer demand.

New product teams have been springing up all through the year, while older teams have grown and been split into sub-teams to maintain the essential agility of small teams. With such growth, we have needed to ensure our processes were in good shape to manage the increased complexity that this brings.

Here are a few fascinating stats which tell a short story of the year at Trainline … Continue reading

Use proxyquire to mock your React components

Testing React components has become trivial as more and more of them are now stateless functions.

The new shallow renderer and tools like Enzyme make it possible to render a component “one level deep” when testing, without even rendering it in some sort of DOM, while still having a great api to traverse the components’ output and assert facts on its behaviour.

Given all these great tools that we have, what happens when we have a container component that renders sub-components (child components) based on some sort of rule/logic?
How do we handle those dependencies to keep our unit tests free from dependencies?

Continue reading

On-boarding at Trainline

I originally posted this blog on my personal website at but I thought it might also be relevant here on the Trainline Engineering blog.

Trainline Homepage

Trainline Homepage

I’m now entering the sixth week of my time at Trainline. It’s been quite the experience, due to it being my first full-time job and it being a time of significant changes at Trainline in terms of technology, branding and even an expansion into the European rail market. Continue reading

An idea to bring our business alive with maps

trainline mapI like travel and maps. We’ve got lots of information about the train times people want to know, and which journeys they take, I’m sure putting this together onto a map would bring our day to day business alive, and hopefully make some interesting discoveries about our customers. There’s already a team in the company who look at the journeys customers book, but we don’t do much with the journeys people look up times for.

At work we change our product with a new release, there’s a lot of build up to these events and effort put in, but when it’s good the success is hard to measure, other than that there’s no major problems. So the challenge is to bring the system alive, by creating a way to show what our customers are doing in a way that people can understand at a glance so that it grabs their attention. Perhaps as we launch our new ad campaign the patterns will shift, for example as we run an advert during X-Factor the journey search patterns shift. Continue reading

What the ELK!? – Log Aggregation

Everyone loves logs right?


Logs are long, complex, full of useless information, and it takes ages for you to find that one error message that you need to fix a problem. So if you’re working with over 100 servers and you’re getting over 200GB of logs a day how can you get through your logs to find the real information inside?

Continue reading

Improving customer happiness at trainline with New Relic

Later this week, we’re excited to be hosting the second New Relic meet-up at our London offices, and we’ve been given the opportunity to talk about our experiences using their products. For those that don’t know, New Relic is a suite of monitoring products that we’ve been using to get near real-time monitoring of end-user, application and server performance, and we’ve been using it across our entire stack of products and services for more than a year.

Continue reading

Chef training with Stephen Nelson-Smith – the trainline approach

At we have been using Opscode Chef since 2012 for automation of parts of our server infrastructure, particularly the build (CI) machines. We recently had several days of intensive Chef training with Chef expert Stephen Nelson-Smith (@LordCope on Twitter) of Atalanta Systems, spread over a few weeks, in preparation for scaling up our use of Chef. Here are some details of how we structured the Chef training, and what we got out of it (and why).

Testing Tools for Chef

Testing Tools for Chef – following the outside-in GOOS-style/BDD approach

Continue reading

Trainline Engineering at Silicon Milkroundabout 5.0

The Trainline Engineering team attended Silicon Milkroundabout 5.0, the tech hiring event held at the Old Truman Brewery on Brick Lane on Sunday, May 12th, 2013. It was a great event, well organised and with excellent turnaround of quality job seekers.

thetrainline at Silicon Milk 2013

thetrainline at Silicon Milk 2013 – I’m on the left 🙂

The event’s participants are mostly startups, but also more established companies attended like StackExchangeyammer, king and us at This year many startups gravitated towards recruiting mobile applications development skills alongside more traditional javascript, php and design skills. It was an excellent opportunity for informal conversations with fellow companies, which resulted in several invitations to present at meet-up events.

Continue reading