Technology

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.

FRONTEND

User interfaces and every user facing component. Priority is given to usability, simplicity and beauty.

BACKEND

API services, microservices, workers, native drivers, IoT controllers, databases and data handling procedures.

MACHINE LEARNING

Supervised and unsupervised learning, artificial vision, natural language processing.

MULTIMEDIA

Digital Video and Audio production, 3D modeling, gamification processes. Our focus is to assist in digitalization processes.

MORE SERVICES

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.

FRONTEND

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.

BACKEND

Our actual choice is based on a combination of performance and flexibility. Vert.x framework combined with Oracle’s GraalVM allowed to use either Java, Kotlin or Javascript in order to produce bytecode for the java virtual machine. The result: faster responses than any Node.js based solution.

In fact, on real situations, the speed is comparable to C/C++ and Golang based solutions but with the added benefit of having a larger pool of Javascript programmers available. Programmers with a good C/C++ grasp are difficult to find nowadays and Golang expertise is expensive. 

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.

MACHINE LEARNING

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.