Our lead software engineer Chris takes a brief look at the WeSwap tech journey so far. From starting out, to managing rapid growth, to ensuring quality… Chris will also be looking closely at what’s next for the WeSwap tech team.
When I first joined WeSwap in 2014 we were a scrappy insurgent start-up with a few hundred customers. We had a nice, solid platform, written in PHP. It was solid, dependable and got us through our first major expansion in 2015. But, we were limited.
The monolithic approach (data input and output, data processing, error handling, and the user interface are all interwoven) meant that the platform was hard to expand, and started to feel like a Jenga tower that we’d taken a block out from every level, the next move was probably going to cause it to fall over.
We also only had one database and that was starting to feel the strain, with transaction deadlocks and slow queries becoming more common we realised that we had to split things up a bit, or keep buying bigger servers, not a good situation for a low-margin start up.
We had to change something, so we did three things: 1. hired our first QA, 2. split our platform into Microservices, 3. improved our deployment process.
- Our first Quality Assurance specialist made an instant impact and we now firmly believe that manual QA testing is crucial to the success of our (or any) tech team. From releasing code with major regressions every few releases and manually checking Diffs before each deployment to try and make sure we hadn’t introduced more bugs, we now had Dheepna doing pre-and post-release testing. Suddenly we were clicking the “deploy” button with much more confidence.
- Now we started to split our code into smaller services each independent, each deployable on its own. We started to get things done more quickly, and the smaller we made these services the faster development got. The problem was we were having to do a lot of configuration, with each service knowing where the others were and how to talk to them. So we made our next leap, a unified messaging platform. We leveraged the power of AMQP and its exchanges and queues to enable each service to say “I’m going to send these messages and I want to hear about these messages”. Suddenly we didn’t need service discovery or DNS for more than a couple of services. We could build big complex systems out of these little blocks that could be totally ignorant of what the other services were and where they were.
- Our deployment process was still a bit unwieldy, and by now we had two development teams working on different things, so we were struggling with features being delayed because another feature wasn’t ready to launch. The humble feature toggle came to our rescue. Being able to have code in master that was behind a toggle (and so disabled) meant that we didn’t have to wait to push code until the rest of the business was ready, we could have a feature up and ready and then turn it on when we got the sign that all was good from the company. We expanded this to allow us to toggle features on for “Internal’ users, letting us preview releases to our staff for training or testing before it was released to you.
We’re always trying to do things better. Site speed is one area in which you need to keep up with the pace: both in terms of how fast our site and our apps are, but also how quickly we deploy and get our features out to you.
We’re also having to change the way we build our features, to ensure that when we add something new, we don’t break our old clients and leave our customers high and dry, (unless you’re climbing a sand dune in Dubai perhaps).
We’ve got all sorts of exciting challenges to take on. Whether it’s making our platform more stable and secure, making our UI better and more fun or making sure your is matched with other travellers there’s never dull moment and it’s all with the overall aim of helping you to Stress less and travel happy.
Thanks to Chris for his pearls of Tech wisdom. If you have any questions for Chris, or anyone else in the WeSwap team, pop them in the Comments section below and we’ll back to you quicker than you can say WeSwap Tech Team AnsWer Me This.