Francisco Manuel Olmedo Cortés
Physicist · AI Engineer · architecture, AI and deployment
Córdoba, Andalucía, España
About
Physicist. I design the architecture and build the AI side of applications that actually work: RAG, agents and multi-tenant backends, deployed and maintained on servers we run ourselves. I run the AI side at Hagalink. I come from computational physics, so before putting a model into production I ask what is being measured and with what error.
Experience
AI Engineer
Hagalink · Córdoba, Andalucía, España
- Design the architecture, build the AI side and a good part of the backend across five client projects since January 2026.
- Grant-eligibility assistant for rural development group technicians: regulatory evidence retrieval with mandatory human validation, a modular monolith in NestJS, one tenant per group, and pseudonymization of personal data. The architecture is mine.
- Official chatbot for the Feria de Córdoba (Córdoba City Council) and Cruz de GuIA for Holy Week: WhatsApp agents with hybrid RAG (dense and sparse retrieval fused with RRF over Qdrant), ten tools exposed through MCP, and evaluation with Ragas.
+ Show more (6) - Show less
- Early-warning alerts and geospatial analytics from open sources, for security management teams in the real-estate sector. Reused feedpulse (my open-source service) as the ingestion pipeline, with NestJS, PostgreSQL and RabbitMQ.
- HagaBox, the conversational inbox platform with agents: designed the full architecture (DDD, multi-tenant with RLS in PostgreSQL, seven AI providers), built the entire AI side and a good part of the backend.
- HagaTime, working-time tracking (RDL 8/2019, Spanish working-time law) with an immutable ledger and signed exports for labor inspections: the design is mine, and I developed a large part of the backend in FastAPI.
- Internal tools for the team: AI-based lead capture, an in-house OpenAI-compatible proxy over Groq, and development-effort tracking.
- Production deployment and operation on our own servers (VPS) with Docker, Traefik, CI/CD and Dokploy.
- AI training for the teams of a software development company: code assistants, agent configuration (harness), RAG and evaluation.
Research Collaborator · Part-time
Universidad de Córdoba / CIEMAT · Córdoba / Madrid, España
- Ongoing research in thermoluminescence dosimetry (TLD-100) using machine learning methods, continuing the line of my 2023 publication, in collaboration with Hagalink on the development side.
- Results accepted for presentation at the Annual Meeting of the Spanish Nuclear Society (SNE), October 2026; enrolling in the doctoral programme in the next admission round.
Technical Contributor · AI & Platform
Cordob.ai · Córdoba, Andalucía, España
- Year-round conversational assistant for city information, built on the same RAG and agent foundation as the festival chatbots. In development, not yet released.
- Initial product mockup and internal dashboard in Python.
AI Engineer
BlakIA · Córdoba, Andalucía, España
- Led the technical side: agents and RAG for public and private clients.
- Official chatbot for the Feria de Córdoba (Córdoba City Council) and the Cruz de GuIA chatbot for Holy Week (Asociación de Cofradías Cordobesas), running through the busiest days of the festivities.
- WhatsApp booking systems with agents and RAG, in collaboration with Visionarius Agency, including one for a spa in Panama.
+ Show more (3) - Show less
- Rotating shift scheduling for a food venue using a genetic algorithm: encoded the constraints and objective function starting from the classic nurse scheduling problem.
- HagaTime (working-time tracking) and BlakBill (invoice data extraction and organization for accounting firms, with RD 1619 validation, Spanish invoicing regulation) were born here and continue at Hagalink.
- Emprende UCO award and acceleration at El Patio (Andalucía Open Future). Transitioned products, clients and responsibilities to Hagalink.
Scientific Software Engineer
Universidad de Córdoba (Confidential Project) · Córdoba, Andalucía, España
- Refactored a legacy scientific simulator (ray tracing) applying Clean Architecture; introduced version control and good development practices in the group.
- Built an optimizer based on genetic algorithms for the design of crystals (disordered optical media).
R&D Software Engineer
IDENER.AI · Sevilla, Andalucía, España
- Applied deep learning models for time-series forecasting, optimizing energy production estimates.
- Translated theoretical scientific requirements into efficient, functional code in an agile R&D environment.
Scientific Developer
Universidad de Córdoba / CIEMAT · Madrid / Córdoba, España
- Developed a physical simulator based on the numerical resolution of differential equations (Runge-Kutta) in Python, deployed as a web tool via Streamlit.
- Synthetic data generation: used the simulator as an oracle to generate high-precision datasets for deep learning.
- Designed and trained fully-connected neural networks for kinetic parameter assessment, which led to a peer-reviewed publication.
+ Show more (1) - Show less
- Taught an introductory Python course for scientific computing, AI and data science.
Selected Projects
- feedpulse · TypeScript · NestJS · Hexagonal · DDD · BullMQ · Kubernetes · KEDA · Observability
RSS monitoring service built for a Hagalink project, tracking more than 10,000 sources with keyword alerts, now folded into a wider platform. Hexagonal architecture with DDD, three runtimes (api, scheduler and worker), BullMQ queues, Prometheus metrics, and Kubernetes manifests with KEDA that CI applies to a real cluster on every change.
- Hybrid-RAG-example · Python · RAG · RRF · Clean Architecture
Resource I built to teach hybrid RAG to my students: semantic and keyword retrieval fused with RRF, with Clean Architecture.
- llm-pii-redactor · TypeScript · PII · GDPR · LLM boundary
Reference implementation of PII redaction at the boundary with the AI provider: the application depends on an interface, and a redacting wrapper keeps personal data inside the backend. Designed for GDPR-sensitive public-sector deployments.
- snow-mcrt · Python · Monte Carlo · Radiative transfer · Validation
Monte Carlo photon transport in snow, written from first principles and validated against closed-form radiative transfer and published albedo curves. 3-D engine with a Fresnel surface and measured detection of buried objects.
+ Show more (3) - Show less
- AI-image-Detector · Python · Computer vision · Image forensics · PCA · scikit-learn
Detection of AI-generated images from the sensor's optical signature (PRNU and demosaicing): Gx and Gy gradients, PCA on the eigenvalues of its covariance matrix, DCT and color analyzers, and Random Forest. API in FastAPI, front end on GitHub Pages.
- Agent-skills-POC · Python · Agent Skills · MCP · Progressive Disclosure
Framework-agnostic Agent Skills with Progressive Disclosure, MCP and a stateless reasoning loop. Built to train my team in agentic AI. Clean Architecture.
- claudeops-tui · Go · Bubbletea · SQLite · DX
Local TUI to monitor usage, cost and tasks for my code assistants (Go + Bubbletea + SQLite).
Publications
- Correlation between figure of merit function and deviation in the assessment of kinetic parameters in realistic TLD-100 behavior using fully-connected neural networks
Radiation Physics and Chemistry (Elsevier) · Sep 2023
Education
Master in Physical Technology: Research and Applications
Universidad de Córdoba
Bachelor (Degree) in Physics
Universidad de Córdoba
Specialist in Artificial Intelligence
IUNIT Centro Universitario
Programme in Entrepreneurship, mentoring and project validation
EmprendeUCO – Diputación de Córdoba
Technical Skills
Architecture & backend
- Clean / Hexagonal / DDD
- Python
- TypeScript (NestJS)
- Go
- FastAPI
- PostgreSQL
- Multi-tenant
AI in production
- RAG (hybrid, RRF)
- Agents
- Agent orchestration (LangGraph, LangChain, Mastra)
- MCP (Model Context Protocol)
- Embeddings
- Vector databases (Qdrant, pgvector)
- RAG and LLM evaluation (Ragas, Langfuse)
- PII anonymisation
- Human-in-the-loop
- Synthetic data
- n8n
- Make
Infrastructure & deployment
- Docker
- Docker Compose
- Traefik
- CI/CD (GitHub Actions)
- Dokploy
- Linux / VPS
- Prometheus
- OpenTelemetry
Computational physics & models
- Monte Carlo methods (implemented from scratch)
- Genetic algorithms
- Numerical methods
- Neural networks
- Autoencoders
- Computer vision
- PyTorch
- scikit-learn
Languages
- Spanish · Native
- English · Professional Working Proficiency (B2)
Francisco Manuel Olmedo Cortés
Físico · Ingeniero de IA · arquitectura, IA y despliegue
Córdoba, Andalucía, España
Sobre mí
Físico. Diseño la arquitectura y construyo la parte de IA de aplicaciones que acaban funcionando: RAG, agentes y backends multi-tenant, desplegados y mantenidos en servidores propios. Llevo la IA en Hagalink. Vengo de la física computacional, así que antes de meter un modelo pregunto qué se mide y con qué error.
Experiencia
Ingeniero de IA
Hagalink · Córdoba, Andalucía, España
- Diseño la arquitectura, construyo la parte de IA y buena parte del backend en cinco proyectos de cliente desde enero de 2026.
- Asistente de subvencionabilidad para técnicos de grupos de desarrollo rural: recuperación de evidencia normativa con validación humana obligatoria, monolito modular en NestJS, un tenant por grupo y seudonimización de datos personales. La arquitectura es mía.
- Chatbot oficial de la Feria de Córdoba (Ayuntamiento de Córdoba) y Cruz de GuIA para la Semana Santa: agentes sobre WhatsApp con RAG híbrido (recuperación densa y dispersa fusionadas con RRF sobre Qdrant), diez herramientas expuestas por MCP y evaluación con Ragas.
+ Ver más (6) - Ver menos
- Alertas tempranas y analítica geoespacial a partir de fuentes abiertas, para equipos de dirección de seguridad en el sector inmobiliario. Reutilicé feedpulse (mi servicio open source) como pipeline de ingesta, con NestJS, PostgreSQL y RabbitMQ.
- HagaBox, la plataforma de inbox conversacional con agentes: diseñé la arquitectura completa (DDD, multi-tenant con RLS en PostgreSQL, siete proveedores de IA), hice toda la parte de IA y buena parte del backend.
- HagaTime, registro de jornada laboral (RDL 8/2019) con ledger inmutable y exportación firmada para inspección: el diseño es mío y desarrollé gran parte del backend en FastAPI.
- Herramientas internas para el equipo: captación de leads con IA, un proxy propio compatible con OpenAI sobre Groq y medición del esfuerzo de desarrollo.
- Despliegue y operación en producción sobre servidores propios (VPS) con Docker, Traefik, CI/CD y Dokploy.
- Formación en IA a los equipos de una empresa de desarrollo de software: asistentes de código, configuración de agentes (harness), RAG y evaluación.
Investigador colaborador · Tiempo parcial
Universidad de Córdoba / CIEMAT · Córdoba / Madrid, España
- Investigación en curso en dosimetría termoluminiscente (TLD-100) con métodos de aprendizaje automático, continuando la línea de mi publicación de 2023, en colaboración con Hagalink para desarrollo.
- Resultados aceptados para presentación en la Reunión Anual de la Sociedad Nuclear Española (SNE), octubre de 2026; matriculación en el programa de doctorado en la próxima convocatoria.
Technical Contributor · IA y plataforma
Cordob.ai · Córdoba, Andalucía, España
- Asistente conversacional de información de la ciudad para todo el año, con la misma base de RAG y agentes que los chatbots de las fiestas. En desarrollo, aún sin publicar.
- Maqueta inicial del producto y dashboard interno en Python.
Ingeniero de IA
BlakIA · Córdoba, Andalucía, España
- Llevé la parte técnica: agentes y RAG para clientes públicos y privados.
- Chatbot oficial de la Feria de Córdoba (Ayuntamiento de Córdoba) y chatbot Cruz de GuIA para la Semana Santa (Asociación de Cofradías Cordobesas), funcionando durante los días de más gente.
- Sistemas de reserva por WhatsApp con agentes y RAG, en colaboración con Visionarius Agency, entre ellos el de un spa en Panamá.
+ Ver más (3) - Ver menos
- Planificación de turnos rotativos para un local de comida con un algoritmo genético: codifiqué las restricciones y la función objetivo partiendo del problema clásico de la enfermera.
- Aquí nacieron HagaTime (registro de jornada) y BlakBill (extracción y organización de datos de facturas para gestorías, con validación del RD 1619), que continúan en Hagalink.
- Premio Emprende UCO y aceleración en El Patio (Andalucía Open Future). Traspasé productos, clientes y responsabilidades a Hagalink.
Ingeniero de Software Científico
Universidad de Córdoba (Proyecto Confidencial) · Córdoba, Andalucía, España
- Refactoricé un simulador científico legacy (ray tracing) aplicando Clean Architecture; introduje control de versiones y buenas prácticas de desarrollo en el grupo.
- Construí un optimizador basado en algoritmos genéticos para el diseño de cristales (medios ópticos desordenados).
Ingeniero de Software I+D
IDENER.AI · Sevilla, Andalucía, España
- Apliqué modelos de Deep Learning para la predicción de series temporales, optimizando las estimaciones de producción energética.
- Traducción de requerimientos científicos teóricos a código eficiente y funcional en un entorno ágil de I+D.
Desarrollador científico
Universidad de Córdoba / CIEMAT · Madrid / Córdoba, España
- Desarrollo de un simulador físico basado en la resolución numérica de ecuaciones diferenciales (Runge-Kutta) en Python, desplegado como herramienta web mediante Streamlit.
- Generación de datos sintéticos: uso del simulador como oráculo para generar datasets de alta precisión orientados a Deep Learning.
- Diseño y entrenamiento de redes neuronales densas para la evaluación de parámetros cinéticos, que acabó en una publicación revisada por pares.
+ Ver más (1) - Ver menos
- Impartición de un curso introductorio de Python para scientific computing, IA y ciencia de datos.
Proyectos Destacados
- feedpulse · TypeScript · NestJS · Hexagonal · DDD · BullMQ · Kubernetes · KEDA · Observabilidad
Servicio de monitorización RSS que construí para un proyecto de Hagalink, siguiendo más de 10.000 fuentes con alertas por palabra clave, y que hoy va dentro de una plataforma más amplia. Arquitectura hexagonal con DDD, tres runtimes (api, scheduler y worker), colas BullMQ, métricas Prometheus y manifiestos de Kubernetes con KEDA que el CI aplica a un clúster real en cada cambio.
- Hybrid-RAG-example · Python · RAG · RRF · Clean Architecture
Recurso que hice para enseñar RAG híbrido a mis alumnos: recuperación semántica y por palabras clave fusionadas con RRF, con Clean Architecture.
- llm-pii-redactor · TypeScript · PII · RGPD · Frontera con el LLM
Implementación de referencia de la redacción de PII en la frontera con el proveedor de IA: la aplicación depende de una interfaz y un wrapper redactor mantiene los datos personales dentro del backend. Pensado para despliegues de sector público sensibles al RGPD.
- snow-mcrt · Python · Monte Carlo · Transferencia radiativa · Validación
Transporte Monte Carlo de fotones en nieve, escrito desde primeros principios y validado contra transferencia radiativa en forma cerrada y curvas de albedo publicadas. Motor 3-D con superficie de Fresnel y detección medida de objetos enterrados.
+ Ver más (3) - Ver menos
- AI-image-Detector · Python · Visión por computador · Análisis forense de imagen · PCA · scikit-learn
Detección de imágenes generadas por IA a partir de la firma óptica del sensor (PRNU y demosaicing): gradientes Gx y Gy, PCA sobre los autovalores de su matriz de covarianza, analizadores DCT y de color, y Random Forest. API en FastAPI y front en GitHub Pages.
- Agent-skills-POC · Python · Agent Skills · MCP · Progressive Disclosure
Agent Skills agnósticos del framework, con Progressive Disclosure, MCP y un bucle de razonamiento sin estado. Construido para formar a mi equipo en IA agéntica. Clean Architecture.
- claudeops-tui · Go · Bubbletea · SQLite · DX
TUI local para monitorizar uso, coste y tareas de mis asistentes de código (Go + Bubbletea + SQLite).
Publicaciones
- Correlation between figure of merit function and deviation in the assessment of kinetic parameters in realistic TLD-100 behavior using fully-connected neural networks
Radiation Physics and Chemistry (Elsevier) · sept 2023
Educación
Máster en Tecnología Física: Investigación y Aplicaciones
Universidad de Córdoba
Grado en Física
Universidad de Córdoba
Especialista en Inteligencia Artificial
IUNIT Centro Universitario
Programa en Emprendimiento, mentoría y validación de proyectos
EmprendeUCO – Diputación de Córdoba
Habilidades Técnicas
Arquitectura & backend
- Clean / Hexagonal / DDD
- Python
- TypeScript (NestJS)
- Go
- FastAPI
- PostgreSQL
- Multi-tenant
IA en producción
- RAG (híbrido, RRF)
- Agentes
- Orquestación de agentes (LangGraph, LangChain, Mastra)
- MCP (Model Context Protocol)
- Embeddings
- Bases vectoriales (Qdrant, pgvector)
- Evaluación de RAG y LLM (Ragas, Langfuse)
- Anonimización de PII
- Human-in-the-loop
- Datos sintéticos
- n8n
- Make
Infraestructura & despliegue
- Docker
- Docker Compose
- Traefik
- CI/CD (GitHub Actions)
- Dokploy
- Linux / VPS
- Prometheus
- OpenTelemetry
Física computacional & modelos
- Métodos de Montecarlo (implementados desde cero)
- Algoritmos genéticos
- Métodos numéricos
- Redes neuronales
- Autoencoders
- Visión por computador
- PyTorch
- scikit-learn
Idiomas
- Español · Nativo
- Inglés · Competencia Profesional (B2)