Senior Software Engineer at Goodnotes · Cross-platform graphics & systems · Málaga, Spain
LinkedIn · X / Twitter · Merged open-source PRs
I'm Francisco, a software engineer who enjoys getting from a product idea all the way down to the platform that makes it possible.
At Goodnotes, I work on cross-platform rendering: bringing together Swift, WebAssembly, native graphics APIs, and web GPU backends to build fast, consistent drawing experiences. Before that, my work spanned iOS engineering and technical leadership. Across both, I care about performance, maintainable architecture, and helping other engineers ship confidently.
Outside work, I build and maintain open-source projects around emulation, graphics, console homebrew, and developer tooling. I especially enjoy the kind of bug that starts as "the screen occasionally flickers" and ends in a deep dive through memory, timing, drivers, or a compiler.
Where I spend my time
- Pixels: Metal, WebGL / WebGPU, graphics pipelines, rendering correctness, and frame-time performance.
- Platforms: Swift, C, C++, TypeScript, WebAssembly, constrained devices, and cross-platform architecture.
- Tools & teams: CMake, CI, profiling, regression tests, SDKs, code review, and making complex systems easier to work on.
NJEMU — one arcade emulator, several very different machines
A shared C codebase for PSP, PlayStation 2, PlayStation Vita, and desktop, running classic Capcom and SNK arcade systems. Much of the interesting work is below the surface: platform drivers, memory-aware caching, graphics backends, audio, timing, and testing across hardware generations.
Explore the code · Downloads & project site
ps2_drivers — less boilerplate, more building
A C library that simplifies loading and managing PlayStation 2 IOP/EE drivers. Its goal is practical developer experience: make a famously low-level platform more approachable without hiding how it works.
OpenVCL — keeping a graphics toolchain alive
Helping modernize the open-source VCL compiler for PlayStation 2 vector units, with a focus on scheduling, measurable output quality, and compatibility with the current PS2 graphics toolchain. Originally created by Jesper Svennevid and Daniel Collin.
Compiler source · PS2GL toolchain integration
Kid Maze — a small, different kind of engineering problem
An interactive learning game where children draw directions, letters, or numbers to guide a character through a maze. Built as a lightweight web app, with pen/touch input and on-device recognition.
The heatmap shows contributions recorded by GitHub over the last 365 days. Language percentages represent each repository's primary detected language across my public, original, non-archived repositories—not the languages I use most at work.
Upstream repositories are distinct repositories outside my account where I have a merged public pull request. Commit contributions follow GitHub's contribution rules; they are not a raw count of all Git commits (forks, non-default branches, and private work may not appear). These graphics are generated from GitHub's API every day, so the displayed counts reflect the last successful refresh.
I contribute upstream as well as maintaining my own projects. Here are a few merged pull requests that show the kinds of problems I work on:
Browse all my merged pull requests →
I believe good engineering is equal parts curiosity, measurement, and collaboration. If you're building something involving graphics, performance, emulation, or cross-platform systems, I'd be happy to compare notes.





