Born in Granada, Spain, I found my passion about software development and start self-learning programming. After completing a bachelor in Electrical Engineering, I jumped into software development positions in Granada and then I moved to Switzerland where I currently live.
During my career I’ve worked in projects related to: distributed systems with pub/sub protocol DDS; sport timing and live TV production; DevOps projects; backend frameworks; and collaboration workflows, quality assurance and release management.
Apart from software development, I was able to grow on operational skills by having the role of senior technical operator of timing and scoring systems in the Olympic Games at Tokyo 2020 and Winter Olympic Games Beijing 2022. I did setup of network infrastructure, hardware and software and operation of software during sport competitions. I was the last level of support engineer helping teams to troubleshoot network protocols and software issues in critical moments.
As a hobby I maintain several open-source projects and frameworks for game reverse engineering (ROM hacking) and fan-translations. I study and analyze low-level details of game consoles and debug and write assembly code (ARM). I help teams to translate video-games acting in a role usually known as Localization Engineer. I make programs to edit proprietary formats of text, image, font and audio files.
I also love to give technical talks at conferences and online.
February 2019 - June 2023, Corgémont, Bern, Switzerland
World leading sports timekeepers. They build, deploy and operate sport timekeeping hardware and software and TV graphic production for major sport events like Olympic Games.
January 2022 - June 2023
February 2019 - January 2022
October 2015 - January 2019, Granada, Andalusia, Spain
Expertise in RTI Connext DDDS: a technology for the Industrial Internet of Things (IIoT).
March 2017 - January 2019
October 2015 - February 2017
March 2015 - August 2015, Granada, Spain
B.Sc. in Electrical Engineering - Telematics (networks) specialty
Grade: 8.0 out of 10
Framework to implement and convert file formats. It provides a virtual file system, format conversion APIs, full featured binary IO and plugin support to support common formats.
Library part of the SceneGate framework that provides support for Nintendo 3DS file formats.
Proof-of-Concept of an extensible image file formats API for SceneGate.
Program to see, convert, and edit the files of Nintendo DS games. It supports images, texts, music, fonts and textures.
Modding tools and assembly fixes for the Japanese to Spanish fan-translation of the game “Ni no kuni: Shikkoku no Madoshi” for Nintendo DS.
Modding tools for the English to Spanish fan-translation of the game “Attack of the Friday Monsters” for Nintendo 3DS.
Modding tools to translate “Professor Layton” games for Nintendo DS.
(Private code until translation release) Modding tools for the English to Spanish fan-translation of the game “Pokémon Conquest” for Nintendo DS.
DevOps pipeline (build and release) based on Cake for C# projects in GitHub.
Prototype apps to monitor glucose levels of FreeStyle Libre sensors from Garmin sport watches, desktop and phones.
Decompressor for binary delta encoding VCDIFF (RFC-3284). xdelta3 compatible
.NET tool to generate third-party notice files from all the transitive dependencies of a .NET project.
Atom IDE plugin to have autocompletion of XML files from XSD schemas.
C# API for RTI Connector to communicate applications via DDS pub/sub.
Enhances RTI Connext DDS log messages to troubleshoot network protocol issues.
Talk at the DevFest 2018 organized by the GDG Jaén (Google Developer Group). The presentation is about a Twitter thread I did on July. For a week I was figuring out how the game Pokémon Mistery Dungeon Explorers of Sky from Nintendo DS generate and validate a kind of password for rescue missions, special events and object sharing. It almost a study of the assembly code of the game with some notes about the implementation. Code repository
Live streaming from Twitch requested by the TraduSquare community. This time I talked about the file format of the images, sprites and textures in video-games and all the kind of compression and techniques used in the Nintendo DS. Slides
Talk at the JASyP (Jornadas de Anonimato, Seguridad y Privacidad). Organized by the group Interferencias in the University of Granada. I talked about the security mechanisms like encryption that we can find inside of the video-games with the goal to obfuscate their files to avoid hacks, mods and fan-translations.
Talk at the IEEE Developer Days organized by the association IEEE Student Branch of Elche. I talked about the Industrial Internet of Things (IIoT) and the main network protocols and framework in the market. I gave details on how one of them, DDS, works with a demo.
Research in the game Pokémon Conquest from NDS to get the location of the NPC names and the relationship with each dialog box Intro Pokémon Conquest (NDS) is one of the games I would like to translate to Spanish. I have already created almost all the tools to extract, modify and insert the content. This time, I would like to focus in the story dialogs. Below is one example:
No hace mucho, @Nitehack me preguntó si sabía cómo podría extraer una imagen a partir de unos datos. No era la primera vez que me enfrentaba a este reto en concreto y ahora, con más experiencia adquirida quería volver a intentarlo. ¿Objetivo? Todos los juegos para GameBoy Advance (GBA) y Nintendo DS tienen unos datos al principio del archivo (header) que los usa la consola para la inicialización del juego como el nombre, el código del desarrollador, las posiciones de memoria donde va el código, el punto de inicio del sistema de archivos… Sorprende ver entre estos datos un conjunto de bytes sin significado en ese contexto pero que, mirando en GBATEK parece ser el “Logo de Nintendo”.