๐ ๏ธ Full-stack developer from southern Spain, happiest knee-deep in data. I specialize in APIs, ETL and data migration (PHP ยท Python ยท JavaScript), with a soft spot for large-scale processing, GIS and web scraping. After hours I build things I'd actually use: Kana~boo, to learn Japanese; langstats, a Claude Code plugin that powers the language stats at the bottom of this page; spain-postal-codes, an open dataset of Spanish postal codes published on npm and Packagist; Preparados72h, a family emergency-preparedness portal and Android app that works offline; and Currency Flow, the ECB's official euro exchange rates since 1999 as a free static JSON API and a PHP library. Lately I spend a lot of time where backend meets LLMs: MCP servers, RAG and agents that know when to hand work to a local model. Quality over quantity, always.
|
Learn Japanese from zero with Boo, a little ghost. It started with Hiragana & Katakana (charts, quizzes and a Romaji โ Kana reverse mode) and now covers ~2,500 kanji from N5 to N1 plus Kotoba: vocabulary and grammar tracks from your first words up to โN2, kanji with furigana, stroke tracing practice and spaced-repetition reviews. Fully static and multilingual (๐ช๐ธ ES / ๐ฌ๐ง EN / ๐ฏ๐ต JA, route-based i18n): every dataset is validated at build time, SEO and analytics are covered by tests, and it uses privacy-friendly analytics. |
A Claude Code plugin that records which languages Claude reads and edits while it works for you, and turns them into text bars for your GitHub profile README (the Code Crafting block below is generated by it). Bars can be flowers ๐ธ, rockets ๐, hearts ๐ or any emoji you like. The hook runs in the background so it never slows Claude down, works on macOS, Linux and Windows, and GitHub is optional: connected, it updates your README by itself (with optional auto-publish); not connected, it hands you the block to paste. |
|
An open, versioned dataset of Spanish postal codes and the municipalities they serve, built from official INE data and refreshed automatically: 10,791 postal codes ยท 8,132 municipalities ยท 52 provinces. Use it as a CSV, a static JSON API (no server, no API key, open CORS), an npm package or a PHP library via Composer, all with the same API.
Offline lookup and accent-insensitive search with zero dependencies (~110 KB gzipped on npm),
leading-zero recovery ( |
A family emergency-preparedness portal and Android app that keeps working with no signal. Its supplies calculator uses official figures: water broken down by use, five age groups, dogs by size, hot weather, "no stove" mode, allergies, intolerances and diets, plus a sample menu and the real kilos to buy. Then an inventory with expiry dates tells you what's missing. Also: guides per emergency (blackout, flood, heatwave, cyberattackโฆ), survival skills with offline illustrations, a Morse code translator and SOS emitter, offline meeting points with GPS, a world map of official recommendations per country and a battery-saving blackout mode. News is curated from RSS every 6 hours by GitHub Actions, and CI builds and releases the APK. No dependencies, no build step, accessibility reviewed. |
|
The official euro exchange rates published by the European Central Bank, every business day since 1999: 29 active currencies ยท 12 discontinued. Use them as a static JSON API on GitHub Pages (no server, no API key, open CORS), a PHP library via Composer or a self-hosted HTTP API with an OpenAPI 3.1 spec. Cross rates and conversions between any two currencies, weekends and holidays resolved to the previous publication (and every answer says which date was used), and rates kept as the ECB's exact decimal strings, with no float rounding. GitHub Actions rebuilds the site after each ECB publication and refuses to publish data that fails validation. Docs and converter in 6 languages. |
|
๐งญ Agent orchestrator ยท From first idea to Notion tasks, routing clear-cut work to local models.
Takes a project from first idea to a task breakdown in Notion. Frontier models plan, review and test; clear-cut tasks are delegated to local models depending on difficulty, scope and context size, and the router learns from its own hit/miss history.
Go ยท Notion ยท Ollama ยท SQLite
๐ง MCP server with RAG ยท Internal docs queryable from Claude and ChatGPT, deployed continuously.
Makes internal documentation queryable from Claude and ChatGPT: PDF parsing and chunking, vector search in sqlite-vec, local models via Ollama. Deployed continuously from GitHub Actions with an SSH key locked to a single command, no overlapping deploys and a health check gate.
Python ยท MCP ยท sqlite-vec ยท Ollama ยท GitHub Actions
๐ฌ Local RAG bot ยท Chat with a knowledge base without anything leaving the machine.
Chat over a knowledge base without anything leaving the machine: chunked ingestion, CPU embeddings, top-k retrieval and a 7B model answering with streaming.
Python ยท FastEmbed ยท Ollama ยท Gradio
๐ผ DashJobs ยท Local-first job-search dashboard that turns offers into a study plan.
A local-first dashboard for anyone running a job search. It pulls your applications from LinkedIn and InfoJobs through your own signed-in browser, uses a local LLM to extract each offer's requirements, and turns them into a study plan with drafted notes on every topic. It syncs with Notion, and everything stays on your machine (JSON store with atomic writes, export/import backups).
React ยท Express ยท Playwright ยท Ollama ยท Notion
๐ ๏ธ Hefesto ยท Live dev control panel for services, containers, databases and AI usage.
My own dev control panel. A Fastify daemon collects the state of my services, containers, databases and AI subscription usage, and streams it over SSE to a terminal UI (Ink) and a React dashboard.
TypeScript ยท Fastify ยท React ยท PostgreSQL ยท Docker
๐ Tamper-evident audit framework ยท A hash-chained event log nobody, admins included, can quietly rewrite.
An isolated service other apps (SSO, CRM, internal tools) send their events to, so nobody, admins included, can quietly rewrite history. FastAPI ingestion โ stream queue โ worker that hash-chains every event โ immutable store, synced to a read-only PostgreSQL copy for dashboards, plus an integrity checker that alerts on any mismatch.
FastAPI ยท Valkey Streams ยท immudb ยท PostgreSQL ยท Superset
๐ Market screener ยท Stocks near historical lows, backtested and sent to Telegram.
Spots stocks trading near historical lows and alerts me on Telegram. Signals are checked with a point-in-time backtest (no look-ahead, no survivorship bias) and the engine is covered by 300+ tests.
Python ยท Flask ยท PostgreSQL ยท pytest ยท Telegram
โ๏ธ Planedex ยท Point your phone at the sky and identify the plane flying over you.
A Pokรฉdex for planes: point your phone at the sky and identify the aircraft flying over you, using live ADS-B data, the camera and device sensors. Offline-first, so your collection survives with no signal.
Expo ยท React Native ยท SQLite
๐๏ธ AniFit ยท A fitness diary where your training levels up an anime character.
A fitness diary with anime gamification: log steps, calories, protein, water, weight and workouts, find out which anime character archetype matches your body composition (FFMI + body fat), and see the positive and negative routes your habits lead to. Live demo.
FastAPI ยท PostgreSQL ยท React ยท Vite ยท TailwindCSS
๐ฌ Curious about any of these, or fancy building one together? Most of the repos are private for now, but I'm always happy to share the details, swap ideas or collaborate. Drop me a line at codecruz.mt@gmail.com.
| Category | Technologies |
|---|---|
| ๐ Languages | |
| ๐ฅ๏ธ Frameworks & Libraries | |
| ๐ฆ Databases & Messaging | |
| ๐ Data, AI & Integration | |
| ๐ค Testing & Automation | |
| โ๏ธ Tools & Platforms | |
| ๐๏ธ IDEs & Editors |
|
|
|
Python ๐ธ๐ธ๐ธ๐ธ๐ธ๐ธ๐ธ๐ธ๐ธ๐ธ๐ธ๐ฑยทยทยทยทยทยทยทยทยทยทยทยทยท 46.31 %
JavaScript ๐ธ๐ธ๐ธ๐ธ๐ธยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท 19.13 %
HTML ๐ธ๐ธยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท 07.78 %
Docker ๐ธ๐ธยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท 07.04 %
Astro ๐ธ๐ฑยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท 06.51 %
PHP ๐ธ๐ฑยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท 05.78 %
Other ๐ธ๐ธยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท 07.44 %


