Derek Casamenti, Developer in Imola, Italy
Derek is available for hire
Hire Derek

Derek Casamenti

Verified Expert  in Engineering

Software Developer

Location
Imola, Italy
Toptal Member Since
November 14, 2022

Derek is an embedded software architect experienced in every step of the development process, from back-of-the-envelope designs to finished products. He is an expert in C++, mainly when applied to highly concurrent real-time systems. As a technical lead of the embedded software team at IK Multimedia, Derek was instrumental in developing the digital architecture and many major hardware products' software.

Portfolio

IK Multimedia
C, C++, Firmware, Digital Signal Processing, Machine Learning, Embedded Systems...
T3LAB
C, Embedded Systems, Firmware, PROFINET, Real-time Operating System (RTOS)...
MICREL Lab University of Bologna
Bluetooth LE, Microcontrollers, Statistical Signal Processing, Sensor Fusion...

Experience

Availability

Part-time

Preferred Environment

MacOS, Visual Studio Code (VS Code), C++, CMake, LLVM, Git

The most amazing...

...thing I've developed is a digital guitar pedal that uses a neural network to model the behavior of real amplifiers.

Work Experience

Team Lead and Senior Firmware Engineer

2015 - 2022
IK Multimedia
  • Led the development and implementation of all aspects of the digital architecture and embedded software of many major hardware projects.
  • Modernized software development practices, moving all firmware development from C to modern C++ (C++20), and developed abstraction layers to reuse software components between different hardware platforms.
  • Implemented and maintained an internally developed operating system stack and its many subsystems.
  • Served as the version control system administrator for the whole hardware department.
Technologies: C, C++, Firmware, Digital Signal Processing, Machine Learning, Embedded Systems, Real-time Audio Processing, Bluetooth LE, Ultra-wideband (UWB), Real-time Operating System (RTOS), Microcontrollers, ARM, Git, STM32, NXP i.MX, Embedded Software

Embedded Hardware and Software Engineer

2014 - 2015
T3LAB
  • Integrated and tested a PROFINET protocol stack for a new family of Datalogic automation laser scanners.
  • Developed hardware and firmware for a digital drum machine and MIDI sequencer, working on prototypes and pre-production units.
  • Oversaw the initial development phase of an industrial research project on programming models for heterogeneous multi-core processing architectures with real-time constraints.
Technologies: C, Embedded Systems, Firmware, PROFINET, Real-time Operating System (RTOS), Microcontrollers, ARM, Ethernet, STM32, Embedded Software

Researcher

2012 - 2014
MICREL Lab University of Bologna
  • Developed a motion capture system that combines a body-area inertial sensor network with an RGB-D camera (Microsoft Kinect) for rehabilitation and human-computer interaction applications.
  • Explored the Bluetooth Low Energy protocol and its quality of operation at low power consumption in a data streaming context.
  • Built a Java application for data collection and visualization.
  • Performed data analysis and scientific programming on the data set using the Python scientific stack.
  • Applied Kalman filtering techniques for multi-sensor data fusion.
Technologies: Bluetooth LE, Microcontrollers, Statistical Signal Processing, Sensor Fusion, Inertial Measurement Unit (IMU), Java, Python, Machine Learning, STM32, Embedded Software

AmpliTube X-GEAR Pedals | IK Multimedia

https://www.ikmultimedia.com/products/xgear/
The project was about multi-effects digital guitar pedals. I performed technology scouting for a new family of processors and designed a dual-processor system on a module to support this and future product lines. I also ported all the firmware stack to a new family of processors. I evolved the operating system stack into what is currently used to develop all of the company's products. Implemented a pub/sub-based virtual bus to allow for distributed execution of parts of the system on multiple execution contexts (e.g., physical processors, host computer). I acted as a primary developer for device drivers, BSP layer, and storage subsystems and wrote all firmware in C++20.

In addition, I modernized the MIDI 1.0 parser and server and integrated a new USB device stack with audio class 2.0 capabilities. Collaborated with a developer on DSP integration, performance analysis, and optimization. Implemented the host software back-end used to communicate with the device.

Safe Spacer

A smart ultra-wideband (UWB) sensor network for distance tracking. Ideal for checking social distancing and safety applications. I acted as the principal author of a patent-pending measurement scheme to reduce the computational complexity and energy consumption required to measure the distance between sensor nodes that are part of a uniform network. As the principal architect for the whole sensor network, I implemented the proprietary radio protocol stack, the baseband firmware that controls the UWB radio, and the firmware engine for scheduling distance measurements. Also, I performed power analysis to optimize battery life and helped with the product certification process.

iLoud MTM | IK Multimedia

