Developer diaries: interview with Michael Thomson, Head of Engineering
In this series of blogs entitled Developer Diaries, we'll be exploring the vital role CloudTrade's development team plays in delivering our service to businesses all over the world.
In this interview I take a look at the inner workings of the CloudTrade Development team. Michael Thompson is Head of Engineering at CloudTrade, having started as a developer when the company was first created.
What do you love about your job?
What’s fun for me personally is when the job is challenging enough that I’ve got to get stuck in. When everything’s ticking along fine, people can just do their own work and I’m there if they need me. But when people are struggling a bit and I’ve got to jump in and help them out, that’s ideal! Then I get to make a difference.
Would you say there’s a good balance between the work that’s more high level and the work that’s about ‘getting stuck in’ in your role?
Well, we have quite a junior team, which means I’ve still got to be quite hands on, and I like being in the thick of it. At the same time I’ve got to make sure we haven’t missed anything, that everything that needs doing is getting done by somebody. So I’ve got to pick the right people for the right job, move resources around. It’s a good mix! I like doing both and I get the opportunity to do so every day.
What do you find most rewarding about the job, personally?
It’s really when we take a big leap. A lot of the work that we’ve been doing recently has been about scaling up. Before, we would set up solutions and different systems for each individual customer, so we had to set up quite a lot for each customer that we have. What we’ve been doing recently is completely turning that on it’s head, so that we have a single group of stateless microservices that everybody goes through, that we can scale up or down in Azure scale sets to meet demand. You have the work that you have to do everyday, which can become a bit repetitive, but then you get the work that really takes the technology to a new level – and that’s actually three quarters of our work at the minute, so it’s really exciting.
Is that a feeling that the whole team has?
Since we received investment last July, there’s a lot of extra sales effort going on. With that comes the expectation that we will scale up and have all this extra business coming in, well beyond what we were doing anyway. If any one of the big customers we’ve taken on over that time goes “big” then we could double overnight. So we’ve embarked on a project of preparing ourselves for that kind of surge based on Microsoft Azure.
There’s been a lot of momentum and a lot of energy going on - so people feel like they’re involved in something important and big. There’s a good vibe at the moment, you can feel the growth.
This time a year ago there was about five of us in our team, and now we’ve gone up to thirteen, with another two coming in. We’re constantly moving, things are happening fast. You don’t just come into work and feel that it’s the same as it has been for the last five years, it’s constantly changing. It makes you feel alive!
That change and pace comes from either always coming up with new ideas, or from seeing things that need fixing. We’re the second way: the world is happening around us and we’re reacting to that. It’s exciting, because there’s a good kind of pressure. I like that the stakes are there, because when you succeed it’s really big.
What do you think has been the biggest challenge you’ve faced recently or overcome?
The project that we’ve been working on is all cutting-edge technology. Because we’re working at a large scale, you need the proper architecture in your software to deal with that. We’re using technology that was invented six months ago, and at the same time we’ve got some really old technology in the software. We use Prolog at the core of our system, which was popular in the 1970’s – now it’s mostly used in universities to teach people alternative ways of doing things and it hasn’t had very much development since then.
We’re trying to integrate that with stuff that was developed yesterday. A lot of the time making the old technology fit into the new architecture is a challenge.
What’s been the biggest lesson that you’ve learned since working at Cloud Trade?
When I got here I was a brand new graduate, the biggest mistake I made was actually building everything myself. When I encountered a new problem, my instinct was to build a solution for it from scratch. Now I look at what other people are doing in the rest of the world and build on other people’s foundations. The things that I built from scratch when I first got here I’ve since ripped out and replaced with standardised versions.
What specific skills have you honed at CloudTrade over the years?
I’ve become a lot better working on very long projects. When I started at CloudTrade there was no code in the area I was working on, I started from zero. As it gets bigger and bigger, the skills that you have to use are completely different. So it’s all about breaking those big projects into lots of smaller projects that all communicate with each other.
The other thing is working with lots of people. When you work by yourself you can do whatever you want, you can write it however you want. You can’t do that with more than one person, you’ve got to coordinate. If you all do whatever you want, you get everyone’s different versions and you’ve got to figure out how to put those back together again. That’s something I’ve had to figure out over the last two years. Part of that is through writing code that anybody could read – when you work as a programmer by yourself you get into personal habits, with a big team you have to have consistency that you’ve all agreed ahead of time. Then when new people come in they can understand what’s going on!
I’ve learned on the job for everything I’ve done. It’s a case of encountering problems and then solving them. Then when you get to the point where things have gotten a bit chaotic you sit down and deal with it. We’ve been very lean, I suppose, we’ve done what we’ve had to do. The bigger we’ve become, the more we’ve been able to get to those other things.
It’s all been very organic. Our team has grown pretty steadily, and then in a big sudden burst over the last year. The code has been doing the same thing, steadily growing then bursting forwards. So then we have to do a bit of gardening, pull some weeds out.
I sought this job out, because that was the way I wanted to do things. When I first started we were a small company with no money, and I could have gotten an easier job for a bigger company, but it wouldn’t have been challenging, it wouldn’t have been an adventure. I really wanted something I could make my own, go on a bit of journey and have things change around me.
I was looking for somewhere where I could have an adventure, and I have had that here.
CloudTrade are always on the hunt for developers. Especially if you're passionate and want the opportunity to grow. Check out our careers page to see our vacancies.