Menu

Embedded software development

Firmware for microcontrollers, from bare metal to RTOS.

  • Arm Cortex-M firmware on NXP S32K and STM32
  • Bare-metal development and FreeRTOS-based applications
  • Drivers for GPIO, ADC and PWM, plus interrupts, timing and memory access
  • Communication interfaces: CAN, LIN, SPI, MQTT
  • Embedded Linux, Arduino and Raspberry Pi and more

Hardware-level debugging

Finding faults where software meets electronics.

  • Analysis at MCU level: registers, memory, timing
  • Signal-level measurement with a logic analyzer (Saleae)
  • JTAG and SWD debugging, Renesas toolchains
  • Board bring-up and tracking down intermittent faults

Software architecture

Structure and documentation for systems that have to grow.

  • UML-based modelling with SRS, SAD and SDD documentation
  • Technical decision-making and system decomposition
  • Interface definition, variant and configuration management
  • Sparx Systems Enterprise Architect, IBM DOORS

Automotive standards and process

Development that holds up in a regulated environment.

  • ISO 26262 functional safety
  • Automotive SPICE
  • ISO/SAE 21434 cybersecurity, including TARA
  • Vector CANoe, Vector DaVinci, Vector CANdb++

Machine learning and computer vision

Models that run close to the sensor.

  • Machine learning and deep learning
  • Chatbot development, like WhatsApp
  • Computer vision with OpenCV
  • Prototyping and evaluation in Python and MATLAB

Applications and tooling

The interfaces and utilities built around the hardware.

  • Desktop and GUI applications in Qt, C# and Unity
  • Web front ends with JavaScript, PHP, HTML5, CSS3, ThreeJS and Vite
  • Data storage with MySQL, SQLite or MariaDB
  • Automation scripting

CI/CD and development infrastructure

Builds and releases that run the same way every time.

  • Git workflows and Jenkins build and test pipelines
  • Issue tracking and requirements traceability in JIRA and global JIRA

Tools and languages

  • C
  • C++
  • C#
  • Python
  • JavaScript
  • PHP
  • UML
  • ThreeJS
  • Vite
  • FreeRTOS
  • Embedded Linux
  • CAN
  • LIN
  • MQTT
  • MySQL
  • SQLite
  • MariaDB
  • MATLAB
  • Visual Studio
  • VS Code
  • Code::Blocks
  • Qt
  • STM32CubeIDE
  • IAR Embedded Workbench
  • Unity
  • Git
  • Sparx Systems Enterprise Architect
  • Tensorflow
  • Tensorflow
  • NumPy
  • Pandas