Senior Embedded Developer (Software, Hardware, Firmware)
2020 - PRESENTSensovant S.L.- Developed a graphics application for Raspberry Pi (wxWidgets) that monitors air quality by communicating over Modbus-RTU with an E+E CO2 sensor network.
- Built a printed circuit board (using KiCad) for a CO2 sensor using nRF52832 and BLE (Bluetooth Low Energy).
- Created the firmware for nRF52832 MCU BLE to communicate via SPI with an E+E sensing element.
Technologies: C++, Modbus Protocol, SPI, wxWidgets, RS485, Raspberry Pi, Nordic nRF52, C#, C++11Trainer
2017 - PRESENTUdemy- Developed courses on DIY technologies for both hardware and firmware.
- Tracked the evolution of students' skills and resolved doubts and questions.
- Recorded visual material and developed software and hardware projects for the courses.
Technologies: Arduino, PSoC 4, KiCad, STM32F0Senior Developer (C# & MySQL)
2008 - PRESENTFreelance Work- Developed three applications for a company to account for and manage wine traceability, invoices, shipping, and delivery notes.
- Programmed queries for MySQL using WinForms (C#) as the front end.
- Imported and exported data from and to public body controllers (XML).
Technologies: C#, MySQL, MariaDB, PythonSenior Embedded Developer (Software, Hardware, and Firmware)
2000 - PRESENTFreelance Work- Built SimuUNO (a simulator for Arduino UNO) and an ELF file parser, simulated the ATmega328 assembly instructions set, and programmed the graphical interface using wxWidgets/C++ for Windows; the prototypes were built in Electron (JavaScript, TypeScript).
- Developed a USB-to-Canbus converter device based on Silabs C8051F320 MCU (hardware and firmware) and a C# GUI (software) to show communication on the Canbus network; used Altium designer for the hardware design.
- Created low-power devices based on Silabs C8051F930 (hardware and firmware); used Altium Designer for the hardware design.
- Developed radio-frequency (433 MHz, 2.4GHz) devices based on C8051F930 (hardware, firmware); used Altium Designer for the hardware design.
- Constructed the hardware and firmware for electronic devices based on Telit GPRS and GSM modules; used Altium Designer for the hardware design.
- Developed the Microladder system (programmable logic controller), the GUI on Win32/C++, and firmware for PIC MCU (assembly language) and Cortex-M3/M7 (C). Designed several PCB boards and used Eagle and Altium Designer for the hardware design.
- Built a TCP/Canbus converter on a Raspberry Pi using C++; developed a clone of Basic Stamp using Flex/Bison in C++.
- Created the hardware and firmware for a Canbus hub based on STM32F7 and MCP2515 connecting five Canbus networks; used KiCad for the hardware design.
- Built the hardware and firmware for the devices for a medicinal gas Canbus network, analog, digital I/O, RTC, and SPI I/O expanders; used Altium Designer for PCB.
- Developed the SCADA software (C#), SVG graphics, and Canbus; parsed the parameters using Bison/Flex/C++.
Technologies: Cortex-M, C#, Win32, C++, C, Altium DesignerC++ Developer
2021 - 2022Alteryx- Fixed bugs on data connectors, mainly Open Database Connectivity (ODBC) and Oracle Cloud Infrastructure (OCI).
- Created regression tests on ODBC and bulk loaders on GitLab.
- Developed new features with Databricks Bulk Loader.
Technologies: C++14, Databricks, ODBC, Spark, GitLab, Jira, Test-driven Development (TDD), Regression TestingR&D Electronics Team Leader and Principal Developer
2018 - 2020Power Electronics- Developed C# applications for testing Canbus and Modbus-TCP/RTU electronic devices.
- Designed hardware products (using KiCad) based on Renesas/STM32 MCU, Modbus, and Canbus protocols.
- Led a team of developers (firmware and hardware) on projects which included training them in new skills and delivering new products on time.
Technologies: STM32, Altium Designer, KiCad, Modbus Protocol, Canbus Protocol, Renesas MCUSenior Automotive Application Engineer
2015 - 2018Cypress Semiconductor- Developed software samples for Cypress Cortex-M0/M4/M7 MCUs.
- Held on-site training for customers in the USA, India, Romania, France, and Germany.
- Supported customers on automotive applications regarding MCU low-level software implementations.
- Tested MCAL drivers for Canbus and low-level peripherals.
- Developed and tested software samples for PSoC 4 and PSoC 6.
- Tested and supported third-party debugging tools for the automotive Cypress MCU.
Technologies: Altium Designer, JTAG, Software DevelopmentSenior Automotive Application Engineer
2013 - 2015Spansion International, Inc. (Germany)- Designed hardware starter kits (using Altium Designer) for Spansion Cortex-R4/R5 and FR-81 MCU and software samples.
- Trained customers on Spansion MCU, CPU, peripherals, and low-level programming.
- Supported customers on automotive applications regarding MCU low-level software implementations.
- Developed graphics firmware applications for Spansion Cortex-R4 MCU for fair demonstrators (Embedded World in Nürnberg); used the low-level graphics features of the IRIS graphics machine.
Technologies: Altium Designer, JTAG, Cortex-R4, Cortex-R5, C, Assembly, FR-81 MCUAutomotive Application Engineer
2011 - 2013Fujitsu Semiconductor GmbH (Germany)- Designed the hardware starter kits (using Altium Designer) for Fujitsu Cortex-R4/R5 and FR-81 MCU and software samples.
- Trained customers on Fujitsu MCU, CPU, peripherals, and low-level programming.
- Supported customers on automotive applications regarding MCU low-level software implementations.
Technologies: Altium Designer, JTAG, Cortex-R4, Cortex-R5, C, Assembly, FR-81 MCUAutomation Software Developer
1997 - 2000García Carrión- Automated industrial processes (liquid dosing with load cells, liquid movement, recipe management, and so on) for the food and chemical industry using Siemens (with buses as Profibus and AS-Interface) and Omron PLCs as well as SCADA programming.
- Programmed a GUI based on C++ using Win32 and Visual Studio.
- Commissioned and troubleshot new automation solutions.
Technologies: Win32, C++, Siemens PLC