- {featuredRecommendation && (
-
- )}
+
+ {featuredRecommendations.map((recommendation) => (
+
+ ))}
+
{secondaryRecommendations.map((recommendation) => (
diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json
index 39cd91a..da5f6a7 100644
--- a/src/i18n/messages/en.json
+++ b/src/i18n/messages/en.json
@@ -1,7 +1,7 @@
{
"meta": {
"title": "Adrián Montes - Portfolio",
- "description": "Telematics Engineering student focusing on clean architectures, XR/3D/AR visualizations of software metrics, and pragmatic UX."
+ "description": "Telematics Engineer and Master's student in Telecommunications Engineering at UPM. Author of Code-XR, an open-source VS Code extension for XR software visualization published at IEEE VISSOFT 2025."
},
"nav": {
"home": "Portfolio",
@@ -20,41 +20,19 @@
},
"hero": {
"name": "Adrián Montes Linares",
- "headline": "Telematics Engineer & Systems N2 / Cloud Intern",
+ "headline": "Telematics Engineer · Master's student in Telecommunications Engineering",
"headlineSub": "Systems, Cloud, Full-Stack and XR developer tools",
- "aboutMe": "Telematics Engineer from URJC, graduated in January 2026, with experience in software development, systems, and data visualization. Author of Code-XR, an open-source VS Code extension published at IEEE VISSOFT 2025, focused on visual analysis of code metrics in XR environments. Currently finishing an extracurricular internship in Cloud & Systems N2 (March-August 2026) and incoming student of the Master's Degree in Telecommunication Engineering at UPM, specializing in Machine Learning and Big Data, with interest in software analytics, code repositories, and applied research.",
- "title": "Adrián Montes Linares",
- "subtitle1": "Telematics Engineering — Student",
- "subtitle2": "Backend • Frontend • Software Engineering • XR",
- "tagline": "Author of Code-XR, an open-source VS Code extension for XR visualization of software metrics. Focused on clean architectures and developer experience.",
+ "aboutMe": "Telematics Engineer from URJC, graduated in January 2026, with experience in software development, systems, and data visualization. Author of Code-XR, an open-source VS Code extension published at IEEE VISSOFT 2025, focused on visual analysis of code metrics in XR environments. Currently enrolled in the Master's Degree in Telecommunications Engineering at UPM, specializing in Machine Learning and Big Data, while continuing an extracurricular Cloud & Systems N2 internship at SATEC. Interested in software analytics, code repositories, and applied research.",
"ctaProjects": "View Projects",
"ctaResume": "Download CV",
- "ctaContact": "Contact",
- "alternativeTitle": "Telematics Engineering",
"availabilityLabel": "Currently active",
- "availabilityText": "SATEC internship, Mar-Aug 2026",
+ "availabilityText": "SATEC internship, since Mar 2026",
"location": "Madrid, ES",
- "language": "English B2 (TOEIC)",
- "metaLine": "Madrid, ES - English B2 (TOEIC)",
- "highlights": {
- "vissoft": "VISSOFT - @ - ICSME - 2025 - (accepted) - · - Code-XR - (OSS)",
- "downloads": "Code-XR: 300+ downloads",
- "availability": "Available: internships (up to 550h) or full-time"
- },
- "topStack": {
- "typescript": "TypeScript",
- "nodejs": "Node.js",
- "express": "Express",
- "react": "React",
- "tailwind": "Tailwind",
- "azure": "Azure"
- },
"featuredProject": {
"badge": "Featured",
"codeXr": {
"title": "Code-XR",
"subtitle": "VS Code extension: your codebase as a 3D city you walk through as you edit",
- "metric": "300+ downloads",
"vissoft": "Linked to VISSOFT @ ICSME 2025"
},
"obt": {
@@ -71,17 +49,12 @@
"doi": "DOI"
},
"publication": "Publication",
- "credentials": {
- "vissoft": "VISSOFT 2025",
- "codeXr": "Code-XR (Open Source)",
- "stack": "TypeScript - · - Next.js - · - Tailwind"
- },
"kicker": "Portfolio",
"metrics": {
"current": {
"label": "Current",
"value": "Cloud & Systems N2",
- "detail": "Mar-Aug 2026"
+ "detail": "SATEC · since Mar 2026"
},
"research": {
"label": "Research",
@@ -89,46 +62,40 @@
"detail": "Code-XR publication"
},
"next": {
- "label": "Next",
- "value": "UPM 2026",
- "detail": "Telecom Engineering master"
+ "label": "Master's",
+ "value": "UPM · in progress",
+ "detail": "Telecommunications · ML & Big Data"
}
}
},
- "about": {
- "title": "About me",
- "p1": "I am a Telematics Engineering student (URJC) and the author of Code-XR, an ecosystem that connects static analysis with immersive visualization of metrics.",
- "p2": "Our work has been accepted for VISSOFT 2025 (co-located with ICSME 2025). I am preparing the thesis and consolidating documentation and tooling for its evolution.",
- "p3": "I care about clean code, modular architecture, and a strong DX/UX. I aim for systems that scale and can be maintained."
- },
"profile": {
"title": "About Me",
"subtitle": "A clearer view of where my engineering profile is heading",
"imageAlt": "Adrián Montes profile photo",
"name": "Adrián Montes Linares",
- "role": "Telematics Engineer with experience in Cloud, Systems N2, Full-Stack development, and XR software visualization",
+ "role": "Telematics Engineer and Master's student in Telecommunications Engineering (UPM), with experience in Cloud, Systems N2, Full-Stack development, and XR software visualization",
"bio1": "I am a Telematics Engineer from Universidad Rey Juan Carlos, graduated in January 2026. My profile combines software development, systems, cloud operations, and data visualization, with a practical focus on maintainable tools and clear documentation.",
- "bio2": "I am currently finishing an extracurricular internship at SATEC in Cloud & Systems N2, working around support requests, incidents, infrastructure operation, virtual machines, vulnerability patching, SSH/RDP access, and tools such as Nagios, AMS, Veeam Backup, NetApp, and VMware.",
+ "bio2": "I am currently combining the master's degree at UPM with an extracurricular internship at SATEC in Cloud & Systems N2, where I work on support requests, incidents, infrastructure operation, virtual machines, vulnerability patching, SSH/RDP access, and tools such as Nagios, AMS, Veeam Backup, NetApp, and VMware.",
"stats": {
"experience": "Experience",
"experienceValue": "SATEC Cloud & Systems N2, VBGroup Full-Stack internship, Code-XR, VISSOFT 2025",
"education": "Education",
- "educationValue": "Telematics Engineering (URJC, Jan 2026), Telecom Engineering master at UPM from Sep 2026",
+ "educationValue": "Telematics Engineering (URJC, Jan 2026) · Master's in Telecommunications Engineering at UPM, in progress since Sep 2026",
"focus": "Current Focus",
"focusValue": "Systems, cloud, developer tooling, XR visualization, Machine Learning, and Big Data",
"languages": "Languages",
- "languagesValue": "Spanish native, English B2 TOEIC, preparing C1",
+ "languagesValue": "Spanish native, English C1 (Oxford Test of English Advanced)",
"mindset": "Mindset",
"mindsetValue": "Technical curiosity, Quality-driven approach, Continuous learning"
},
"kicker": "Profile",
"operatingKicker": "Operating profile",
- "bio3": "Before that, during my curricular internship at VBGroup, I worked as a Junior Full-Stack Developer on OBT, an internal platform built with Express.js, TypeScript, Cosmos DB, Azure Blob Storage, React, Vite, and Tailwind. My next academic step is the Master's Degree in Telecommunication Engineering at UPM, with a specialization path in Machine Learning and Big Data.",
+ "bio3": "Before that, during my curricular internship at VBGroup, I worked as a Junior Full-Stack Developer on OBT, an internal platform built with Express.js, TypeScript, Cosmos DB, Azure Blob Storage, React, Vite, and Tailwind. I am now enrolled in the Master's Degree in Telecommunications Engineering at UPM, following the Machine Learning and Big Data specialization.",
"pills": {
"satec": "SATEC Cloud & Systems N2",
"vbgroup": "VBGroup Full-Stack internship",
- "upm": "UPM master: ML & Big Data",
- "english": "Working towards English C1"
+ "upm": "UPM Master's · ML & Big Data",
+ "english": "English C1 (Oxford)"
},
"snapshotTitle": "Current direction",
"snapshotBody": "Systems and cloud give me operational depth; full-stack development gives me product delivery; XR, software analytics, Machine Learning, and Big Data define the research and tooling direction I want to keep building.",
@@ -142,8 +109,8 @@
"value": "Code-XR / VISSOFT 2025"
},
"english": {
- "label": "Language goal",
- "value": "English C1 in progress"
+ "label": "Language certificate",
+ "value": "English C1 · Oxford Test of English"
}
},
"transition": {
@@ -153,13 +120,6 @@
"skills": {
"title": "Skills",
"subtitle": "A practical map of technologies grouped by use, context, and current depth.",
- "topStack": {
- "typescript": "TypeScript",
- "react": "React",
- "express": "Express",
- "postgresql": "PostgreSQL",
- "azure": "Azure"
- },
"actions": {
"viewDetails": "View details",
"close": "Close",
@@ -179,13 +139,6 @@
"nextGroup": "Next category",
"prevGroup": "Previous category"
},
- "tags": {
- "academic": "Academic",
- "internship": "Internship",
- "open_source": "Open Source",
- "regular_use": "Regular use",
- "production_like": "Production-like"
- },
"proficiency": {
"basic": "Basic",
"intermediate": "Intermediate",
@@ -193,18 +146,6 @@
},
"proficiencyLabel": "Level",
"highlights": "Key points",
- "purposeTags": {
- "learning": "Learning",
- "academic": "Academic",
- "internship": "Internship",
- "open_source": "Open Source",
- "production_like": "Production-like"
- },
- "usedIn": {
- "projects": "Projects",
- "journey": "Journey",
- "codeXr": "Code-XR"
- },
"categories": {
"languages": {
"label": "Languages",
@@ -236,7 +177,7 @@
},
"other": {
"label": "Other",
- "desc": "Workflow accelerators and AI-assisted practices."
+ "desc": "AI-assisted development, prompt engineering, and MCP integrations."
}
},
"items": {
@@ -347,10 +288,10 @@
},
"express": {
"label": "Express.js",
- "summary": "Used to prototype lightweight APIs for web projects.",
- "purpose": "Fast Node.js API prototyping.",
- "h1": "Built middleware pipelines for validation.",
- "h2": "Integrated services with client applications."
+ "summary": "Node.js framework behind the OBT backend at VBGroup and lightweight APIs in personal projects.",
+ "purpose": "REST APIs for internal tools and prototypes.",
+ "h1": "Built the OBT REST API with TypeScript, Swagger docs, and JWT-secured flows.",
+ "h2": "Composed middleware pipelines for validation and role-based access."
},
"react": {
"label": "React",
@@ -520,6 +461,20 @@
"h1": "Generated scaffolds and refactors quickly.",
"h2": "Reviewed suggestions for accuracy and style."
},
+ "claudeCode": {
+ "label": "Claude Code",
+ "summary": "Anthropic's agentic coding tool, used for AI-assisted development from the terminal and the editor.",
+ "purpose": "AI-assisted development with an agentic workflow.",
+ "h1": "Used it alongside GitHub Copilot for refactors, reviews, and repetitive engineering tasks.",
+ "h2": "Reviewed every generated change before merging it."
+ },
+ "mcp": {
+ "label": "MCP (Model Context Protocol)",
+ "summary": "Open protocol for connecting AI assistants to external tools, data, and services through MCP servers.",
+ "purpose": "Integrate MCP servers into AI-assisted development workflows.",
+ "h1": "Integrated MCP servers so assistants reach project tools and data in a controlled way.",
+ "h2": "Configured and maintained server setups for day-to-day development."
+ },
"azureDevOps": {
"label": "Microsoft Azure DevOps",
"summary": "CI/CD and project-delivery platform used for pipelines, repos and boards.",
@@ -543,10 +498,10 @@
},
"nestjs": {
"label": "Nest.js",
- "summary": "Structured Node.js framework used in the OBT backend.",
- "purpose": "Backend architecture with modules, controllers, and services.",
- "h1": "Designed REST API modules with a clean server-side structure.",
- "h2": "Connected documentation, validation, and cloud-facing services."
+ "summary": "Structured Node.js framework with modules, controllers, and services for typed APIs.",
+ "purpose": "Modular, typed backend architecture.",
+ "h1": "Familiar with its module, controller, and service layering.",
+ "h2": "Complements Express.js for REST API work in TypeScript."
},
"swagger": {
"label": "Swagger",
@@ -698,7 +653,7 @@
},
"backend": {
"summary": "Backend skills focused on API design, Node.js ecosystems, documentation, and practical delivery in project work.",
- "h1": "Express, Nest.js, REST APIs, Swagger, JWT, and Django cover the main service patterns represented in projects.",
+ "h1": "Express, REST APIs, Swagger, JWT, and Django cover the main service patterns represented in projects, with Nest.js as a complementary framework.",
"h2": "The emphasis is maintainable endpoints, clear contracts, and integration with frontend and storage layers."
},
"frontend": {
@@ -785,19 +740,6 @@
"gallery": "Project gallery",
"kicker": "Selected work"
},
- "experience": {
- "title": "Experience / Collaborations",
- "intro": "My focus has been academic-applied development and personal projects with measurable impact."
- },
- "education": {
- "title": "Education",
- "urjc": "URJC — Telematics Engineering (2020–2025)",
- "bach": "Baccalaureate — Science & Technology (prior to university entry)"
- },
- "publications": {
- "title": "Publications / Merits",
- "item1": "Paper accepted for VISSOFT 2025 (co-located with ICSME 2025): visualization of software metrics in XR. Preparing camera-ready."
- },
"journey": {
"title": "Professional Journey",
"subtitle": "Experience, education, and key milestones",
@@ -812,7 +754,7 @@
"work": "Work Experience",
"project": "Featured Projects",
"achievement": "Achievements & Publications",
- "learning": "Learning Goals"
+ "learning": "Learning & Certifications"
},
"entries": {
"urjc": {
@@ -849,24 +791,29 @@
}
},
"vissoft": {
- "role": "Paper Accepted — VISSOFT 2025",
+ "role": "Distinguished Artifact Award — VISSOFT 2025",
"org": "IEEE VISSOFT @ ICSME 2025",
- "desc": "Research paper on XR visualization of software metrics accepted for presentation at international conference."
+ "desc": "Research paper on XR visualization of software metrics, published at IEEE VISSOFT 2025 (co-located with ICSME 2025) and recognized with the Distinguished Artifact Award."
+ },
+ "hackathonUrjc": {
+ "role": "Hackathon URJC 2024 — circular-economy challenge",
+ "org": "Universidad Rey Juan Carlos (URJC)",
+ "desc": "First Hackathon URJC (March 1–2, 2024, Móstoles campus). I worked on the ideation, prototyping, and final pitch of a university token model for the circular-economy challenge: students earn tokens by contributing (tutoring, notes, activities) and spend them on campus services."
},
- "cambridgeC1": {
- "role": "Cambridge English C1 Certification - in progress",
- "org": "Cambridge University",
- "desc": "Working toward professional English fluency across technical and business contexts, with reading, writing, speaking, and listening preparation in progress."
+ "oxfordC1": {
+ "role": "Oxford Test of English Advanced — C1 certified",
+ "org": "Oxford University Press · certified by the University of Oxford",
+ "desc": "Exam taken on September 4, 2026: overall CEFR C1 (146/170). Verifiable by third parties through the official Oxford University Press service."
},
"satecCloud": {
"role": "Systems N2 / Cloud Engineer",
"org": "SATEC (Extracurricular Internship)",
- "desc": "Extracurricular internship focused on systems, N2 support, cloud environments, infrastructure operation, and professional documentation. Started on March 14, 2026."
+ "desc": "Extracurricular internship focused on systems, N2 support, cloud environments, infrastructure operation, and professional documentation. Started on March 14, 2026, renewed in September 2026, and currently combined with the master's degree at UPM."
},
"masterTelecomUPM": {
- "role": "Master's Degree in Telecommunication Engineering - starts Sep 2026",
- "org": "Universidad Politecnica de Madrid (UPM)",
- "desc": "Official master's degree starting in September 2026 at UPM, with a path toward Machine Learning and Big Data within Telecommunication Engineering."
+ "role": "Master's Degree in Telecommunications Engineering",
+ "org": "Universidad Politécnica de Madrid (UPM)",
+ "desc": "Official master's degree at UPM, started in September 2026, following the Machine Learning and Big Data specialization within Telecommunications Engineering. Combined with the extracurricular Cloud & Systems N2 internship at SATEC."
}
},
"kicker": "Career stream",
@@ -938,6 +885,10 @@
"name": "GitHub Copilot",
"desc": "AI pair programmer that helps me write code faster and explore new patterns."
},
+ "claudeCode": {
+ "name": "Claude Code",
+ "desc": "Anthropic's agentic coding tool. AI-assisted development from the terminal, extended with MCP servers."
+ },
"windowsTerminal": {
"name": "Windows Terminal",
"desc": "Modern terminal with tabs, panes, and GPU-accelerated rendering."
@@ -999,6 +950,17 @@
"formal": "Formal reference"
},
"recommendations": {
+ "satec-luis": {
+ "role": "Director of Cloud Services",
+ "relationship": "Reference from SATEC's Cloud Services management",
+ "summary": "Luis endorses my work during the Cloud & Systems N2 internship at SATEC and recommends me for any position. His letter highlights a proactive, responsible, and committed attitude, a strong capacity to learn and adapt quickly to changes and challenges, adaptability to different contexts and ways of working, and a natural integration into the team, fostering collaboration, respect, and effective communication.",
+ "strengths": {
+ "learning": "Fast learner",
+ "teamwork": "Teamwork",
+ "adaptability": "Adaptability",
+ "attitude": "Proactive attitude"
+ }
+ },
"vbgroup-abner": {
"role": "Development Leader",
"relationship": "Direct supervisor during VBGroup internship",
@@ -1036,26 +998,32 @@
"certificates": {
"title": "Certifications & Achievements",
"subtitle": "Professional credentials, publications, and recognitions",
+ "kicker": "Professional record",
"completed": "Completed",
"inProgress": "In Progress",
"planned": "Planned",
"statusDescriptions": {
"completed": "Degrees, awards, and confirmed academic recognitions.",
- "in-progress": "Credentials currently being prepared.",
- "planned": "Next academic step already planned."
+ "in-progress": "Degrees and credentials currently in progress.",
+ "planned": "Upcoming credentials on the roadmap."
},
- "cambridgeC1": "Cambridge English C1 Certificate",
+ "oxfordC1": "Oxford Test of English Advanced — CEFR C1",
+ "oxfordC1Issuer": "Oxford University Press · certified by the University of Oxford",
"verify": "Verify",
- "learnMore": "Learn more",
- "masterTelecomUPM": "Master's Degree in Telecommunication Engineering",
- "masterTelecomUPMIssuer": "Universidad Politecnica de Madrid (UPM)",
+ "masterTelecomUPM": "Master's Degree in Telecommunications Engineering",
+ "masterTelecomUPMIssuer": "Universidad Politécnica de Madrid (UPM)",
"telematicsDegree": "BSc in Telematics Engineering",
"telematicsDegreeIssuer": "Universidad Rey Juan Carlos (URJC)",
- "codeXrAward": "Code-XR — VISSOFT 2025 Poster Track Award",
- "codeXrAwardIssuer": "ICSME 2025 Awards",
+ "codeXrAward": "Code-XR — Distinguished Artifact Award, VISSOFT 2025",
+ "codeXrAwardIssuer": "IEEE VISSOFT 2025 (co-located with ICSME 2025)",
"greenhouseHighDistinction": "GreenHouse — AST High Distinction",
- "greenhouseHighDistinctionIssuer": "Ampliacion de Sistemas Telematicos (URJC)",
- "stepByStepHighDistinction": "StepByStep — LSMO High Distinction",
- "stepByStepHighDistinctionIssuer": "Laboratorio de Sistemas Moviles y Ubicuos (URJC)"
+ "greenhouseHighDistinctionIssuer": "Ampliación de Sistemas Telemáticos (URJC)",
+ "stepByStepHighDistinction": "StepByStep — LSMU High Distinction",
+ "stepByStepHighDistinctionIssuer": "Laboratorio de Sistemas Móviles y Ubicuos (URJC)"
+ },
+ "language": {
+ "browserHint": "This site is written in English and Spanish. Your browser can translate it into your language.",
+ "dismiss": "Dismiss",
+ "skipToContent": "Skip to main content"
}
}
diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json
index 2821624..a469f82 100644
--- a/src/i18n/messages/es.json
+++ b/src/i18n/messages/es.json
@@ -1,7 +1,7 @@
{
"meta": {
"title": "Adrián Montes - Portfolio",
- "description": "Estudiante de Ingeniería Telemática enfocado en arquitecturas limpias, visualizaciones XR/3D/AR de métricas de software y UX pragmática."
+ "description": "Ingeniero Telemático y estudiante del Máster en Ingeniería de Telecomunicación en la UPM. Autor de Code-XR, extensión open source de VS Code para la visualización XR de métricas de software, publicada en IEEE VISSOFT 2025."
},
"nav": {
"home": "Portfolio",
@@ -20,41 +20,19 @@
},
"hero": {
"name": "Adrián Montes Linares",
- "headline": "Ingeniero Telematico y Sistemas N2 / Cloud",
+ "headline": "Ingeniero Telemático · Estudiante del Máster en Ingeniería de Telecomunicación",
"headlineSub": "Sistemas, Cloud, Full-Stack y herramientas XR",
- "aboutMe": "Ingeniero Telemático por la URJC, titulado en enero de 2026, con experiencia en desarrollo software, sistemas y visualización de datos. Autor de Code-XR, extensión open source para VS Code publicada en IEEE VISSOFT 2025, orientada al análisis visual de métricas de código en entornos XR. Actualmente finalizando prácticas extracurriculares en Cloud & Sistemas N2 (marzo-agosto de 2026) y próximo estudiante del Máster Universitario en Ingeniería de Telecomunicación en la UPM, intensificación en Aprendizaje Automático y Big Data, con interés en analítica de software, repositorios de código e investigación aplicada.",
- "title": "Adrián Montes Linares",
- "subtitle1": "Ingeniería Telemática — Estudiante",
- "subtitle2": "Backend • Frontend • Ingeniería de Software • XR",
- "tagline": "Autor de Code-XR, una extensión open-source de VS Code para visualización XR de métricas de software. Enfocado en arquitecturas limpias y experiencia de desarrollador.",
+ "aboutMe": "Ingeniero Telemático por la URJC, titulado en enero de 2026, con experiencia en desarrollo software, sistemas y visualización de datos. Autor de Code-XR, extensión open source para VS Code publicada en IEEE VISSOFT 2025, orientada al análisis visual de métricas de código en entornos XR. Actualmente cursando el Máster Universitario en Ingeniería de Telecomunicación en la UPM, con intensificación en Aprendizaje Automático y Big Data, compaginándolo con prácticas extracurriculares en Cloud & Sistemas N2 de SATEC, con interés en analítica de software, repositorios de código e investigación aplicada.",
"ctaProjects": "Ver Proyectos",
"ctaResume": "Descargar CV",
- "ctaContact": "Contacto",
- "alternativeTitle": "Ingeniería Telemática",
"availabilityLabel": "Actualmente activo",
- "availabilityText": "Prácticas en SATEC, mar-ago 2026",
+ "availabilityText": "Prácticas en SATEC, desde mar 2026",
"location": "Madrid, ES",
- "language": "Ingles B2 (TOEIC)",
- "metaLine": "Madrid, ES - Ingles B2 (TOEIC)",
- "highlights": {
- "vissoft": "VISSOFT - @ - ICSME - 2025 - (aceptado) - · - Code-XR - (OSS)",
- "downloads": "Code-XR: +300 descargas",
- "availability": "Disponible: prácticas (hasta 550h) o contrato"
- },
- "topStack": {
- "typescript": "TypeScript",
- "nodejs": "Node.js",
- "express": "Express",
- "react": "React",
- "tailwind": "Tailwind",
- "azure": "Azure"
- },
"featuredProject": {
"badge": "Destacado",
"codeXr": {
"title": "Code-XR",
"subtitle": "Extensión de VS Code: tu código como una ciudad 3D que recorres mientras editas",
- "metric": "+300 descargas",
"vissoft": "Vinculado a VISSOFT @ ICSME 2025"
},
"obt": {
@@ -71,17 +49,12 @@
"doi": "DOI"
},
"publication": "Publicación",
- "credentials": {
- "vissoft": "VISSOFT 2025",
- "codeXr": "Code-XR (Open Source)",
- "stack": "TypeScript - · - Next.js - · - Tailwind"
- },
"kicker": "Portfolio",
"metrics": {
"current": {
"label": "Actual",
"value": "Cloud & Sistemas N2",
- "detail": "mar-ago 2026"
+ "detail": "SATEC · desde mar 2026"
},
"research": {
"label": "Investigación",
@@ -89,46 +62,40 @@
"detail": "Publicación Code-XR"
},
"next": {
- "label": "Siguiente",
- "value": "UPM 2026",
- "detail": "Máster de Telecomunicación"
+ "label": "Máster",
+ "value": "UPM · en curso",
+ "detail": "Telecomunicación · ML y Big Data"
}
}
},
- "about": {
- "title": "Sobre mí",
- "p1": "Soy estudiante de Ingeniería Telemática (URJC) y autor de Code-XR, un ecosistema que conecta análisis estático con visualización inmersiva de métricas.",
- "p2": "Nuestro trabajo ha sido aceptado para VISSOFT 2025 (co-localizado con ICSME 2025). Estoy preparando la tesis y consolidando documentación y herramientas para su evolución.",
- "p3": "Me preocupo por el código limpio, la arquitectura modular y un DX/UX sólido. Busco sistemas que escalen y puedan mantenerse."
- },
"profile": {
"title": "Sobre mí",
"subtitle": "Una lectura más clara de hacia dónde evoluciona mi perfil técnico",
"imageAlt": "Foto de perfil de Adrián Montes",
"name": "Adrián Montes Linares",
- "role": "Ingeniero Telemático con experiencia en Cloud, Sistemas N2, desarrollo Full-Stack y visualización XR de software",
+ "role": "Ingeniero Telemático y estudiante del Máster en Ingeniería de Telecomunicación (UPM), con experiencia en Cloud, Sistemas N2, desarrollo Full-Stack y visualización XR de software",
"bio1": "Soy Ingeniero Telemático por la Universidad Rey Juan Carlos, titulado en enero de 2026. Mi perfil combina desarrollo software, sistemas, operación cloud y visualización de datos, con un enfoque práctico en herramientas mantenibles y documentación clara.",
- "bio2": "Actualmente estoy finalizando prácticas extracurriculares en SATEC dentro de Cloud & Sistemas N2, trabajando con requests, incidencias, operación de infraestructura, máquinas virtuales, parcheo de vulnerabilidades, acceso SSH/RDP y herramientas como Nagios, AMS, Veeam Backup, NetApp y VMware.",
+ "bio2": "Actualmente compagino el máster en la UPM con prácticas extracurriculares en SATEC dentro de Cloud & Sistemas N2, donde trabajo con requests, incidencias, operación de infraestructura, máquinas virtuales, parcheo de vulnerabilidades, acceso SSH/RDP y herramientas como Nagios, AMS, Veeam Backup, NetApp y VMware.",
"stats": {
"experience": "Experiencia",
"experienceValue": "SATEC Cloud & Sistemas N2, prácticas Full-Stack en VBGroup, Code-XR, VISSOFT 2025",
"education": "Formación",
- "educationValue": "Ingeniería Telemática (URJC, ene 2026), máster de Telecomunicación en UPM desde sep 2026",
+ "educationValue": "Ingeniería Telemática (URJC, ene 2026) · Máster en Ingeniería de Telecomunicación en la UPM, en curso desde sep 2026",
"focus": "Enfoque actual",
"focusValue": "Sistemas, cloud, developer tooling, visualización XR, Machine Learning y Big Data",
"languages": "Idiomas",
- "languagesValue": "Español nativo, inglés B2 TOEIC, preparando C1",
+ "languagesValue": "Español nativo, inglés C1 (Oxford Test of English Advanced)",
"mindset": "Mentalidad",
"mindsetValue": "Curiosidad técnica, orientación a calidad, aprendizaje continuo"
},
"kicker": "Perfil",
"operatingKicker": "Perfil operativo",
- "bio3": "Antes, durante mis prácticas curriculares en VBGroup, trabajé como Desarrollador Full-Stack Junior en OBT, una plataforma interna construida con Express.js, TypeScript, Cosmos DB, Azure Blob Storage, React, Vite y Tailwind. Mi siguiente paso académico es el Máster Universitario en Ingeniería de Telecomunicación en la UPM, con intensificación en Aprendizaje Automático y Big Data.",
+ "bio3": "Antes, durante mis prácticas curriculares en VBGroup, trabajé como Desarrollador Full-Stack Junior en OBT, una plataforma interna construida con Express.js, TypeScript, Cosmos DB, Azure Blob Storage, React, Vite y Tailwind. En paralelo curso el Máster Universitario en Ingeniería de Telecomunicación en la UPM, con intensificación en Aprendizaje Automático y Big Data.",
"pills": {
"satec": "SATEC Cloud & Sistemas N2",
"vbgroup": "Prácticas Full-Stack en VBGroup",
- "upm": "Máster UPM: ML & Big Data",
- "english": "Preparando inglés C1"
+ "upm": "Máster UPM · ML y Big Data",
+ "english": "Inglés C1 (Oxford)"
},
"snapshotTitle": "Dirección actual",
"snapshotBody": "Sistemas y cloud me dan profundidad operativa; el full-stack me da capacidad de entrega de producto; XR, analítica de software, Machine Learning y Big Data marcan la línea de investigación y tooling que quiero seguir construyendo.",
@@ -142,8 +109,8 @@
"value": "Code-XR / VISSOFT 2025"
},
"english": {
- "label": "Objetivo de idioma",
- "value": "Inglés C1 en progreso"
+ "label": "Certificado de idioma",
+ "value": "Inglés C1 · Oxford Test of English"
}
},
"transition": {
@@ -153,13 +120,6 @@
"skills": {
"title": "Competencias",
"subtitle": "Mapa práctico de tecnologías agrupadas por uso, contexto y profundidad actual.",
- "topStack": {
- "typescript": "TypeScript",
- "react": "React",
- "express": "Express",
- "postgresql": "PostgreSQL",
- "azure": "Azure"
- },
"actions": {
"viewDetails": "Ver detalles",
"close": "Cerrar",
@@ -179,13 +139,6 @@
"nextGroup": "Siguiente categoría",
"prevGroup": "Categoría anterior"
},
- "tags": {
- "academic": "Académico",
- "internship": "Prácticas",
- "open_source": "Código abierto",
- "regular_use": "Uso habitual",
- "production_like": "Similar a producción"
- },
"proficiency": {
"basic": "Básico",
"intermediate": "Intermedio",
@@ -193,18 +146,6 @@
},
"proficiencyLabel": "Nivel",
"highlights": "Puntos clave",
- "purposeTags": {
- "learning": "Aprendizaje",
- "academic": "Académico",
- "internship": "Prácticas",
- "open_source": "Código abierto",
- "production_like": "Similar a producción"
- },
- "usedIn": {
- "projects": "Proyectos",
- "journey": "Trayectoria",
- "codeXr": "Code-XR"
- },
"categories": {
"languages": {
"label": "Lenguajes",
@@ -236,7 +177,7 @@
},
"other": {
"label": "Otros",
- "desc": "Aceleradores de flujo de trabajo y prácticas con IA."
+ "desc": "Desarrollo asistido por IA, ingeniería de prompts e integraciones MCP."
}
},
"items": {
@@ -347,10 +288,10 @@
},
"express": {
"label": "Express.js",
- "summary": "Usado para prototipar APIs ligeras.",
- "purpose": "Prototipado rápido de APIs Node.",
- "h1": "Construí middlewares de validación.",
- "h2": "Integré servicios con el cliente."
+ "summary": "Framework de Node.js usado en el backend de OBT (VBGroup) y en APIs ligeras de proyectos personales.",
+ "purpose": "APIs REST para herramientas internas y prototipos.",
+ "h1": "Construí la API REST de OBT con TypeScript, documentación Swagger y flujos asegurados con JWT.",
+ "h2": "Encadené middlewares de validación y de acceso por roles."
},
"react": {
"label": "React",
@@ -520,6 +461,20 @@
"h1": "Generé scaffolds y refactors rápido.",
"h2": "Revisé sugerencias por precisión."
},
+ "claudeCode": {
+ "label": "Claude Code",
+ "summary": "Herramienta de programación agéntica de Anthropic, usada para desarrollo asistido por IA desde la terminal y el editor.",
+ "purpose": "Desarrollo asistido por IA con flujo agéntico.",
+ "h1": "Lo combiné con GitHub Copilot en refactors, revisiones y tareas repetitivas de ingeniería.",
+ "h2": "Revisé cada cambio generado antes de integrarlo."
+ },
+ "mcp": {
+ "label": "MCP (Model Context Protocol)",
+ "summary": "Protocolo abierto para conectar asistentes de IA con herramientas, datos y servicios externos mediante servidores MCP.",
+ "purpose": "Integrar servidores MCP en flujos de desarrollo asistido por IA.",
+ "h1": "Integré servidores MCP para que los asistentes accedan de forma controlada a herramientas y datos del proyecto.",
+ "h2": "Configuré y mantuve servidores MCP para el desarrollo del día a día."
+ },
"azureDevOps": {
"label": "Microsoft Azure DevOps",
"summary": "Plataforma de CI/CD y entrega para pipelines, repos y planificación.",
@@ -543,10 +498,10 @@
},
"nestjs": {
"label": "Nest.js",
- "summary": "Framework Node.js estructurado usado en el backend de OBT.",
- "purpose": "Arquitectura backend con módulos, controladores y servicios.",
- "h1": "Diseñé módulos de API REST con estructura limpia.",
- "h2": "Conecté documentación, validación y servicios cloud."
+ "summary": "Framework estructurado de Node.js con módulos, controladores y servicios para APIs tipadas.",
+ "purpose": "Arquitectura backend modular y tipada.",
+ "h1": "Conozco su organización en módulos, controladores y servicios.",
+ "h2": "Complementa a Express.js en APIs REST con TypeScript."
},
"swagger": {
"label": "Swagger",
@@ -698,7 +653,7 @@
},
"backend": {
"summary": "Backend centrado en diseño de APIs, ecosistema Node.js, documentación y entrega práctica en proyectos.",
- "h1": "Express, Nest.js, REST APIs, Swagger, JWT y Django cubren los principales patrones de servicios.",
+ "h1": "Express, REST APIs, Swagger, JWT y Django cubren los principales patrones de servicios de los proyectos, con Nest.js como framework complementario.",
"h2": "El foco está en endpoints mantenibles, contratos claros e integración con frontend y almacenamiento."
},
"frontend": {
@@ -727,7 +682,7 @@
"h2": "El valor está menos en las etiquetas y más en estructura, trazabilidad e iteración."
},
"other": {
- "summary": "Prácticas de IA asistida y aceleración de flujo utilizadas como apoyo al trabajo de ingeniería.",
+ "summary": "Prácticas de desarrollo asistido por IA y de aceleración del flujo de trabajo, utilizadas como apoyo al trabajo de ingeniería.",
"h1": "Estas herramientas ayudan a explorar, revisar y avanzar más rápido sin sustituir criterio técnico.",
"h2": "El foco está en asistencia práctica, validación clara y mantener los resultados anclados al contexto real."
}
@@ -785,19 +740,6 @@
"gallery": "Galería del proyecto",
"kicker": "Trabajo seleccionado"
},
- "experience": {
- "title": "Experiencia / Colaboraciones",
- "intro": "Mi enfoque ha sido desarrollo académico-aplicado y proyectos personales con impacto medible."
- },
- "education": {
- "title": "Formación",
- "urjc": "URJC — Ingeniería Telemática (2020–2025)",
- "bach": "Bachillerato — Ciencias y Tecnología (previo al ingreso universitario)"
- },
- "publications": {
- "title": "Publicaciones / Méritos",
- "item1": "Artículo aceptado para VISSOFT 2025 (co-localizado con ICSME 2025): visualización de métricas de software en XR. Preparando camera-ready."
- },
"journey": {
"title": "Trayectoria Profesional",
"subtitle": "Experiencia, formación y logros clave",
@@ -812,7 +754,7 @@
"work": "Experiencia laboral",
"project": "Proyectos destacados",
"achievement": "Logros y publicaciones",
- "learning": "Objetivos de Aprendizaje"
+ "learning": "Aprendizaje y certificaciones"
},
"entries": {
"urjc": {
@@ -849,24 +791,29 @@
}
},
"vissoft": {
- "role": "Paper Aceptado — VISSOFT 2025",
+ "role": "Distinguished Artifact Award — VISSOFT 2025",
"org": "IEEE VISSOFT @ ICSME 2025",
- "desc": "Artículo de investigación sobre visualización XR de métricas de software aceptado para presentación en conferencia internacional."
+ "desc": "Artículo de investigación sobre visualización XR de métricas de software, publicado en IEEE VISSOFT 2025 (junto a ICSME 2025) y reconocido con el Distinguished Artifact Award."
+ },
+ "hackathonUrjc": {
+ "role": "Hackatón URJC 2024 — reto de economía circular",
+ "org": "Universidad Rey Juan Carlos (URJC)",
+ "desc": "Primer Hackatón URJC (1 y 2 de marzo de 2024, campus de Móstoles). Trabajé en la ideación, el prototipado y el pitch final de un modelo de tokens universitarios para el reto de economía circular: los estudiantes ganan tokens por contribuir (tutorías, apuntes, actividades) y los gastan en servicios del campus."
},
- "cambridgeC1": {
- "role": "Certificación Cambridge English C1 - en progreso",
- "org": "Universidad de Cambridge",
- "desc": "Trabajo en progreso para avanzar hacia fluidez profesional en inglés en contextos técnicos y de negocio, preparando lectura, escritura, expresión oral y comprensión auditiva."
+ "oxfordC1": {
+ "role": "Oxford Test of English Advanced — C1 certificado",
+ "org": "Oxford University Press · certificado por la Universidad de Oxford",
+ "desc": "Examen realizado el 4 de septiembre de 2026: nivel global C1 del MCER (146/170). Verificable por terceros a través del servicio oficial de Oxford University Press."
},
"satecCloud": {
"role": "Ingeniero de Sistemas N2 / Cloud",
- "org": "SATEC (Practicas extracurriculares)",
- "desc": "Practicas extracurriculares centradas en sistemas, soporte N2, entornos cloud, operacion de infraestructura y documentacion profesional. Inicio el 14 de marzo de 2026."
+ "org": "SATEC (Prácticas extracurriculares)",
+ "desc": "Prácticas extracurriculares centradas en sistemas, soporte N2, entornos cloud, operación de infraestructura y documentación profesional. Comenzaron el 14 de marzo de 2026, se renovaron en septiembre de 2026 y actualmente las compagino con el máster en la UPM."
},
"masterTelecomUPM": {
- "role": "Máster Universitario en Ingeniería de Telecomunicación - comienza sep 2026",
- "org": "Universidad Politecnica de Madrid (UPM)",
- "desc": "Máster oficial con inicio en septiembre de 2026 en la UPM, con camino de intensificación hacia Aprendizaje Automático y Big Data dentro de Ingeniería de Telecomunicación."
+ "role": "Máster Universitario en Ingeniería de Telecomunicación",
+ "org": "Universidad Politécnica de Madrid (UPM)",
+ "desc": "Máster oficial en la UPM, iniciado en septiembre de 2026, con intensificación en Aprendizaje Automático y Big Data dentro de Ingeniería de Telecomunicación. Lo compagino con las prácticas extracurriculares en Cloud & Sistemas N2 de SATEC."
}
},
"kicker": "Trayectoria técnica",
@@ -938,6 +885,10 @@
"name": "GitHub Copilot",
"desc": "Programador IA que me ayuda a escribir código más rápido y explorar nuevos patrones."
},
+ "claudeCode": {
+ "name": "Claude Code",
+ "desc": "Herramienta de programación agéntica de Anthropic. Desarrollo asistido por IA desde la terminal, ampliado con servidores MCP."
+ },
"windowsTerminal": {
"name": "Windows Terminal",
"desc": "Terminal moderna con pestañas, paneles y renderizado acelerado por GPU."
@@ -999,6 +950,17 @@
"formal": "Referencia formal"
},
"recommendations": {
+ "satec-luis": {
+ "role": "Director de Servicios Cloud",
+ "relationship": "Referencia de la dirección de Servicios Cloud de SATEC",
+ "summary": "Luis avala mi desempeño profesional durante las prácticas en Cloud & Sistemas N2 de SATEC y me recomienda para cualquier puesto. Su carta destaca una actitud proactiva, responsable y comprometida; una gran capacidad de aprendizaje y de adaptación rápida a los cambios y desafíos; adaptabilidad a distintos contextos y dinámicas de trabajo; y una integración natural en el equipo, fomentando la colaboración, el respeto y la comunicación efectiva.",
+ "strengths": {
+ "learning": "Aprendizaje rápido",
+ "teamwork": "Trabajo en equipo",
+ "adaptability": "Adaptabilidad",
+ "attitude": "Actitud proactiva"
+ }
+ },
"vbgroup-abner": {
"role": "Responsable de Desarrollo",
"relationship": "Supervisor directo durante las prácticas en VBGroup",
@@ -1036,26 +998,32 @@
"certificates": {
"title": "Certificaciones y Logros",
"subtitle": "Credenciales profesionales, publicaciones y reconocimientos",
+ "kicker": "Historial profesional",
"completed": "Completado",
- "inProgress": "En Progreso",
+ "inProgress": "En curso",
"planned": "Planeado",
"statusDescriptions": {
- "completed": "Grado, premios y reconocimientos academicos confirmados.",
- "in-progress": "Credenciales actualmente en preparacion.",
- "planned": "Siguiente paso academico ya planificado."
+ "completed": "Grado, premios y reconocimientos académicos confirmados.",
+ "in-progress": "Titulaciones y credenciales actualmente en curso.",
+ "planned": "Próximas credenciales en el horizonte."
},
- "cambridgeC1": "Certificado Cambridge English C1",
+ "oxfordC1": "Oxford Test of English Advanced — C1 (MCER)",
+ "oxfordC1Issuer": "Oxford University Press · certificado por la Universidad de Oxford",
"verify": "Verificar",
- "learnMore": "Más información",
- "masterTelecomUPM": "Master Universitario en Ingenieria de Telecomunicacion",
- "masterTelecomUPMIssuer": "Universidad Politecnica de Madrid (UPM)",
- "telematicsDegree": "Grado en Ingenieria Telematica",
+ "masterTelecomUPM": "Máster Universitario en Ingeniería de Telecomunicación",
+ "masterTelecomUPMIssuer": "Universidad Politécnica de Madrid (UPM)",
+ "telematicsDegree": "Grado en Ingeniería Telemática",
"telematicsDegreeIssuer": "Universidad Rey Juan Carlos (URJC)",
- "codeXrAward": "Code-XR — Premio Poster Track VISSOFT 2025",
- "codeXrAwardIssuer": "ICSME 2025 Awards",
- "greenhouseHighDistinction": "GreenHouse — Matricula de Honor en AST",
- "greenhouseHighDistinctionIssuer": "Ampliacion de Sistemas Telematicos (URJC)",
- "stepByStepHighDistinction": "StepByStep — Matricula de Honor en LSMO",
- "stepByStepHighDistinctionIssuer": "Laboratorio de Sistemas Moviles y Ubicuos (URJC)"
+ "codeXrAward": "Code-XR — Distinguished Artifact Award en VISSOFT 2025",
+ "codeXrAwardIssuer": "IEEE VISSOFT 2025 (junto a ICSME 2025)",
+ "greenhouseHighDistinction": "GreenHouse — Matrícula de Honor en AST",
+ "greenhouseHighDistinctionIssuer": "Ampliación de Sistemas Telemáticos (URJC)",
+ "stepByStepHighDistinction": "StepByStep — Matrícula de Honor en LSMU",
+ "stepByStepHighDistinctionIssuer": "Laboratorio de Sistemas Móviles y Ubicuos (URJC)"
+ },
+ "language": {
+ "browserHint": "Este sitio está escrito en inglés y español. Tu navegador puede traducirlo a tu idioma.",
+ "dismiss": "Cerrar",
+ "skipToContent": "Saltar al contenido"
}
}
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
index d74037a..d3fb083 100644
--- a/src/lib/constants.ts
+++ b/src/lib/constants.ts
@@ -18,6 +18,10 @@ export const LINKS = {
codeXrAwardCertificate: '/documents/distinghuished_artifact_award.pdf',
vissoftPaper: 'https://doi.org/10.1109/VISSOFT67405.2025.00034',
+
+ oxfordC1Verify: 'https://go.oup.com/oxfordtestofenglish/verify',
+ upm: 'https://www.upm.es',
+ hackathonUrjc: 'https://eventos.urjc.es/111906/detail/hackathon-urjc.html',
} as const
export const CV_FILES = {
@@ -29,12 +33,6 @@ export function getCvUrl(locale: string): string {
return locale === 'es' ? CV_FILES.es : CV_FILES.en
}
-export const CREDENTIALS = [
- { key: 'vissoft', label: 'VISSOFT 2025' },
- { key: 'codeXr', label: 'Code-XR (Open Source)' },
- { key: 'techStack', label: 'TypeScript - Next.js - Tailwind' },
-] as const
-
export const NAV_ITEMS = [
{ key: 'home', href: '#home' },
{ key: 'profile', href: '#profile' },
diff --git a/src/lib/seo.ts b/src/lib/seo.ts
index f2e599e..903ae78 100644
--- a/src/lib/seo.ts
+++ b/src/lib/seo.ts
@@ -11,7 +11,7 @@ const messages = {
} as const
export const OG_IMAGE = '/images/og/portfolio.png'
-export const LAST_MODIFIED = '2026-08-29'
+export const LAST_MODIFIED = '2026-09-07'
const localeMeta = {
en: {
@@ -177,8 +177,9 @@ export function buildHomeJsonLd(locale: Locale): Record {
],
givenName: 'Adrián',
familyName: 'Montes Linares',
- jobTitle: ['Telecommunications Engineer', 'Software Engineer'],
- description: 'Full-stack developer focused on TypeScript, React, Node.js, DevTools, and XR software visualization.',
+ jobTitle: ['Telematics Engineer', 'Software Engineer'],
+ description:
+ "Telematics Engineer (URJC, 2026) and Master's student in Telecommunications Engineering at UPM, specializing in Machine Learning and Big Data. Author of Code-XR, an open-source VS Code extension for XR software visualization published at IEEE VISSOFT 2025. Cloud & Systems N2 intern at SATEC.",
url: SITE.url,
email: LINKS.email,
image: absoluteUrl('/images/profile/hero-320.jpg'),
@@ -188,6 +189,39 @@ export function buildHomeJsonLd(locale: Locale): Record {
name: 'Universidad Rey Juan Carlos',
url: 'https://www.urjc.es',
},
+ affiliation: {
+ '@type': 'EducationalOrganization',
+ name: 'Universidad Politécnica de Madrid',
+ alternateName: 'UPM',
+ url: LINKS.upm,
+ },
+ hasCredential: [
+ {
+ '@type': 'EducationalOccupationalCredential',
+ name: 'Oxford Test of English Advanced - CEFR C1',
+ credentialCategory: 'Language certificate',
+ educationalLevel: 'CEFR C1',
+ dateCreated: '2026-09-04',
+ recognizedBy: {
+ '@type': 'Organization',
+ name: 'Oxford University Press',
+ url: 'https://www.oxfordtestofenglish.com',
+ },
+ },
+ {
+ '@type': 'EducationalOccupationalCredential',
+ name: "Bachelor's Degree in Telematics Engineering",
+ credentialCategory: 'degree',
+ dateCreated: '2026-01',
+ recognizedBy: {
+ '@type': 'EducationalOrganization',
+ name: 'Universidad Rey Juan Carlos',
+ url: 'https://www.urjc.es',
+ },
+ },
+ ],
+ knowsLanguage: ['es', 'en'],
+ award: ['Distinguished Artifact Award — IEEE VISSOFT 2025 (Code-XR)'],
knowsAbout: [
'TypeScript',
'React',
@@ -197,6 +231,12 @@ export function buildHomeJsonLd(locale: Locale): Record {
'Software Engineering',
'Data Visualization',
'Azure',
+ 'Machine Learning',
+ 'Big Data',
+ 'Cloud Infrastructure',
+ 'Linux',
+ 'Prompt Engineering',
+ 'Model Context Protocol (MCP)',
],
},
{
@@ -245,6 +285,7 @@ export function buildProjectJsonLd(
operatingSystem: 'Visual Studio Code',
downloadUrl: LINKS.codeXrMarketplace,
citation: LINKS.codeXrDoi,
+ award: 'Distinguished Artifact Award, IEEE VISSOFT 2025',
}
: {}),
}