Software/Code Should be Platform Agnostic

Lakebed(.io) is built to be a server application any IT system administrator can install on any server. It’s platform agnostic much the same way WordPress is platform agnostic. This is necessary for Lakebed because one of our competitive advantages is that customers truly own their own data and can have direct database access if they wish.

The process of building Lakebed has been a great learning experience. What I’ve learned is that while building platform agnostic code takes a bit longer and is a bit more complex, it’s worth it.

I thought of an example the other day. Let’s say, for example, you’re Zoom; the video meeting platform that’s taken off during the pandemic. They’ve had a few issues as a result of this explosive growth, the two biggest being:

  1. Security concerns around physical server locations.
  2. Uptime and reliability around number of users.

Those two issues are related and can be solved by platform agnostic code. With platform agnostic code it becomes really easy to spin up a new server, register a new URL, and now you have a second copy of your app to distribute the load. Similarly, if there’re concerns about a server being in the US, in China, or anywhere else it’s easy to spin up a new server in the location of your choice and direct specific traffic to that server.

So, I see all medical professionals in British Columbia are not using Zoom, which I suspect is because the data must remain on a server in BC. If Zoom had platform agnostic code they could have easily approached the BC medical system and offered to deploy a local app on a server owned by the BC medical system. Platform agnostic code can win new customers and adapt to new requirements.

Because of the lessons I’ve learned and the value I see, I now try to write all code as platform agnostic.

What is platform agnostic code? As a simple example, when the logo is included in the Lakebed app I could hard-code ‘https://lakebed.io/favicon.ico’ or I can point to ‘//favicon.ico‘. The latter is platform agnostic and will always work so long as the favicon.ico file exists on the same server Lakebed is on. If I register https://australia.lakebed.io and install the app there it continues to work, the same with china.lakebed.io. In any software there is many ‘internal pointers’ within the code and those internal pointers can be dynamic or in a settings file or can be hard-coded.

Closing out, I’d suggest this might be something for software buyers and CTO’s to consider in software decisions.

Leave a Reply

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