alvaro@portfolio:~
~/alvarobash

alvaro@uma:~$ whoami

Álvaro Luque Torres

alvaro@uma:~$ cat rol.txt

Ingeniero informático // ingeniería de datos · desarrollo de software · ciberseguridad (GRC) Software engineer // data engineering · software development · cybersecurity (GRC)

Graduado en Ingeniería Informática por la Universidad de Málaga y cursando el Máster con especialidad en Ingeniería de Datos. Me gusta llevar los datos de la ingesta a la app que los usa, tanto en empresa como en proyectos propios. Ahora además me especializo en gobierno, riesgo y cumplimiento, donde voy a hacer prácticas. Computer Engineering graduate from the University of Málaga, studying the Master's with a specialization in Data Engineering. I like taking data from ingestion to the app that uses it, professionally and in my own projects. I'm now also specializing in governance, risk and compliance, where I'm about to start an internship.

próximamente: prácticas en GRCcoming up: GRC internship

# lo que más uso# what I use most
Python · Java · SQL · Spring Boot · Quarkus · MongoDB · Docker · Pandas

alvaro@uma:~$ git log --carrera

#ExperienciaExperience

03/2025 – 05/2025 (dedalus)

Software Engineering Intern (Desarrollo Web)Software Engineering Intern (Web Development)

Dedalus · software para el sector sanitariohealthcare software

  • Integración de estándares sanitarios HL7 y FHIR: parseo de mensajes HL7 y mapeo a recursos FHIR con HAPI FHIR en Spring Boot.Healthcare standards integration: parsing HL7 messages and mapping them to FHIR resources with HAPI FHIR in Spring Boot.
  • APIs REST con respuesta en XML y autenticación básica, en Spring Boot y en Quarkus.REST APIs with XML responses and basic authentication, in both Spring Boot and Quarkus.
  • Migración de un servicio proxy de Open Liberty a Quarkus.Migration of a proxy service from Open Liberty to Quarkus.
  • Dos aplicaciones CRUD full stack con Quarkus, Angular y MySQL, con filtrado, ordenación, paginación y vista de detalle.Two full-stack CRUD applications with Quarkus, Angular and MySQL, including filtering, sorting, pagination and detail views.
  • Pruebas unitarias con JUnit y Mockito; frontend (Angular + Nginx) y backend (Quarkus) en Docker.Unit tests with JUnit and Mockito; frontend (Angular + Nginx) and backend (Quarkus) in Docker.

alvaro@uma:~$ tree formacion/

#FormaciónEducation

formacion/
├──Máster en Ingeniería InformáticaMSc in Computer Engineering 2025–hoynow [en cursoin progress]Especialidad en Ingeniería de Datos · Universidad de MálagaData Engineering specialization · University of Málaga
├──Grado en Ingeniería InformáticaBSc in Computer Engineering 2021–2025Universidad de MálagaUniversity of Málaga
├──Certificado de Extensión Universitaria en CiberseguridadUniversity Extension Certificate in CybersecurityDiplomaDiploma
└──IdiomasLanguages: español (nativo)Spanish (native), inglés (B1)English (B1)Buena comprensión lectora de documentación técnica en inglésComfortable reading technical documentation in English

alvaro@uma:~$ cat skills.json

#CompetenciasSkills

{  "lenguajes":      ["Java", "Python", "SQL", "R"],  // aprendiendolearning: TypeScript, Kotlin  "datos":          ["Pandas", "Scikit-learn", "Plotly", "ggplot2", "dplyr", "Jupyter"],  // Grafana  "frameworks":     ["Spring Boot", "Quarkus", "Angular"],  // Next.js  "bases_de_datos": ["MySQL", "MongoDB"],  // Supabase  "herramientas":   ["Docker", "Nginx", "Git", "JUnit", "Mockito"],  "sanidad":        ["HL7", "FHIR"],  "ciber_grc":      [],  // aprendiendolearning: ISO 27001, ENS, RGPDGDPR  "cloud":          []   // nocionesbasics: GCP, AWS, Azure, Vercel}

"verde" = lo uso con solturaconfident  ·  // comentariocomment = aprendiendo o nocioneslearning or basics

alvaro@uma:~$ ls proyectos/

#ProyectosProjects

Mapa de calor de los primeros minutos sobre el mapa de League of Legends
App de escritorio · Código abiertoDesktop app · Open source

Jungle Clear Tracker

Mide automáticamente el primer clear de jungla en League of Legends: cuándo muere cada campamento, el orden, los scuttles y un mapa de los primeros 7 minutos, solo con las APIs locales del juego. Automatically measures the first jungle clear in League of Legends: when each camp dies, the order, scuttles and a map of the first 7 minutes, using only the game's local APIs.

  • Captura en directo del oro: cada monstruo es un salto, así que los tiempos tienen ~0,5 s de precisión.Live gold capture: every monster kill is a jump, so timings are accurate to ~0.5 s.
  • Tras la partida automatiza el replay con una cámara cenital y proyección geométrica para reconstruir la posición de los 10 campeones (error mediano ~45 unidades frente al timeline de Riot).After the game it drives the replay with a top-down camera and geometric projection to rebuild all 10 champions' positions (median error ~45 units vs Riot's timeline).
  • Mapas de calor, rutas y winrate por ruta; segundo plano, arranque con Windows y exe con asistente.Heatmaps, routes and win rate by route; runs in the background, starts with Windows, single exe with a setup wizard.

Python · Tkinter · matplotlib · REST APIs · PyInstaller

Panel de vida: pestaña de League of Legends con KPIs y gráficos
Ingeniería de datos · Dashboard webData engineering · Web dashboard

Panel de vidaLife dashboardLIVE

760+partidasgames
600+días de pasosdays of steps
38panelespanels
  • ETL en Python: API de Riot y exportaciones de Google Drive a MongoDB, con sincronización incremental.Python ETL: Riot API and Google Drive exports into MongoDB, synced incrementally.
  • Paneles reordenables, filtros por rol, campeón, cola, lado y hora, y mapa de jungla interactivo.Rearrangeable panels, filters by role, champion, queue, side and time, and an interactive jungle map.

Next.js · TypeScript · Tailwind · Recharts · MongoDB · Python

Traze: ocho estilos de sticker de la misma carrera
App Android · RunningAndroid app · Running

Traze

Convierte una carrera en un sticker con fondo transparente para pegarlo sobre tus fotos en stories de Instagram. El editor es el producto. Turns a run into a transparent sticker to place over your photos in Instagram stories. The editor is the product.

  • Importa desde Strava (OAuth) o desde ficheros GPX/TCX de cualquier app de running.Imports from Strava (OAuth) or from GPX/TCX files from any running app.
  • Estilos, marcos, colores por ritmo, pulso o pendiente, presets, y exportación a PNG o a vídeo animado de 15 s.Styles, frames, colours by pace, heart rate or slope, presets, and export to PNG or a 15-second animated video.

Kotlin · Android · Strava API

Montilla Pasión Go: portada con la cuenta atrás al Domingo de Ramos
Web · En producciónWebsite · In production

Montilla Pasión Go

La web de la Semana Santa de Montilla: hermandades, itinerarios y recorridos para seguirla en la calle. The website for Holy Week in Montilla: brotherhoods, schedules and routes to follow the processions in the street.

  • Recorridos sobre mapa y estado de cada hermandad en directo (sin salir, en la calle, recogida).Routes on a map and each brotherhood's live status (not out yet, in the street, back in).
  • Panel de administración, base de datos en Supabase y SEO (sitemap, metadatos).Admin panel, Supabase database and SEO (sitemap, metadata).

Next.js · TypeScript · Supabase · Leaflet · Tailwind

Trabajo Fin de GradoBachelor's thesis

Análisis de logs de usuariosUser log analysis

Estudio del comportamiento de los usuarios de una aplicación web de diseño de interiores a partir de sus logs. A study of how users behave in an interior design web app, based on its logs.

  • Procesamiento y análisis en notebooks, con geolocalización de IPs por país y comunidad autónoma.Processing and analysis in notebooks, with IP geolocation by country and region.
  • Dashboards en Grafana servidos en modo kiosko (Node.js + Docker) y documentación con Quarto.Grafana dashboards served in kiosk mode (Node.js + Docker) and documentation built with Quarto.

Python · Jupyter · Grafana · Docker · Quarto

alvaro@uma:~$ ./contacto.sh

#¿Hablamos?Let's talk

¿Tienes una propuesta o quieres saber más de algún proyecto? Escríbeme.Have an offer or want to know more about a project? Drop me a line.

alvaro31032003@gmail.com

alvaro@uma:~$