https://www.ikmultimedia.com/products/iloudmtm/
The project was about an active two-way studio monitor completely DSP-controlled with fully automatic integrated digital calibration via supplied measuring microphone. As the primary developer for device drivers, BSP layer, and application firmware, I designed the digital architecture of the product and wrote all firmware in C++17. Wrote a message-passing RTOS heavily influenced by the actor concurrency model, supporting both a cooperative and a preemptive run-to-completion kernel. Implemented low-overhead logging and tracing subsystems for real-time recording of kernel events. Collaborated with a developer on DSP integration, performance analysis, and optimization.

Real-time Audio on Embedded Linux

Internal research project to evaluate the use of real-time Linux to develop high-end audio products. I defined the roadmap and objectives of the project and selected the hardware platform. Also, I supervised the exploration of various kernel configurations, benchmarking, and application profiling.

iRig BlueBoard | IK Multimedia

https://www.ikmultimedia.com/products/irigblueboard/
Bluetooth Low Energy MIDI pedalboard for iOS and Mac allows you to control music apps and more from the floor. I had to re-engineer part of the electronics and all the application firmware using a new Bluetooth SoC due to the sudden obsolescence of the Bluetooth module used in the original product. The new firmware had to be backward compatible with all the existing software ecosystems. I completed the project quickly, avoiding a production gap and the consequent loss of money for the company. The new component allowed for a significant cut in the bills of material costs. Also, I reduced transmission latency and improved host compatibility compared to the original product.

iRig Keys I/O | IK Multimedia

https://www.ikmultimedia.com/products/irigkeysio/
The project was about universal keyboard controllers and an audio interface for iPhone, iPad, iPod touch, Mac, and PC. I fixed bugs and polished a new Apple MFi platform. As the primary developer for device drivers, BSP layer, and application firmware, I designed the digital architecture of the product and wrote the application in C++14. Also, I wrote a cooperative task scheduler based on protothreads. Implemented the USB audio MIDI interface and the multi-chip bootloader. Ported a Windows-only firmware updater to macOS. Operated with Apple to fix a macOS High Sierra USB audio stack bug.

iRig Acoustic Stage | IK Multimedia

https://www.ikmultimedia.com/products/irigacousticstage/
The project was about a compact acoustic microphone, advanced digital preamplifier, and processing unit that recreates a studio microphone set up for acoustic guitars. As the primary developer for device drivers, BSP layer, and application, I designed the digital architecture of the product. Conducted technology scouting for a new family of microcontrollers with DSP-like characteristics. I wrote all firmware in C and collaborated with a developer on DSP integration, performance analysis, and optimization. Implemented the asynchronous audio class 1.0 for the USB device stack, the USB bootloader, and the software for production testing and programming.

iRig BlueTurn | IK Multimedia

https://www.ikmultimedia.com/products/irigblueturn/
Backlit compact Bluetooth Low Energy page turner for iPhone, iPad, Mac, and Android. Conducted technology scouting for a new Bluetooth Low Energy SoC. I led circuit design, PCB layout, and firmware development. Involved in product certification, Bluetooth qualification process, and product testing.

Languages

C, C++, UML, Rust, Java, Python

Tools

Git, GNU Toolchain, CMake

Paradigms

Actor Model, Object-oriented Programming (OOP), Test-driven Development (TDD), Event-driven Programming

Platforms

Kernel Programming, STM32, Bluetooth LE, Embedded Linux, MacOS, Visual Studio Code (VS Code)

Other

Computer Architecture, Device Drivers, Task Scheduling, Firmware, Real-time Operating System (RTOS), Embedded Systems, Microcontrollers, Real-time Audio Processing, LLVM, Nordic nRF52, NXP i.MX, FreeRTOS, Embedded Software, Electronics, Computer Science, Digital Signal Processing, USB, Apple MFi, Ultra-wideband (UWB), Industrial Internet of Things (IIoT), System-on-Module (SOM), Wireless Sensor Networks, Hardware Design, ARM, Sensor Fusion, Inertial Measurement Unit (IMU), Mathematics, Physics, Microelectronics, PCB Design, Bootloaders, Device Firmware Updates (DFU), Firmware over the Air (FOTA), Wireless Protocols, Battery Management Systems, File Systems, Machine Learning, PROFINET, Statistical Signal Processing, Ethernet

2008 - 2012

Master's Degree in Electronic Engineering

University of Bologna - Bologna, Italy

2003 - 2007

Bachelor's Degree in Electronic Engineering

University of Bologna - Bologna, Italy

1998 - 2003

High School Diploma in Electronics and Telecommunications

Higher Education Institute Francesco Alberghetti - Imola, Italy

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring