Ok, so there you have it, a very simplistic high level view of the system I am working on at ICAN. But there is much more to it…
As a backend developer I spend most of my time and effort on improving database performance and extending server functionality. The server is like a boss of the whole structure, other components are organised around it and obey its rules. It dictates how the data flow through the system and who is given the access to a specific information. There are multiple security layers in every component and I make sure that each technology used is up to date, so that all data is safe.
The system was made with scalability in mind and it is maintained in the same fashion. As a startup, we are always ready for rapid growth and big bursts of new users, so is our technology. The whole product is hosted in the Amazon’s cloud (AWS), which is very elastic. What it means is that Amazon provides a virtualised infrastructure which we use to deploy our services and whenever there is a need for more data storage or computational power, it is just a matter of several clicks to increase the capacity of the resources.
Targeting international users, the service has to be available across the world and allow for a fast connection from different locations. It is not trivial. What might be surprising is the fact that responsiveness of a machine which is far away, say on the other part of the globe, is limited by a speed of light. As you might guess, we cannot beat that, but there are ways to go around it and to give users a great real-time experience.
I cannot stress enough the ‘developer’ bit of being a backend developer at ICAN. It is far from just maintaining the finished product. It is about coming up with innovative ideas, supporting other members of the team and at the end of the day making the product ever better.