Earlier this year, I had the opportunity to give a short lecture in a co-working space in Prague. In my presentation, I decided to add a slide with a list of technologies that our developers use daily for work. I put the word out and asked them to send me the names of services, programming languages, and frameworks (development environments) which they use for work every single day.
I also found it to be useful: there are some that I’ve never come across and some that I only heard of. I personally have only worked with few services from this long list.
So, I will share several tools that we use to make our service:
This is the core of our service. It has two parts: a data storage server (we use the Google Firebase platform) and dedicated servers on Apache for data processing (like the one where the service admin panel is located).
We use SSL protocols for data security, but I believe a lot of people use them.
Hundreds and thousands of new code lines appear on the server every day. To keep our eyes on the ball, we installed special software on the servers that helps our big team of programmers to have up-to-date files at hand in order to make edits and improvements to the system.
This is where my knowledge ends because I have never come across this toolkit.
We use VPS servers for our admin panel; we actually have two of them for the administrative part: “production” with working files and “sandbox” – for debugging new functions. This distributed system helps you test your code before it hits production so you can check it out.
We also use regular hosting to store our “showcase” service on it: the main site with a description of the service, this blog, the Academy site, and the User Support Center. Such a system ensures that you will have access to reference information any time even if everything is down (but we believe this will never happen).
What I can tell here is that our mobile application is built in the ionic environment using Angular and Cordova. The application is written in Swift for both platforms at once: Android and Apple, which allows releasing updates almost simultaneously.
The mobile app is built in such a way that it works solely with Google servers that have a popular safety margin and fault tolerance. Lack of communication with Apache servers ensures reliable downloading of files. For instance, ten thousand participants of your forum can simultaneously query for a photo of a speaker or a file of his presentation and our service will easily handle this load.
According to our estimation, we can easily handle up to 100 thousand application users, i.e. participants of several events working with our service in one day. But there is one condition: in order to ensure a high level of service, we ask you to inform about the date of your event; this way we can plan the service load and be on the safe side (you need to specify the date of the event in the event settings, no other notifications needed).
This is the part of the work that is not about programming but has a direct impact on it. We create the initial design in Axure (it’s easy to create prototypes of new modules and extensions in this desktop application). But all its improvements such as appearance fixes are performed in Figma, which is a professional service for rendering the interfaces of websites and mobile applications.
This, perhaps, a brief list of tools that our programmers work with (or worked when I held my lecture in the co-working space).
Do we need to understand how all these programming languages and tools work? Most likely not. After all, for you and me it’s important that everything works as it should and doesn’t fail. Although sometimes curiosity gets in the way and makes you look “under the hood” to self-develop.
Next time I’ll tell you how we plan our work and set tasks.
One of the founders, Alexander 🙂