Vasco Cardoso Espinheira Rio
Verified Expert in Engineering
Software Developer
Porto, Portugal
Toptal member since March 3, 2022
Vasco is a senior embedded software developer with over a decade of experience building reliable products for companies like Synopsys and Tridonic. He specialized in C, C++, Python, and embedded Linux but would also love to work in state-of-the-art products with technologies such as Rust.
Portfolio
Experience
Availability
Preferred Environment
Linux, Visual Studio Code (VS Code), Slack, Jira, GitLab, Teams, Embedded Systems, Artificial Intelligence (AI), Rust
The most amazing...
...product I've developed from scratch is a fleet device controller for Ecoltra that allows users to book scooters and start them with the mobile phone.
Work Experience
Lead Embedded Systems Developer
Toyota Forklift
- Developed an integrated development setup that drastically reduced build time (20x) and allowed running system tests locally and in the pipeline.
- Created an automated release process built on top of Yocto with versioning, changelogs, release notes, and Azure DevOps reports.
- Created a firmware flash tool that changed a 12-minute flash time to less than 30 seconds.
- Implemented an application capable of monitoring system runtime resources and tracking application resource evolution during the product's lifetime.
Team Lead and Senior Software Developer
Tridonic
- Developed an emergency lighting management system, nBox, that runs 24/7 on multiple clients and is becoming one of the company's most relevant products.
- Organized the embedded software team processes and flows, serving the company as the base example of managing other teams.
- Designed an MQTT-based solution to integrate up to 100x nBox sharing emergency controls and luminaires between them, allowing the product to scale to huge buildings such as airports and stadiums.
- Implemented a WebSockets-based API with support for publishing, subscribing, authentication, and more, allowing easy implementation of new functionalities and keeping a low latency and a good user experience.
- Enforced an application API based on OpenAPI, generating code for C++ and React Native.
- Executed GitLab CI for the nBox project with a Yocto-based repository, an application build with SDK, unit tests, code coverage, and Cppcheck.
- Made the system completely operational during a failed update by implementing an over-the-air update mechanism based on SWUpdate and symmetric partitions.
Senior Embedded Software Engineer
Synopsys
- Implemented a Bluetooth 5.0 controller, which passed certification and was integrated into at least one of the major semiconductor manufacturers' SOC.
- Executed a secure protocol between dedicated hardware and another x86 Linux machine.
- Implemented an HDMI TX Linux driver with a Linux DRM Kernel subsystem.
- Implemented a base Linux Buildroot image used by the team to deliver Linux drivers to customers in a generic way.
- Redesigned a Bluetooth controller build system reducing build time from five minutes to some seconds (on rebuild).
Team Lead and Embedded Systems Engineer
CEiiA
- Implemented a solution for fleet tracking based on Linux, C++, and Python, allowing clients such as Mitsubishi and the Portuguese Environment Agency to track their vehicles and have full access to the history of CAN bus messages.
- Executed a solution for vehicle sharing based on Linux, C++, and Python, allowing clients such as ECooltra and Itaipu Binacional to reserve their vehicles, lock/unlock, enable/disable the ignition, and monitor them.
- Hired and organized the entire team, acting as a team lead and senior software developer.
- Implemented a solution for bicycle sharing based on bare metal Nordic nRF51, C++, and MQTT, allowing fleet management and tracking while keeping low power consumption.
Software Developer
Nonius
- Implemented a hospitality TV set-top box solution based on Android, capable of running streaming TV, video on demand, order room service, and over-the-air updates.
- Worked as a developer and scrum master, helping with the company's organization and team commitments.
- Implemented a C++ state machine framework used as a base for message broker between the hotel TV system and the billing system.
Experience
Tridonic nBox – Emergency Lighting System
https://www.youtube.com/watch?v=Se7MMSwQsbwI was one of the main developers and later became the team lead.
CEiiA Mobility Device Controller – Linux-based Enabler for Fleet Devices
https://www.youtube.com/watch?v=tPQuG3-ELYUI worked on it from concept, hardware design, software implementation, and production. We collaborated with Renault, Govecs, Ecoltra, and Mitsubishi, adding support for some of those manufacturers' vehicles to lock/unlock, enabling/disabling the ignition, monitoring location and CAN bus parameters. For Ecooltra, we build a fleet management system for scooter sharing.
CEiiA Micro Mobility Device Controller – Bicycle Sharing
https://mobi.cascais.pt/I've worked as an architect and senior developer for the product. We've implemented an MQTT library for server communication. It also uses Bluetooth LE for mobile communication and allows features like tracking, reservation, locking, unlocking, battery monitoring, and anti-theft alarm.
Synopsys Bluetooth LE Controller
https://www.synopsys.com/designware-ip/interface-ip/ble-thread-zigbee-ip.htmlI was one of the Synopsys BLE controller firmware developers, mainly working on redesigning the product build system, supporting ARC CPU, fixing air timing-related issues, and interoperability testing (Barcelona UnPlugFest).
SDAP – Secure Protocol
https://www.synopsys.com/dw/ipdir.php?ds=security-hdcp-esmI've implemented a library that can communicate using SDAP with another machine-dedicated SDAP hardware.
SDAP is particularly useful for products such as HDCP, where HDMI TVs can decrypt high-secure streams, and it is desired that the secure firmware gets updated.
Nonius Hospitality Set-top Box (Android)
https://noniussolutions.com/hotel-tv/I designed and implemented the Android Set-top box for hotel TVs, implementing applications such as stream TV, video on demand, room service, promotions, configurable themes, games, and more. I also implemented both Android applications and provided platform work.
Education
Master's Degree in Electrical and Computer Engineering
Faculty of Engineering of the University of Porto - Porto, Portugal
Certifications
Top Lead
Neves de Almeida
Embedded Linux Kernel and Driver Development Training
Bootlin
Embedded Linux Training
Bootlin
Certified Scrum Master
Ambithus
Skills
Libraries/APIs
API Development, REST APIs, OpenAPI
Tools
Jira, Buildroot, MQTT, CMake, GitLab CI/CD, Git, U-Boot, Microsoft Teams, Slack, GitLab, Arm Cortex-M4, Makefile, Android NDK, Subversion (SVN), GTK+, Qt Creator, NGINX, GTK
Languages
C++98, C++11, Python, Bash, C, C++, Embedded C++, Bash Script, Python 3, Assembly, C++17, PHP, Java, Rust, JavaScript, HTML, SQL, Embedded C
Paradigms
Scrum, UX Design, DevOps, Azure DevOps
Platforms
Linux, Embedded Linux, Debian, Bluetooth Low Energy (LE), ARM Linux, Visual Studio Code (VS Code), Android, Docker
Frameworks
Google Test, Android SDK, Swagger
Storage
SQLite, PostgreSQL
Other
NMEA, Programming, Scrum Master, Certified ScrumMaster (CSM), APIs, Concise Binary Object Representation (CBOR), Embedded Systems, Teams, WebSockets, Team Leadership, SWUpdate, GPS Development, Ellisys Bluetooth, Toolchains, Compilers, Architecture, Technical Leadership, PCB Design, SOAP, CAN Bus, User Interface (UI), Cryptography, Linux Kernel Drivers, Yocto, Teamscale, Nordic nRF51, Linux Kernel, Electronics, Algebra, Bluetooth, BACnet, Constrained Application Protocol (CoAP), Firmware, Release Management, CI/CD Pipelines, Embedded Software, Internet of Things (IoT), Digital Hardware Design, Artificial Intelligence (AI)
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