Joaquín Borja León

Construyo sistemas de datos e IA y me gusta llevarlos hasta producción. I build data and AI systems and I like taking them all the way to production.

Soy Joaquín, ingeniero de software por la Universidad de Sevilla. Ahora trabajo en Airbus Defence and Space y, en mi tiempo libre, diseño, programo y despliego mis propios proyectos en un servidor que administro yo mismo.

I'm Joaquín, a software engineer from the University of Seville. I currently work at Airbus Defence and Space, and in my spare time I design, build and deploy my own projects on a server I run myself.

Joaquín Borja León
Madrid, EspañaMadrid, Spain

ProyectosSelected work

Cada figura de esta sección funciona con la misma lógica que el proyecto real. Puedes tocarlas.

Every figure in this section runs on the same logic as the real project. Feel free to play with them.

DocuChat

Un asistente que responde preguntas sobre tus propios documentos y te dice de dónde ha sacado cada respuesta.

An assistant that answers questions about your own documents and tells you where each answer came from.

La búsqueda vectorial entiende el significado pero se le escapan los términos exactos. La búsqueda de texto completo hace justo lo contrario. DocuChat lanza las dos en paralelo y combina sus rankings con Reciprocal Rank Fusion, de modo que arriba quedan los fragmentos en los que ambas coinciden.

Vector search understands meaning but misses exact terms. Full-text search does the opposite. DocuChat runs both in parallel and merges their rankings with Reciprocal Rank Fusion, so the passages both agree on rise to the top.

  • Capa de agentes con llamadas a herramientas, compatible con Ollama en local y con Gemini.
  • Agent layer with tool calling that works with local Ollama models and with Gemini.
  • Cada consulta registra latencia, herramientas usadas y fragmentos recuperados.
  • Every query logs latency, tools used and passages retrieved.
  • Evaluación con recall@k para medir si los cambios mejoran de verdad la recuperación.
  • Recall@k evaluation to check whether changes actually improve retrieval.

Python, FastAPI, PostgreSQL, pgvector, Ollama, React, Docker Compose

Ver el código en GitHubView the code on GitHub
Cómo se ordenan los resultadosHow results get ranked
Fragmentos de una política de RR. HH. de ejemplo. RRF con k = 60.Passages from a sample HR policy. RRF with k = 60.
¿Cuántos días de vacaciones me corresponden?How many days of holiday am I entitled to?

    Analítica deportivaSports analytics

    Modelos de probabilidad para fútbol y tenis, con datos de más de 16 ligas y de los circuitos ATP y WTA.

    Probability models for football and tennis, with data from more than 16 leagues and the ATP and WTA tours.

    Para fútbol uso Poisson y Dixon-Coles: estimo los goles esperados de cada equipo y de ahí sale la probabilidad de cada marcador. En tenis, un Elo separado por superficie y una regresión logística. Además, un proceso guarda las cuotas en tiempo real para construir un histórico de líneas de cierre con el que validar los modelos.

    For football I use Poisson and Dixon-Coles: estimate each team's expected goals and derive the probability of every scoreline. For tennis, a surface-specific Elo and logistic regression. A separate process logs live odds to build a closing-line history to validate the models against.

    Python, FastAPI, React, PostgreSQL, Ubuntu Server

    Ver el código en GitHubView the code on GitHub
    Probabilidad de cada marcadorProbability of every scoreline
    Modelo de Poisson independiente. Mueve los goles esperados.Independent Poisson model. Adjust the expected goals.
    Filas: goles del local. Columnas: goles del visitante.Rows: home goals. Columns: away goals.
    LocalHome
    EmpateDraw
    VisitanteAway

    Scoring bursátilStock scoring engine

    Un motor que puntúa empresas por sus fundamentales y me avisa por Telegram cuando alguna merece una segunda mirada.

    An engine that scores companies on their fundamentals and pings me on Telegram when one deserves a second look.

    Combina PER, ROE, deuda sobre EBITDA y margen neto en una única nota. Un flujo de n8n lanza el análisis de forma periódica, manda las alertas y deja los resultados en un panel hecho con FastAPI.

    It combines P/E, ROE, debt to EBITDA and net margin into a single score. An n8n workflow runs the analysis on a schedule, sends the alerts and publishes results to a FastAPI dashboard.

    Python, FastAPI, n8n, Telegram

    Desglose de una puntuaciónBreaking down a score
    Empresa ficticia, valores ilustrativos.Fictional company, illustrative values.
    PER12,412.4
    ROE18 %18%
    Deuda / EBITDADebt / EBITDA1,61.6
    Margen netoNet margin11 %11%
    Nueva oportunidad: Empresa Ejemplo obtiene 7,8 sobre 10, por encima de tu umbral de 7. New candidate: Example Corp scores 7.8 out of 10, above your threshold of 7. Alerta automática por TelegramAutomated Telegram alert

    RecuerdaMed

    Mi trabajo de fin de grado: una app que ayuda a los pacientes a no olvidar su medicación y mantiene informados a sus cuidadores.

    My bachelor's thesis: an app that helps patients keep up with their medication and keeps their caregivers informed.

    El paciente recibe un aviso a cada hora de toma y la marca con un solo gesto. Si una toma se queda sin confirmar, la persona que le cuida recibe una notificación. Funciona en Android e iOS desde un único código.

    Patients get a reminder at each dose time and confirm it with a single tap. If a dose goes unconfirmed, their caregiver gets a notification. It runs on Android and iOS from a single codebase.

    React Native, Expo, TypeScript, Firebase

    Ver el código en GitHubView the code on GitHub

    También he liderado equiposI've also led teams

    En la asignatura de Ingeniería del Software y Práctica Profesional fui jefe de proyecto de un equipo de 18 personas. Construimos una app para comunidades de vecinos con gestión de incidencias, reserva de zonas comunes, actas transcritas a partir de grabaciones de voz y chat entre vecinos, y cada semana presentaba los avances en formato pitch. Antes de eso cofundé Byolux, una startup de software para la optimización de bioprocesos que entró en la aceleradora Fusión Startups.

    In my Software Engineering and Professional Practice course I was project manager of an 18-person team. We built an app for residents' associations with incident reporting, shared-space booking, meeting minutes transcribed from voice recordings and a residents' chat, and I pitched our progress every week. I also co-founded Byolux, a software startup for bioprocess optimisation that joined the Fusión Startups accelerator.

    Sobre míAbout me

    Ahora mismo estoy en Getafe como Digital Governance Trainee en Airbus Defence and Space, dentro del programa Airbus Discover. Apoyo iniciativas de gobierno del dato en Air Power Services y colaboro en el desarrollo de soluciones de IA.

    I'm currently in Getafe as a Digital Governance Trainee at Airbus Defence and Space, part of the Airbus Discover programme. I support data governance initiatives in Air Power Services and help develop AI solutions.

    Lo compagino con el Máster en Ingeniería del Software de la Universidad de Sevilla, centrado en cloud, datos y gestión TI, y con un máster en analítica de datos de la Universidad Camilo José Cela.

    Alongside it I'm studying the Master's in Software Engineering at the University of Seville, focused on cloud, data and IT management, and a Master's in data analytics at Camilo José Cela University.

    Hablo español, inglés con nivel C1 y alemán con nivel B1. Antes de todo esto pasé un verano trabajando en un resort de Utah y otro dando clases de surf en Cantabria.

    I speak Spanish, English at C1 level and German at B1. Before all this I spent a summer working at a resort in Utah and another one teaching surf in Cantabria.

    1. Airbus Defence and SpaceDigital Governance Trainee, desde octubre de 2026Digital Governance Trainee, since October 2026
    2. ByoluxCofundador y responsable de software, 2026Co-founder and software lead, 2026
    3. Ayuntamiento de Sevilla (ITAS)Seville City Council (ITAS)Prácticas en la plataforma Smart City, 2026Internship on the Smart City platform, 2026
    4. Universidad de SevillaGrado en Ingeniería del Software, 2022 a 2026BSc Software Engineering, 2022 to 2026

    Si tienes un proyecto o una oferta en backend, datos o IA, me encantará hablar contigo.

    If you have a project or a role in backend, data or AI, I'd love to hear from you.

    [email protected]