Francisco Tortosa
Verified Expert in Engineering
Embedded Software Developer
Valencia, Spain
Toptal member since March 1, 2021
Francisco is a tech enthusiast and developer with 20+ years of experience in embedded software, hardware design, firmware, and software in general. His expertise includes a range of languages (C++, Assembly, and C), tools (Altium Designer), and libraries/APIs (wxWidgets, STM32Cube). He’s developed microcontroller units for the industrial and automotive fields. Francisco also has delivered several projects as a freelance developer and knows how to work effectively within an international team.
Portfolio
Experience
- C++ - 20 years
- C - 20 years
- SQL - 18 years
- MySQL - 18 years
- C# - 12 years
- Arduino - 6 years
- Raspberry Pi - 2 years
Availability
Preferred Environment
Windows, Raspberry Pi, wxWidgets, C++, C#, Assembly, C, Visual Studio, IAR Embedded Workbench, STM32Cube
The most amazing...
...thing was building a micro ladder (a real PLC) for C8051 and CortexM3/M7 microcontrollers and SimuUNO (a simulator based on ELF files for AVR MCUs).
Work Experience
Senior Embedded Developer (Software, Hardware, Firmware)
Sensovant 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.
Trainer
Udemy
- 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.
Senior Developer (C# & MySQL)
Freelance 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).
Senior Embedded Developer (Software, Hardware, and Firmware)
Freelance 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++.
C++ Developer
Alteryx
- 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.
R&D Electronics Team Leader and Principal Developer
Power Electronics
- Developed C# applications for testing CAN bus and Modbus-TCP/RTU electronic devices.
- Designed hardware products (using KiCad) based on Renesas/STM32 MCU, Modbus, and CAN bus protocols.
- Led a team of developers (firmware and hardware) on projects which included training them in new skills and delivering new products on time.
Senior Automotive Application Engineer
Cypress 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.
Senior Automotive Application Engineer
Spansion 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.
Automotive Application Engineer
Fujitsu 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.
Automation Software Developer
Garcí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.
Experience
SimuUNO
Tasks Accomplished:
• Built the entire project, SimuUNO.
• Developed the ELF file parser.
• Simulated the assembly instructions of the ATmega328.
• Programmed the graphical interface using wxWidgets/C++ for Windows.
Education
Master's Degree in Telecommunications Engineering
Polytechnic University of Madrid - Madrid, Spain
Certifications
First Place in the Ramtron European VRS8051 Programming Contest
Ramtron, Inc.
Fourth Place in the Microchip Worldwide dsPIC Programming Contest
Microchip Technology, Inc.
Associate Professor
Polytechnic University of Cartagena
Skills
Libraries/APIs
wxWidgets, STM32Cube, ODBC
Tools
Altium Designer (PCAD), Visual Studio, IAR Embedded Workbench, KiCad, Siemens PLC, Jetson TX2, GitLab, Jira
Languages
C++, Assembly, C, SQL, Embedded C++, C#, C++14, C++11, Python, TypeScript, JavaScript, Java, Go
Paradigms
Windows App Development, Compiler Design, Unit Testing, Test-driven Development (TDD)
Platforms
STM32, Arduino, Win32, Windows, Embedded Linux, Raspberry Pi, Linux, Unix, Databricks
Storage
MySQL, MariaDB, Databases
Frameworks
Flex, Spark
Other
Electronics, Modbus Protocol, RS485, PSoC 4, STM32F0, Cortex-M Microcontrollers, Intel MCS-51 (8051), Embedded Systems, ARM Embedded, JTAG, Software Development, Arm Cortex-R4, Arm Cortex-R5, FreeRTOS, Bison, Source Code Parsing, Compilers, Algorithms, Architecture, ROS2, CAN Bus, Nordic nRF52, Renesas MCUs, dsPIC, Industrial Networks, Robot Operating System (ROS), Touchscreens, Regression Testing
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring