Ruben Cano Diaz

Software and Hardware engineer

Contact

Address
Barcelona, Spain

Education

2020
Master in Innovation and Research in Informatics: HPC
Polytechnic University of Catalonia (UPC)
Catalonia, Spain
2018
Bachelor of Informatics Engineering: Hardware
Polytechnic University of Catalonia (UPC)
Catalonia, Spain
2017
Summer School in Computer Vision and Chinese
Beihang University (Beijing University of Aeronautics and Astronautics)
Beijing, China

Skills & Competencies

Modern C++ (C++20/23)
Software Architecture
Parallel Programming & HPC
Performance Analysis & Optimization
Monitoring, Profiling & Tracing
Nix & Reproducible Builds
CI/CD & DevOps
Containerization (Docker)
Embedded Systems
Low-Level Programming & Assembly
Driver Development
Memory Management
Processor Interfacing
FPGA Development
Xilinx Vivado
CUDA
RISC-V
Reverse Engineering
Agile Development
SC18 Student Cluster Competition Participant
Former Board Member, VGAFIB

Languages

English

Professional

Spanish

Native

Catalan

Native

About Me

    I am a results-driven engineer with expertise across software and hardware domains, including embedded systems, high-performance computing, and modern development workflows.
I excel at translating complex problems into reliable, maintainable solutions and I have a strong track record of delivering high-impact engineering work.

I also enjoy mentoring colleagues and sharing knowledge through training and collaborative initiatives.
    

Experience

2022-2026

Wordline Iberia SAU | PERE IV, 291, 08020 Barcelona

Software Engineer - Innovation Champion

- Developed and maintained features for a front-office payment authorization platform, enabling transaction processing for fleet customers across multi-merchant fuel networks.
- Designed and integrated payment authorization workflows using IFSF and related forecourt communication protocols, ensuring reliable interoperability between payment systems, POS infrastructure, and fuel dispensers.
- Led modernization of enterprise software platforms, migrating critical systems to C++20 and improving maintainability, performance, and long-term sustainability.
- Re-architected legacy scripting and automation workflows, increasing operational reliability and reducing maintenance overhead.
- Performed advanced performance profiling and execution tracing to identify and eliminate critical system bottlenecks.
- Designed and maintained scalable CI/CD infrastructure supporting multiple high-availability projects and development teams.
- Architected a centralized Nix-based development platform adopted by approximately 400 engineers, standardizing environments and improving build reproducibility.
- Developed a distribution-independent deployment strategy using Nix, enabling modern toolchains to coexist seamlessly with legacy production infrastructure.
- Championed engineering excellence through automated static analysis, pre-commit validation, and reproducible development environments, improving code quality and developer productivity.
- Provided technical leadership, training, and mentorship on modern C++, containerization, Nix ecosystems, and software engineering best practices.
- Drove organization-wide modernization initiatives that improved software resilience, developer experience (DX), and engineering efficiency across the platform.

2018-2022

Barcelona Supercomputing Center (BSC) | Jordi Girona, 29, 08034 Barcelona

R&D Engineer

OmpSs@FPGA + CUDA + OpenCL:

- Designed and implemented a robust memory coherence layer for virtual and physical memory across heterogeneous computing devices. - Architected an asynchronous task execution framework for optimized, dependency-aware workload scheduling. - Integrated bare-metal RISC-V task support and FPGA accelerator execution capabilities directly into the OmpSs-2 runtime environment. - Engineered comprehensive CUDA and OpenCL kernel support, bridging discrete and unified memory architectures. - Developed a custom runtime CUDA loader capable of dynamically parsing ELF files and deploying kernels to edge devices.

European MEEP project:

- Led FPGA hardware/software co-design on Alveo U280/U55C platforms utilizing Vivado and advanced simulation toolchains. - Implemented QEMU PCIe forwarding and engineered a Verilator AXI bridge for rigorous system emulation. - Developed critical low-level communication infrastructure, including UART over PCIe and bare-metal UART-Lite drivers. - Delivered a first-stage RISC-V bootloader featuring advanced memory introspection and real-time editing capabilities. - Successfully ported U-Boot and facilitated complete Linux boot sequences on a custom RISC-V microarchitecture. - Implemented Linux kernel DMA API support tailored specifically to the custom hardware architecture. - Architected low-latency shared memory and PCIe communication channels between host systems and FPGA accelerators. - Developed a high-performance PCIe Ethernet device driver interfacing seamlessly with a custom Verilog Ethernet IP.

European Legato project:

- Engineered custom editor extensions providing seamless OmpSs autocomplete functionalities for VSCode and Eclipse. - Contributed core infrastructure features to a cloud-native integrated development environment (IDE) built on Eclipse Che.

Side Projects

2025

toywithraylib

view more
Browser-native Raylib game platform built with WebAssembly and Emscripten to run interactive applications locally without a build server.

2025

py-nixeval

view more
Python wrapper for running Nix evaluations, enabling Nix as a dependable backend across Windows, Linux, and MacOS.

2025

njq

view more
Nix-powered query tool for JSON and Nix expressions, offering a declarative query experience.

2025

cpp-match

view more
C++ extension enabling Rust-style match expressions and structured error handling with early returns.

2024

LG Smart TV ports

view more
Ported N64 Super Mario 64, PICO-8 Emulator FAKE8, and additional applications to LG Smart TV platforms.

2024

Nixpkgs maintenance

view more
Maintained several Nixpkgs packages, including devcontainer, flatito, construct, and smtp4dev.

2023

Compiler Explorer Nix support

view more
Added Nix evaluation support to Compiler Explorer, enabling live Nix workflows with assembly visualization.

2021

Pokemon Fire Red multiplayer

view more
Reverse-Engineering of Pokemon Fire Red using IDA Pro, adapting m-GBA emulator to support hooks on arbitrary memory addresses, reading memory related to the game and offering a simple web-interface to control the actions of the AI.

2020

MiniRun runtime

view more
Minirun is a minimalistic task-based runtime that doesn't require compiler support. 
It's written in C++ and it's very simple to use and header-only, which does not require any compiler extensions and could be used in any C++ project.
Supports tasks dependencies with sentinels and etherogeneous devices like CUDA, OpenCL, etc.

2019

WSLD

view more
WSLD is a simple tool to manage WSL distributions, it allows to import/export, backup and restore WSL distributions using docker images as the base.

2010-2024

Several small projects

Designed new quests and systems for MMORPG private-servers, in both, server and client.
Created new systems for MMORPG private-servers
Cheat-detection systems on MMORPGs
Reverse-engineering and cheat development
Maintenance of MySQL databases 
FreeBSD sysadmin
Personal programming professor
Telegram bots
Chromium web extensions development

And many more...