7th September 2017
Spotlight on... David Winterbottom, Head of Engineering
Chris Roper, Writer
Our Head of Engineering, David Winterbottom, takes the spotlight this month to explain how building our own technology creates better customer experiences.
Why did you join Octopus?
I was working at Yoyo Wallet (a mobile payments startup) when I got a text from Greg, our founder, saying, “we’re going to do the next big thing, do you want to join us?”. So we went for a beer and he told me about Octopus.
When I was explaining to the founders at Yoyo why I was leaving, I gave them three reasons. One, I wanted to work with the great people I'd worked with before. Two, I wanted to work in the energy sector and do something, however small, about climate change and help people switch to renewable energy. And three, to have the opportunity to steer the design and tech we wrote right from day one.
What do you do at Octopus?
If you think of the tech team as a pipeline where ideas get fed in one end, get specified then implemented and tested, before emerging as features used by our customers and employees – well, it’s my job to manage that pipeline.
So that means talking to the right people to understand a problem, and making sure the right people are working on it, and that the work they do is of a high quality and delivered in a timely fashion.
There’s a lot of code review, collaboration, and testing – both automated and manual. So when someone says an enhancement or feature is ready to go live, I’ll check it over and point out any problems or areas for improvement. Then, once the changes have been made, I make sure it deploys smoothly into our production platform. I get emailed whenever there’s any kind of issue in production – even if just one error for one person – so I know pretty quickly when stuff isn’t working.
I sometimes joke that my role is like a head chef at a restaurant – I design the daily menu but let my staff do most of the actual cooking. They then bring me their dishes and I’ll often say, “no, this is cold,” or, “this isn’t cooked properly.” Once I’m happy, I’ll sprinkle on some parsley and try to take the credit when it goes out to the customers!
How do you keep our tech running efficiently?
We’ve cherry-picked many processes and practices that have been effective at other companies we’ve worked at. It’s an iterative process: we’re constantly reviewing how we work and looking for ways to improve. We have stand-up meetings twice a week so we can share what everyone is working on and overcome any obstacles to getting things done.
We’re also careful to measure the effect of the work we do. Before we work on a feature, we define success criteria: what metrics should change once the feature goes live.
How is what you do different to other suppliers?
The traditional supplier model is to buy a lot of your technology instead of hiring a team of software engineers to build it for you.
We’re trying to be more like a tech startup that just happens to work in the energy sector. We employ the practices of successful startups such as continuous deployment, pair programming, test-driven development, code review, and A/B testing. We let our customers drive our product by releasing features early and listening to the feedback.
Working in this agile way means we can ship stuff quickly, yet easily change course if it’s not working. That makes us culturally different from traditional suppliers who buy their software and hope it works. They’re a bit like the Titanic: they can’t change direction very quickly when things go wrong.
It’s similar to what’s going on in a lot of sectors, particularly the private transport market, where you have all these companies like BMW, Volvo, Ford, and so on who’ve dominated the industry for years, but suddenly have to contend with electric vehicles and self-driving cars.
You’ve now got what are essentially software companies – Google, Apple, Uber, and Tesla to some degree – entering the automotive sector. The cars of the future won’t rely on a combustion engine, but the software that gets the most out of the large batteries inside them. So vehicle manufacturing becomes a lot like a software industry.
That’s how the sector gets disrupted. It’s much harder for a company like BMW to change their culture. You can’t just hire a few people and change from automotive engineering to software engineering, so they’ll struggle to keep up. And it’s happening in energy quite a bit. It’s what we’re trying to do – we’re trying to be that software company that changes how the industry works for the benefit of customers.
What are you working on at the moment?
Lots of things. I dip into everyone’s work. But one important thing we’ve been working on is annual statements, which have proved to be a million times more difficult that we first thought.
At first it seems easy – every customer has a yearly anniversary and gets a statement of their consumption. But the devil is in the detail. Just the definition of a year is quite difficult – which starting point are you using? And even calculating how much they used can be tricky if we don’t have regular meter readings.
So it touches every part of the code base. Then you have to work out all the costs. Pulling that all together for each customer’s unique journey is challenging. And working on this has shaken out a lot of other work that needs doing. So it’s been going on for some time.
We’re also working on making use of Amazon’s “server-less” technologies to allow rapid prototyping. That means bringing up new services without having to refer to me or someone else in the tech team. For example, our data scientist David Sykes might have a great idea about how to generate a report or wants to classify some data in a specific way, and we’re looking at how to get such things into production quickly.
Best thing about your job?
Like I said at the beginning, it’s working with really smart people, working in an industry that I care about, being able to steer the engineering environment, or at least influence it, and apply the things I believe to be good practice, and writing high quality software.
I intend to be maintaining the software we write in 5 to 10 years time, which is a quite different to working in an agency or as contractor, where in a year’s time, the software will be someone else’s problem. This changes how you write software. I’m always thinking of the long term, making sure our code is clean and easy to change so that people will enjoy working on it for a long time and it can evolve as the business changes.
Another thing is working for a company that’s flexible about how people work. I’ve got kids and being able to go home early and split my working week up makes a difference to me.
Most challenging thing?
It’s really just trying to juggle lots of things at once. Trying to figure out what the highest priority is and doing it to the right level of quality and speed. To decide on priorities we have to talk to lots of people, and you find yourself standing in the shower wondering about your work. Wondering if one feature is more important than another. You always worry that the thing you’re ignoring or haven’t thought of will one day blow up and cause a big problem.
So it’s a big balancing act. Sometimes you need to push back and say to do this thing would hurt this other thing, but you can’t be too precious. You have to do what’s right for the business. Myself and James, our CTO, complement each other quite well. I think of the platform, and making sure it’s well-maintained and efficient, and James thinks of the bigger picture, such as new directions we could go in or prioritising certain things over others.
Hey I'm Constantine, welcome to Octopus Energy!×Close window