A service. Two editor plugins. The whole loop.
Langkeeper
I wanted to know where my coding time went. So I built the tracking service, a dashboard, weekly email reports, and plugins for Neovim and VS Code.
Software engineer.
Web, mobile, desktop & tools.
I build developer platforms at Cycloid. After work, it might be a bus app, a Rust library, or something for my flight simulator.
A few projects with a little more to them.
A service. Two editor plugins. The whole loop.
I wanted to know where my coding time went. So I built the tracking service, a dashboard, weekly email reports, and plugins for Neovim and VS Code.

Bus timetables for my hometown. Nearby stops, a map, and saved favourites, with data from the local transport operator.
Built for my own hangar.
Every flight started the same way: four programs, always in the same order, before touching the throttle. So I built a launcher that finds what I have installed, starts it all in sequence, and shuts it down again when I land.
Smaller tools,
useful problems.
Frontend development and UX, from building an e-commerce platform to working on an internal developer platform.
LinkedInSenior Software Engineer
Building internal developer platform software for enterprise clients including the European Commission, Siemens and NTT Data.
Software Engineer - UX team
Working across Vue 2 and 3, SAP and Figma, with development and design in the same conversation.
Web Developer
Helping create an e-commerce platform from scratch with Vue and Laravel.
Other things I’ve built, with a place of their own.
The useful, the unfinished, and the “what if?”.
All 92 public
repositories, including forks and early experiments.
92 repositories
Dates show repository creationCreate custom launchers for DCS and BMS, open companion apps automatically
OpenKneeboard fork without the UAC requirement...
Bus stops, maps and timetables for my hometown, Benidorm.
Keep track of the time you spend programming.
My personal website, career history and creative archive in Nuxt.
lucide-vue-next auto-imports for Nuxt 3 for the best DX with Lucide Icons.
A simple java package manager.
A simple job scheduler for Actix
Unity project for Mio Cid
Backup and restore SQLite3 databases in your Rails app.
My 2024 website, built with Preact and Vite.
Application runner made in Rust
Keep track of the time you spend programming.
Keep track of the time you spend programming.
Minimal Docker SDK for php
App template with auth system
A node.js server for the game Mio Cid.
Photography, writing, artwork and reading notes.
cli for managing ssh connections
GUI text editor for personal use
Build your SMS application with PHP, easy SMS sending and worldwide coverage
Todo app made in Rust
Parses cooklang recipes from GitHub repositories.
Rust png to avif image conversion callable from php
Battleship game made in winforms c# for DAM1 ED
Lua extension using sumneko lua-language-server for coc.nvim
Compile HTML files with support for includes and SASS compilation
A desktop application for chemical elements, compounds and reactions.
CLI menu library for Java
tortitas.eu personal page.
An sqlite orm for Deno
Project generator made in deno
A multiplayer roleplaying game which you can interact with with telnet.
Product and support pages for Unika, AllPDF, AR Headtracker and OptMat MVA Visualizer.
Weather app in React using TanStack Query, Typescript, shadcn/ui and TailwindCSS
Basic pomodoro app in Expo
Saving christmas w/ Ocaml and Elixir
Delivery app mockup made in Jetpack Compose for DAM2
Styling contributions to a recipe website.
Server for taskt
Windows android platform tools installer (adb)
A moodle events console tool.
node sharp cli
JWT authentication ready api in Deno
Java utils library
Vue 3 compilable desktop app template
Event system for deno
Deno router
A windows shell made in TypeScript
Map editor for telnet mmo.
A telnet server made with node.
An Electron GUI tool for Cid-Server
☕
A live income counter built in Rails.
Stock market predictions using Prophet model in Python
RPG combat exercises and a linter-workflow contribution.
dam nginx docker project.
C++ utils library
HTML & CSS example webpage for class
Database script executor for class
Deno timers utility library
A TypeScript module starter with Jest and Prettier.
Reusable workflows
common things I do with scss
Advent of Code exercises in TypeScript.
A collection of Advent of Vue exercises.
Personal page for 2023 made in Nuxt 3
Portfolio blog made in denoland fresh
Crawler that automates the process of writing the FCT SAO diary so you don't have to
The website I use as a portfolio on my web
Memory matching game with tux
Wordle clone made in class for fun
An installation documentation correction for the I2P website.
Privacy policy pages for my apps.
Vue port of shadcn-ui
The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.
Automated auditing, performance metrics, and best practices for the web.
Go-Web Docusaurus documentation
Library of 30+ independent Lua modules improving overall Neovim (version 0.7 and higher) experience with minimal effort
My personal prettier config
php skeleton project.
A personal website experiment in Next.js.
Github profile README
A Python generator for a Star Wars meme.
A fast, simple Git worktree helper written in Go
🎵 A simple, clean and cross-platform music player
CookLang-JS is a TypeScript library for parsing CookLang.
intelephense (PHP language server) extension for coc.nvim. intelephense’s various LSP features and this extension's additional features are available.
The Laravel Framework.
Can't clone this repo on windows
A generic and extensible build system for GNU/Linux distributions; orphaned
A tiny utility for when clear comes out as celar.
No projects match that combination. Try another search or clear the filters.
Small fixes, documentation, and shared projects. Credit where it belongs.
PHP and dependency upgrades, plus a move from Travis to GitHub Actions.
coc-sumneko-luaA downloader fix for unsupported operating systems.
Google / LighthouseA correction to the README’s Chrome launcher example.
Update i2p-archive-keyring.gpg url for debian ubuntu install
feat(www): second section
feat(www): First page
feat: ci/cd tests
feat: Login
fix: bookings delete
Update/delete booking
Update/create rooms
docs: calendar typo
feat: rooms list
chore: test
Users list resources
feat: openapi and swaggerui
feat: auth
fix: typo in spanish quote id 154 (TortitasT)
Style refactors
Upgrade PHP requirement to ~8.1, upgrade all packages, switch CI/CD from Travis to GitHub actions
docs(readme): fix chrome-launcher import example
Fix GetServer typo in example
Feat: linter action
(mini.files) Fix typos on comment
fix: downloader won't work if not on supported OS
fix: changed php version for style to 8.1, add permissions for action
I started with Visual Basic at ten, made games, and kept picking up new things. There’s also photography, artwork and the occasional bit of writing.
Visit my personal archiveThat’s the tour.