The multitude of technologies in IT can be frightening. Each company has its own so-called technology stack - a collection of programming languages, frameworks, or other supporting technologies through which it is able to provide the software. In this blog post, we present our technology stack and answer whether we will be a technological match for each other.
Our main programming language is Python. Currently, it is one of the most popular programming languages. Why this particular one? Because it is commonly used by people creating ML solutions. Thanks to the fact that it is compatible with many ready-made modules, libraries and frameworks, we can more quickly and easily (and thus cheaper) create neural networks analyzing images or changes on the market. What is more, in the same language we can build any application, for example, a web application in which we share the results of our work.
Do we also write in other languages?
Yes, for example in C or C++, mainly when we develop software for embedded systems, in other words, devices such as microcomputers, or when we need to optimize the speed of our software. Does it mean that if my company software is written in another language we won't get along? Absolutely not! Most of our projects consisted of plugging our module into the client's application written in PHP, JavaScript, C#, or Java. We managed to do it without any pain thanks to microservices and docker. We wrote more about this in a separate article.
We use Keras, Tensorflow, and PyTorch libraries to create neural networks. These are the most popular AI solutions today, and there are many indications that they won't be dethroned for years to come. Behind them are the tech giants, Facebook and Google, who make sure to fix bugs and add new features. In most cases, it does not matter which of the libraries we use, we can certainly count on the same quality every time. The decision depends on the team that will implement the project.
We are particularly comfortable in the Linux environment and are familiar with open source solutions. Thanks to this we create efficient, safe and modern software. We are not dependent on licences and fees charged by competitive solutions, based for example on Microsoft technology.This not only results in the absence of such fees for customers using our software, but also a larger number of specialists who can improve the product developed by us independently in the future as well as a smaller chance of vendor lock-in.
We work in the cloud. So far in our projects we have had the opportunity to use public clouds such as AWS, GCP and DataBricks environment. Thanks to this we can use native cloud services offered by providers such as Google BigQuery or AWS S3 and also build IT systems that can be moved between different providers or run on our own servers.
To sum up - we work using well-known open source solutions and public clouds. We also create efficient machine learning systems working on embedded systems. Our main programming language is Python, and the operating system is Linux.