Francisco Tortosa, Developer in Valencia, Spain
Francisco is available for hire
Hire Francisco

Francisco Tortosa

Verified Expert  in Engineering

Embedded Software Developer

Location
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

Sensovant S.L.
C++, Modbus Protocol, wxWidgets, RS485, Raspberry Pi, Nordic nRF52, C#, C++11
Udemy
Arduino, PSoC 4, KiCad, STM32F0
Freelance Work
C#, MySQL, MariaDB, Python

Experience

Availability

Part-time

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)

2020 - PRESENT
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.
Technologies: C++, Modbus Protocol, wxWidgets, RS485, Raspberry Pi, Nordic nRF52, C#, C++11

Trainer

2017 - PRESENT
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.
Technologies: Arduino, PSoC 4, KiCad, STM32F0

Senior Developer (C# & MySQL)

2008 - PRESENT
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).
Technologies: C#, MySQL, MariaDB, Python

Senior Embedded Developer (Software, Hardware, and Firmware)

2000 - PRESENT
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++.
Technologies: Cortex-M Microcontrollers, C#, Win32, C++, C, Altium Designer (PCAD)

C++ Developer

2021 - 2022
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.
Technologies: C++14, Databricks, ODBC, Spark, GitLab, Jira, Test-driven Development (TDD), Regression Testing

R&D Electronics Team Leader and Principal Developer

2018 - 2020
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.
Technologies: STM32, Altium Designer (PCAD), KiCad, Modbus Protocol, CAN Bus, Renesas MCUs

Senior Automotive Application Engineer

2015 - 2018
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.
Technologies: Altium Designer (PCAD), JTAG, Software Development

Senior Automotive Application Engineer

2013 - 2015
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.
Technologies: Altium Designer (PCAD), JTAG, Cortex-R4 Processor, Cortex-R5 Processor, C, Assembly

Automotive Application Engineer

2011 - 2013
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.
Technologies: Altium Designer (PCAD), JTAG, Cortex-R4 Processor, Cortex-R5 Processor, C, Assembly

Automation Software Developer

1997 - 2000
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.
Technologies: Win32, C++, Siemens PLC

SimuUNO

SimuUNO is a simulator for Arduino UNO, a microcontroller board based on the ATmega328P (datasheet).

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.

Languages

C++, Assembly, C, SQL, Embedded C++, C#, C++14, C++11, Python, TypeScript, JavaScript, Java, Go

Libraries/APIs

wxWidgets, STM32Cube, ODBC

Tools

Altium Designer (PCAD), Visual Studio, IAR Embedded Workbench, KiCad, Jetson TX2, GitLab, Jira

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

Other

Electronics, Modbus Protocol, RS485, PSoC 4, STM32F0, Cortex-M Microcontrollers, Intel MCS-51 (8051), Embedded Systems, ARM Embedded, JTAG, Software Development, Cortex-R4 Processor, Cortex-R5 Processor, FreeRTOS, Bison, Source Code Parsing, Compilers, Algorithms, Architecture, ROS2, CAN Bus, Nordic nRF52, Renesas MCUs, dsPIC, Industrial Networks, Siemens PLC, Robot Operating System (ROS), Touchscreens, Regression Testing

Frameworks

Flex, Spark

1989 - 1994

Master's Degree in Telecommunications Engineering

Polytechnic University of Madrid - Madrid, Spain

APRIL 2007 - PRESENT

First Place in the Ramtron European VRS8051 Programming Contest

Ramtron, Inc.

SEPTEMBER 2005 - PRESENT

Fourth Place in the Microchip Worldwide dsPIC Programming Contest

Microchip Technology, Inc.

OCTOBER 2003 - OCTOBER 2005

Associate Professor

Polytechnic University of Cartagena

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