software-architecture

Our Co-Founder and Chief Product Officer, Filip Eldic, shares a peek into his role and what it takes to build a resilient software architecture.

 

As Chief Product Officer at Bluedot, my job is to innovate. And what I enjoy most is getting to dream. I get to ask “what if?” and imagine perceived realities where technology can function the way I want.

 

Compromising between imagination and reality

I often find my creativity miles ahead of what’s possible to actually build. Sometimes the impossibility comes from real physical problems – such as Urban Canyoning (that annoying behaviour when your GPS “throws” you onto another street as you enter a built-up urban area). Sometimes it comes from the diversity in mobile devices that behave differently from manufacturer to manufacturer and model to model.

 

Other times difficulty comes purely from the hardware on the phone such as faulty Wi-Fi or GPS chipsets, but most often issues arise from changes in the Operating Systems of mobile phones, where on occasion, an operating system simply will not comply when our software requests an update on the location of the device.

 

With average location data technologies, the impact of this unpredictability can be minimal since the use cases do not require extreme reliability. For example, if a native location technology is used to deliver a coupon to customers within 330 feet (100 meters) of a shopping center with a success rate of 60%, this might be an acceptable result for most people.

 

Pushing the limits of what’s possible

At Bluedot, however, we must push our technology to the limits because the use cases we power reach the edge of what’s possible. For one of our clients, Transurban, our technology powers location-based payments on toll roads with cars traveling at highway speeds, requiring extreme accuracy and reliability. In this instance, achieving a 60% success rate would be a disaster since missing 40% of all toll payments is a terrible customer experience and a substanial business loss. My job is to make our technology function reliably in such extreme circumstances – on all devices, anywhere in the world. 

 

bluedot-transurban

 

In order to do that, two things are critical. The first is building an absolutely crack team of the most talented and forward-thinking individuals we could squeeze into a tech room. I am often blown away and humbled at the work our team has executed along with the intuition and innovation they show on a daily basis.

 

The second essential component is a flexible software architecture. Without this, we would fail. I think of our architecture as a middle ground between innovation and reality – holding the tension of what we want to build and the restraints we face. This approach to software doesn’t demand the technology work the exact same way every single time. Instead, it’s built to cope with changing circumstances while still functioning well. Software architecture has to be reliable AND resilient to be useable.

 

So how do we account for this in our architecture? The key is flexibility and focusing on the bigger picture. We understand some devices (running our technology) will be slow in reacting and sharing the location of the device when we need it – something that becomes very problematic when traveling at high speeds. We understand some devices will be less accurate than others, so we account for this variability.

 

The secret to our success is avoiding a common approach to software architecture – following the lowest common denominator. We don’t “dumb down” our technology to work for the worst performing operating system or device. Rather, we focus on the strengths and potential of each device with fall back provisions for every other device that does not perform well.

 

If we know a particular operating system delivers superior accuracy, our architecture enables us to pick up which operating system is in question and adjusts the behaviour of our technology to harness the maximum accuracy available on that platform. Similarly, our architecture enables us to weed out errors in estimating the location of devices and correct the errors that come only from poorly performing models.

 

Testing and building for resilience

Our technology is supremely flexible. All of this work has to be underpinned by knowledge and data. We test with a pool of hundreds of mobile devices across every possible variety of device. We test in every possible scenario of human behavior we can imagine, from largely stationary devices to those moving at great speed and frequency, throughout day and night, in every possible geography.

 

We also built an extensive, automated testing system that lets us test on hundreds of devices across prebuilt scenarios and review after each round of testing and each version build. This valuable data enables us to adjust our architecture between releases to ensure we get the best possible performance from our technology.

 

location testing automation

 

As CPO, my role is often balancing the possible with the probable. It’s never easy. The software architecture we design always balances ambition and reality. Our team constantly strives to imbue the philosophy of flexibility and resilience within our product. This ensures our technology stays on the cutting edge and works in the hardest of circumstances.

 

See for yourself

Want to harness the power of accurate location insights and see what our technology can do for you?  Request a demo today. 

 

Filip Eldric, Chief Product Officer, Bluedot

 

Author

Filip Eldic, Co-founder and Chief Product Officer

Facebooktwittergoogle_pluslinkedinmail

Leave a Reply

Your email address will not be published. Required fields are marked *