This section aims at describing and justifying our choices of languages, tools, design concepts and in general, our way to do.
This choices are influenced by past experiences and opportunities, ease of access or in some cases, fortune.
Our main business line is the assistance in digitalization processes of companies, both in the commercial and the industrial sectors.
Development of custom solutions, web and mobile applications are to be considered as assistances in the whole digitalization process.
Our actual choice for frontend development is Flutter. There’s a big advantage in having one codebase for several target platforms without the overhead of having an entire web platform as an intermediate layer of compatibility (sorry, React Native).
Flutter is tailored to produce responsive interfaces and there is a concise layout mechanism that is easy to grasp and maintain. State management is clear and enforces a good separation of concerns. The sound type system simplify laying out stable code and prevent run time errors.
When reliability and availability are paramount, a highly decoupled, fault-tolerant system is needed. Erlang BEAM virtual machine is the solidest of choices. Elixir permit to target the BEAM without any overhead and using the whole OTP functionality.
Elixir applications are designed to take advantage of multiple nodes, multiple processors for parallel execution, with a clean supervision to ensure uptime even during hardware and network failures. Complex configurations are easy to build and manage with Elixir.
TensorFlow is the de-facto choice for the most common machine learning solutions.
There is a broad selection of applications that could be easily solved using TensorFlow, even in browser based web applications.