carwow engineering — 2016 year in review

David Santoro
Carwow Product, Design & Engineering
4 min readFeb 9, 2017

2016 has been an amazing year for carwow, and an extremely challenging one for our Engineering team. We were only 6 developers at the beginning of the year. By the end of 2016 we were 13. That didn’t stop us from deploying over 10,000 code changes (thank you GitHub api).

The year started very well by closing our biggest investment round (£12.5 M) lead by Accel Partners (https://techcrunch.com/2016/01/13/the-series-b-stop/). With that cash in the bank we’ve been able to tackle more challenging problems, and enabled us to think a little bit more longer term.

At the same time we launched our first TV campaign. For many of us, it was the first time we were responsible for the scalability and reliability of a website about to receive spikes 10x bigger than the normal traffic. Good caching strategies and an insatiable hunger for faster server-side requests meant that the site held well against the newly achieved brand exposure.

The effect we didn’t anticipate was how queries that dealt well with tables of up to 1M rows collapsed with the increased data produced by the large amount of new users. January was a quick race to rewriting queries, introducing database followers, ditching traditional pagination (heads up: count queries are not a good idea on large tables).

We spent most of 2016 refining our Postgres skills, the learning led by Ken and Pericles and their book club.

We rested and celebrated at the end of February during our first company Ski Trip. (That unfortunately I had to miss due to my newborn at the time). I have heard crazy stories about it- ones that I don’t feel comfortable sharing with ‘outsiders’.

In the second quarter of the year Federico Rebora led a small team of 2–3 developers in a new challenging project: launching carwow in Germany… in 3 months!

It wasn’t a simple translation. They had to rewrite our configurator to deal with a completely new data provider (JATO), internationalise 4 rails apps, and redesign several pages to cater for the German market needs and regulations. With focus and aggressive scope management they launched on the agreed date.

As part of our longer term architectural vision, and as a way to help the German launch, Mike Wagg has led the challenging task of separating the part of the app that provided functionalities to our dealerships to its own isolated app. That involved developing a way for the app to communicate interesting business events asynchronously, define better internal APIs, and splitting out database and code dependencies. You can read some more about this split here: https://medium.com/carwow-product-engineering/on-tech-making-decisions-and-the-illusion-of-knowledge-db28a9735fb0#.2myerc9bj

The large amount of work didn’t stop us from experimenting with new languages, technologies, and building interesting experimental features during our hack-weeks.

Elixir was the language to attract the attention of our team. We’ve run a few dojos, wrote some example apps and towards the end of the year deployed 2 services built in Elixir and running in production.

We’ve finally starting rewriting old front-end code written with Backbone.js. We’ve opted for a combination of Redux and RiotJS (a React inspired micro-framework that in my opinion is much more elegant). We’ve been giving some long due love to the perceived speed of our pages. 50ms server-side rendering speed are useless for our users if then their browser takes over 2 seconds to show content. Ken has been studying a lot about front-end performance and he’s been periodically sharing the intricacies of speeding up page rendering with rest of the team.

The learning didn’t stop there, we hosted a few small events, the most interesting for us has been the Ruby Unconference. We met really interesting people there and that type of event facilitates interesting conversations. We’ll host more events like this in 2017.

In the 3rd quarter of the year we reorganised the way we were approaching projects. We introduced OKRs to the whole company and split the product team into three cross-functional ones focused on 1–3 OKRs each. You can read more about the re-org here: https://medium.com/carwow-product-engineering/cross-functional-teams-at-carwow-5f448ebb6b4a#.qxm4soetd

I’m amazed by the results carwow achieved from the start, and how we managed to smash the impossible-looking sales target that we set at the beginning of the year.

All of this wouldn’t have been possible without the beautifully crafted code, attention to detail, and patience of our Engineers.

A big thank you to (in alphabetical order):

Akash, Anson, Fede R., Fede T., Isaac, Ken, Mike K., Mike W., Pericles, Rafa, Stephen, Tadas

Interested in making an Impact? Join the carwow-team!
Feeling social? Connect with us on Twitter and LinkedIn :-)

--

--