Desktop software development
We carefully develop custom software for desktop applications in a wide variety of sectors, including industrial diagnostic systems, consumer products and scientific research.
Some of the desktop software development services we offer:
We use the most suitable technologies to achieve the goals of a project, such as Qt Framework, Linux, Python, Go and React.
Multiplatform GUI development
We develop complex user interfaces based on the Qt toolkit, using C++ or Python (or both) as appropriate. We are able to manage software portability problems between Linux, Windows and Mac OSX systems. We can also address 3D visualisations through OpenGL, virtual environments with Openscenegraph, and cartographic applications, also through Openstreetmap.
- Average project size: 3-12 man-months
- Programming languages: C++, Python
- Libraries: Qt, OpenGL, Openscenegraph, Openstreetmap
- OS: Linux, Windows, Mac
GPU optimisation with CUDA and OpenCL
We carry out existing algorithm porting for the intensive use of parallel computing on GPUs, using the CUDA libraries of Nvidia or OpenCL. Not all algorithms are able to benefit from GPU acceleration which to be exploited to the maximum require high parallelism and very low memory usage; if your algorithm does not fit the GPU immediately, we can suggest and implement solutions based on alternative algorithms. Trusting us will mean that you don’t waste time on roads that do not lead to the expected results.
- Average project size: 1-2 months
- Programming languages: C, C++
- Libraries: CUDA, OpenCL
- OS: Linux, Windows
Network software optimisation for bandwidth or latency
We carefully analyse the performance of network software with stringent bandwidth and/or latency requirements, and implement refactoring that is able to bring important benefits with respect to the necessary targets. We have expertise in analysing problems related to improper use of the core loop architecture (threading or reactive), in the use of memory (superfluous buffer copies), or in the system APIs used to interface with the kernel. With targeted interventions, we can significantly improve performance and indicate any other areas of intervention.
- Average project size: 1-3 months
- Programming languages: C, C++
- Libraries: pthread, libev, libuv, socket
- OS: Linux, Windows