Proyectos / Datos y software

Trabajo con datos.
Desarrollo
aplicaciones.

Una aplicación para adaptar un CV, otra para registrar gastos, un mapa de trenes. Aquí puedes ver cómo funcionan los proyectos que desarrollo y qué hay detrás de cada uno.

Ver los proyectos

Una selección de mi trabajo

Portada de Aplica Jobs con un ejemplo de adaptación de CV
Portada local · el resultado mostrado es un ejemplo de la propia página.

Aplica Jobs

En desarrollo local

Un mismo CV no cuenta lo mismo para todas las ofertas. Aplica compara tu perfil con el puesto y prepara un PDF adaptado, sin volver a empezar de cero.

Python · FastAPI · PostgreSQL · Claude

Qué hay detrás — Aplica Jobs

De la oferta al PDF

El perfil se guarda para reutilizarlo entre candidaturas. La aplicación analiza el encaje con una oferta y genera el documento en segundo plano con Celery y ReportLab.

Una decisión importante

El análisis de encaje se corrige con reglas en código después de la respuesta del modelo. No todo se deja a criterio de la IA.

Hasta dónde llega

Funciona en local. La oferta se introduce como texto; todavía no hay pagos ni una demo pública. Las capturas muestran la portada y sus ejemplos, no una candidatura real.

Ver otra imagen
Mapa de Madrid con trenes identificados por línea
Captura de la demo pública · 5 de octubre de 2026.

Renfe Madrid

Demo disponible

Un mapa para ver dónde están los trenes de Cercanías de Madrid. Puedes filtrar por línea y consultar la información de cada tren.

JavaScript · Leaflet · GTFS-RT

Qué hay detrás — Renfe Madrid

Del dato al mapa

Los datos de RENFE se convierten en marcadores sobre OpenStreetMap. El navegador consulta los feeds a través de funciones que actúan como intermediarias.

Lo que depende de otros

La información depende del servicio de RENFE. El mapa no es un planificador de rutas ni sustituye los avisos del operador.

Texto, audio o ticket enviado por Telegram; procesamiento en segundo plano y gastos reunidos en el panel web.
Del mensaje al registro de gastos · esquema del funcionamiento documentado.

Tikeo

Proyecto privado

Apuntar un gasto sin salir de Telegram. Tikeo recibe texto, audios y fotos de tickets, y reúne los movimientos en un panel web.

FastAPI · PostgreSQL · Celery · Telegram

Qué hay detrás — Tikeo

Entrada distinta, mismo registro

La transcripción de audio y la lectura de tickets se procesan en tareas de fondo. Los movimientos se guardan en PostgreSQL y se consultan desde el panel.

Alcance documentado

El código es privado. El registro y el panel están documentados como implementados; presupuestos, detección de suscripciones e informes semanales quedaron descartados. No los presento como funciones disponibles.

En lo que estoy trabajando

EU Flight Delay Predictor

Adquisición de datos

Estoy preparando los datos para estudiar cómo se propagan los retrasos entre aeropuertos europeos. El modelo vendrá después: primero hay que construir un conjunto de datos fiable.

Python · pandas · Open-Meteo · Eurostat

Qué hay detrás — EU Flight Delay Predictor

Lo que existe hoy

Hay datos de contexto de meteorología y pasajeros, con validaciones todavía en curso. La adquisición de datos de vuelos está pendiente.

La pregunta pendiente

El objetivo es comparar modelos tabulares con un Transformer que incorpore el contexto de otros vuelos. Todavía no hay un modelo entrenado, una API ni un dashboard.

Archivo de proyectos

Más trabajos, a otra escala. Abre un proyecto para ver los detalles.

UAM RAG AgentProyecto de máster

Preguntar sobre los materiales del máster en lugar de buscar documento por documento. Mi TFM conecta una búsqueda vectorial con un modelo de lenguaje.

LlamaIndex · MongoDB · Groq · Streamlit

Dar contexto a la respuesta

La pregunta se representa como un vector. MongoDB recupera diez fragmentos de los materiales del máster y Groq genera la respuesta usando ese contexto.

