20 Years of Development
We have been evolving and developing our unique data model for the last 20 years. Learn how we've made sure it always delivers maximum performance.
20 Years of Development
For the last 20 years we have been evolving and developing our unique data model to ensure it delivers maximum performance. How do we do this? We fundamentally structure our data differently.
While the common approach in research technology is to linearly collect answers and query them individually, we parallelize the game. With our core mathematical engine, we compare every single response, for every single respondent, at the same time. Using large vector calculations, we can query thousands upon thousands of respondents for multiple questions, in milliseconds.
Not only is this code extremely powerful, but it is also incredibly lightweight. By having a core engine that is laser focused, we have a packaged code that doesn’t require a lot of infrastructure. This means we can run it wherever we like, whether that’s a massive server, or a Raspberry Pi.
What this enables us to do, is take this code and scale it with ease in the cloud.
Cloud Computing is Changing the Game
In the nascent stages of technology, everything was on local servers. Physical machines companies owned and stored on their premises. While this provided certain advantages such as data residency and low latency, it also provided a ceiling in scale and made you more susceptible to power outages or maintenance issues.
To overcome these challenges, companies moved to aggregating machines into large server rooms, e.g. in banks. This delivered greater resiliency if one machine turned off, more security and a transition of responsibility – as the maintenance and replacement of these servers was now the primary job of whoever was housing the machines.
The evolution of these local data centers was the introduction of virtual machines (VM). Each VM would have its own operating system and software but would share hardware with other VMs. So, for example, instead of one physical machine running one particular program, you could get five VMs, running five programs on the same physical machine. This enables processing power to be distributed more effectively, so any program can be installed and spun up in seconds.
Cloud computing took these VMs to the next level, removing any view of the hardware and introducing infrastructure as a service.
Cloud Computing Helps Us Scale
We use the cloud to enable us to scale in any way we want. The possibilities are endless.
Where 20 years ago we were restricted by the number of machines we had available, their processing power, location; today, all we have to think about is how we work with the data. The VMs we use are all managed for us by our cloud provider.
From a price perspective, instead of assuming the capital expenditure associated with buying new hardware every time you hit that performance ceiling, you can adopt an OpEx model and just pay for what you use. We can run infrastructure on a shoestring and still be really performant.
The introduction of cloud marketplaces means we also have lots of different apps to plug into. For example, we use Azure Cosmos DB – a fully managed NoSQL database, to store documents how we want, without the hassle.
With the cloud provider shouldering ancillary services, we can direct our attention to what matters most to us – maintaining and improving our core mathematical engine.
Letting Our Developers Take the Lead
In everything we develop, we want to always stay true to our unique selling point – we have built an exceptional mathematical model. We have something that meets our needs, and then some; all we want to do now is accelerate, accelerate, accelerate. Therefore, the question we ask our developers is, how we can take this powerful engine and rapidly move it to the cloud?
This requires a lot of thinking and testing. How will thousands of customers working simultaneously impact cost? Will latency be affected and to what degree? How do we maintain security when using distributed computing resources?
All of these questions offer a really exciting challenge to our team. We don’t want them to think of limitations, we want them to always think big.
To support this, we give all our developers ownership to make important decisions. We want to hear everyone’s ideas, to trust them to make the right choice based on our collective vision and to take pride in the work they do.
We are constantly working to improve and change things and our developers are essential to that process of evolution.
Are you looking to take ownership and lead with trust? Are you excited by the prospect of unlimited scale? Get in touch to see if there is an opportunity for you.
Ready to explore more?
Speak with us to see how Walr can work for you.