Programming languages

We work with many programming languages, ranging from low-level languages as machine and assembly languages for different architecture to high-level languages like Python. We also work with different language paradigms, including functional languages like Haskell and Scheme and languages for a specific purpose, like GNU Octave, for numerical computations. Other languages we work with include C, C++, POSIX Shell, GNU Bash, GNU Make and Perl.

From Embedded Devices to Large Machines

We work with many kind of devices, from the smallest to the biggest. All of them have very different resources and purposes. We work with devices ranging from 8-bit micro-controllers with sub-KiB memory capacity to 64-bit mainframes with super TiB memory capacity. The diverse number of architectures we work with include x86 and AMD64 family devices, ARM, Power, SPARC and others. We also work with Coldfire, Blackfin, AVR, MSP430, HC12, HC08, PIC and many others.

Buses for the masses

We work with many different buses and networks, including industrial buses like RS232, RS485, CAN or ethernet, using ModBus or CANOpen protocols. In embedded computers or mobile devices, we have experience in I2C, SPI, PCI and USB.

System Software and Operating Systems

We produce and work with system software like the Linux kernel, which include support for many different architectures, multitask, virtual memory, journaled filesystems, and a diverse range of network protocols, hardware buses and device drivers. We also produce specific system software, like simple task one device controller, sometimes from scratch, sometimes with system libraries. Between those extremes, we provide solutions based on eCos and NuttX.

Linux

We contribute to the Linux kernel, with an expertise in device drivers. We also have experience with filesystems and network protocols. Bugfixes, maintenance, testing, compliance and new features are all within your grasp working with us.