Lo que puedes revisar

El repositorio contiene la implementación y la interfaz en Streamlit. La demo falló al arrancar en la revisión del 5 de octubre de 2026; por eso muestro un esquema y enlazo al código.

Ver imagen del proyecto

Task TrackerCódigo disponible

Una cuadrícula anual para marcar los días en que cumples una tarea. Cada cuenta guarda su progreso en una base de datos para consultarlo desde otro dispositivo.

FastAPI · PostgreSQL · JavaScript

Dónde vive el progreso

El navegador muestra la cuadrícula; una API FastAPI y PostgreSQL guardan los datos por cuenta. También se puede exportar e importar el progreso como JSON.

Acceso actual

La antigua demo de Railway no está disponible. El enlace lleva al repositorio para consultar el proyecto.

HangmanCódigo disponible

El ahorcado de siempre, con palabras en inglés y una definición como pista. Un ejercicio pequeño para conectar la lógica de una partida con una API.

Python · FastAPI · JavaScript

Si falla el diccionario

Las palabras y definiciones se consultan en servicios externos. Hay una lista local de respaldo para que una caída de esas APIs no impida empezar una partida.

Qué se puede revisar

El repositorio incluye el backend, la interfaz y pruebas de la lógica del juego.

Jeff-ChefCódigo disponible

Dime qué ingredientes tienes y buscamos una receta española que encaje. La interfaz recoge la lista y una función en AWS consulta el modelo.

React · AWS Lambda · OpenAI

La integración

React gestiona los ingredientes y presenta la receta. Una función en AWS Lambda hace la llamada a OpenAI, separada del código que recibe el navegador.

Qué esperar

La receta depende de la respuesta del modelo. El proyecto permite revisar la conexión entre la interfaz, la función en AWS y OpenAI.

EMT MadridCódigo disponible

Otra forma de mirar la movilidad en Madrid: estaciones de BiciMAD y paradas de autobús sobre un mapa.

Python · JavaScript · Leaflet

El trabajo

Una exploración de datos de movilidad con mapas de calor e información asociada a estaciones y paradas. El código permite revisar cómo se conectan los datos y la visualización.

Estado del enlace

Enlazo al repositorio; no presento una demo como servicio disponible.

Mascotas en MadridNotebook

Un análisis exploratorio del censo de mascotas y las áreas caninas por distrito. El trabajo está en un notebook, con sus gráficos y pasos de análisis.

pandas · Seaborn · Matplotlib

Alcance

Es una exploración descriptiva de los datos, no un modelo predictivo ni una aplicación web.

California HousingNotebook

Un ejercicio de clustering con datos de vivienda de California: agrupar observaciones y examinar qué tienen en común.

pandas · NumPy · scikit-learn

Alcance

El notebook recoge el análisis. Los grupos son el resultado de una técnica de segmentación, no una valoración del mercado inmobiliario.

JALTCódigo disponible

Un proyecto pequeño para el seguimiento de leads comerciales, hecho con HTML, CSS y JavaScript.

HTML · CSS · JavaScript

Un alcance pequeño

El repositorio contiene la interfaz para seguir leads. Se puede revisar como un proyecto acotado de HTML, CSS y JavaScript.

Sobre mí

Primero, entender el problema.

Jefferson Ortiz

Trabajo en aplicaciones que conectan datos, APIs e interfaces. Aquí reúno proyectos de distinto alcance: desde una herramienta pequeña hasta una aplicación con procesos en segundo plano.

Me interesa que puedas ver qué he construido, pero también las decisiones que hay detrás y lo que todavía falta por resolver.

Consultar mi CV

Código que se pueda cambiar

Separo responsabilidades cuando cambian por motivos distintos. Una abstracción tiene que resolver un problema que ya existe.

Dejar rastro de las decisiones

Documento lo que pruebo, por qué elijo una opción y qué queda pendiente. También cuando algo no sale como esperaba.

Contacto

Podemos hablar.

Si quieres comentar un proyecto o contarme en qué estás trabajando, escríbeme.