Francisco Tortosa, Embedded Software Developer in Valencia, Spain
Francisco Tortosa

Embedded Software Developer in Valencia, Spain

Member since January 18, 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 now available for hire

Portfolio

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

Experience

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).

Employment

  • 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, SPI, 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, C#, Win32, C++, C, Altium Designer
  • 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 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 MCU
  • 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, 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, JTAG, Cortex-R4, Cortex-R5, C, Assembly, FR-81 MCU
  • 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, JTAG, Cortex-R4, Cortex-R5, C, Assembly, FR-81 MCU
  • 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

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, 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, Canbus Protocol, PSoC 4, STM32F0, FR-81 MCU, Cortex-M, Intel MCS-51 (8051), Embedded Systems, ARM Embedded, JTAG, Software Development, Cortex-R4, Cortex-R5, FreeRTOS, Bison, Source Code Parsing, Compilers, Algorithms, Architecture, ROS, ROS2, CAN Bus, Nordic nRF52, Renesas MCU, dsPIC, Industrial Networks, Siemens PLC, Robot Operating System (ROS), Touchscreens, Regression Testing
  • Frameworks

    Flex, Spark

Education

  • Master's Degree in Telecommunications Engineering
    1989 - 1994
    Polytechnic University of Madrid - Madrid, Spain

Certifications

  • First Place in the Ramtron European VRS8051 Programming Contest
    APRIL 2007 - PRESENT
    Ramtron, Inc.
  • Fourth Place in the Microchip Worldwide dsPIC Programming Contest
    SEPTEMBER 2005 - PRESENT
    Microchip Technology, Inc.
  • Associate Professor
    OCTOBER 2003 - OCTOBER 2005
    Polytechnic University of Cartagena

To view more profiles

Join Toptal
Share it with others