Francisco Tortosa, Developer in Valencia, Spain

Francisco Tortosa

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.

Francisco is available for hire
Hire Francisco

Portfolio

Sensovant S.L.
C++, Modbus Protocol, Serial Peripheral Interface (SPI), wxWidgets, RS485...
Udemy
Arduino, PSoC 4, KiCad, STM32F0
Freelance Work
C#, MySQL, MariaDB, Python

Location

Valencia, Spain

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

2020 - PRESENT

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.
Technologies: C++, Modbus Protocol, Serial Peripheral Interface (SPI), wxWidgets, RS485, Raspberry Pi, Nordic nRF52, C#, C++11
2017 - PRESENT

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

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

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

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

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

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

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

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

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

Experience

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.

Skills

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

Education

1989 - 1994

Master's Degree in Telecommunications Engineering

Polytechnic University of Madrid - Madrid, Spain

Certifications

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