2025-11-04 19:07:34 +00:00
<!-- PAGE 1 -->
< div class = "cv-page page-1" >
<!-- Professional Title Badges - Full Width Top Bar -->
< div class = "cv-title-badges-header" >
2025-11-06 09:11:17 +00:00
< span class = "title-badge" > {{if eq .Lang "es"}}ANALISTA{{else}}ANALYST{{end}}< / span >
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > {{if eq .Lang "es"}}CONSULTOR TÉCNICO{{else}}TECHNICAL CONSULTANT{{end}}< / span >
2025-11-04 19:07:34 +00:00
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > NODEJS + REACTJS {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > WEB {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
< span class = "badge-separator" > |< / span >
2025-11-06 09:11:17 +00:00
< span class = "title-badge" > GO + HTMX {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
2025-11-04 19:07:34 +00:00
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > PHP {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
< / div >
2025-10-31 11:06:38 +00:00
2025-11-04 19:07:34 +00:00
<!-- Page 1 Content Grid: Left Sidebar + Main Content -->
< div class = "page-content" >
<!-- Left Sidebar - Skills (first half) -->
< aside class = "cv-sidebar cv-sidebar-left" >
{{range $index, $category := .SkillsLeft}}
< section class = "sidebar-section" >
< h3 class = "sidebar-title" > {{$category.Category}}< / h3 >
< div class = "sidebar-content" >
{{range $category.Items}}< div class = "skill-item" > {{.}}< / div > {{end}}
< / div >
< / section >
2025-11-04 13:34:44 +00:00
{{end}}
2025-11-04 19:07:34 +00:00
< / aside >
<!-- Main Content Area - Page 1 -->
< main class = "cv-main" >
<!-- Header with Name and Photo -->
< div class = "cv-header" >
< div class = "cv-header-content" >
< div class = "cv-header-left" >
2025-11-07 11:49:47 +00:00
< h1 class = "cv-name" > Moreno Rubio, Juan Andrés< / h1 >
2025-11-06 09:11:17 +00:00
< p class = "years-experience" > {{.YearsOfExperience}} {{if eq .Lang "es"}}años de experiencia{{else}}years of experience{{end}}< / p >
2025-11-04 19:07:34 +00:00
<!-- Intro/Excerpt Text - No section heading, just the text -->
< div class = "intro-text" > {{.CV.Summary}}< / div >
< / div >
< div class = "cv-photo" >
2025-11-07 11:49:47 +00:00
< img src = "/static/images/profile/dni.jpeg" alt = "{{.CV.Personal.Name}}" onerror = "this.src='/static/images/profile/placeholder.svg'" >
2025-11-04 19:07:34 +00:00
< / div >
< / div >
2025-10-31 11:06:38 +00:00
< / div >
2025-11-04 19:07:34 +00:00
<!-- Education -->
2025-11-07 19:11:21 +00:00
< section id = "education" class = "cv-section" >
< h3 class = "section-title" >
< iconify-icon icon = "mdi:school" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Formación{{else}}Training{{end}}
< / h3 >
2025-11-04 19:07:34 +00:00
{{range .CV.Education}}
< div class = "education-item" >
< strong > {{.Degree}}< / strong > ({{.StartDate}}-{{.EndDate}}) {{if eq $.Lang "es"}}obtenido de{{else}}obtained from the{{end}} < strong > {{.Institution}}< / strong > ({{.Location}})
< / div >
{{end}}
< / section >
<!-- Skills Summary -->
2025-11-07 19:11:21 +00:00
< section id = "skills" class = "cv-section" >
< h3 class = "section-title" >
< iconify-icon icon = "mdi:brain" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Competencias{{else}}Skills{{end}}
< / h3 >
2025-11-04 19:07:34 +00:00
< p class = "summary-text" >
{{if eq .Lang "es"}}
Amplio conocimiento en entornos web, tanto J2EE como PHP. Experto en tecnologías front-end, aunque con considerable experiencia en sistemas back-end. Receptivo al aprendizaje de nuevas tecnologías, y con una gran dosis de creatividad. Capacidad de analizar problemas y aportar soluciones específicas adaptadas a cada tipo de cliente. Me gusta trabajar tanto solo como en grupos.
{{else}}
Extensive knowledge in web environments, both J2EE and PHP. Expert in front-end technologies, although with considerable experience in back-end systems. Receptive to learning new technologies, and with a large dose of creativity. Ability to analyze problems and provide specific solutions tailored to each client type. I like to work both alone and in groups.
{{end}}
< / p >
< / section >
<!-- Experience -->
2025-11-07 19:11:21 +00:00
< section id = "experience" class = "cv-section" >
< h3 class = "section-title" >
< iconify-icon icon = "mdi:office-building" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Experiencia{{else}}Experience{{end}}
< / h3 >
2025-11-04 19:07:34 +00:00
{{range .CV.Experience}}
< div class = "experience-item" >
2025-11-05 12:15:43 +00:00
< div class = "company-logo" >
2025-11-06 10:36:00 +00:00
{{if .CompanyLogo}}
2025-11-07 11:49:47 +00:00
< img src = "/static/images/companies/{{.CompanyLogo}}" alt = "{{.Company}} logo" onerror = "this.parentElement.innerHTML='<iconify-icon icon=\'mdi:office-building\' width=\'60\' height=\'60\' class=\'default-company-icon\'></iconify-icon>'" >
2025-11-06 10:36:00 +00:00
{{else}}
2025-11-07 11:49:47 +00:00
< iconify-icon icon = "mdi:office-building" width = "60" height = "60" class = "default-company-icon" > < / iconify-icon >
2025-11-06 10:36:00 +00:00
{{end}}
2025-11-05 12:15:43 +00:00
< / div >
< div class = "experience-content" >
2025-11-09 11:42:52 +00:00
< strong > {{.Position}}{{if .Company}} - {{if .CompanyURL}}< a href = "{{.CompanyURL}}" target = "_blank" rel = "noopener noreferrer" > {{.Company}}< / a > {{else}}{{.Company}}{{end}}{{if .Duration}} < span class = "duration-text" > {{.Duration}}< / span > {{end}}{{end}}< / strong > < br >
2025-11-09 03:36:28 +00:00
< small > {{.StartDate}} / {{if .Current}}{{if eq $.Lang "es"}}presente{{else}}now{{end}}{{else}}{{.EndDate}}{{end}} - ({{.Location}})< / small >
2025-11-04 19:07:34 +00:00
2025-11-05 12:15:43 +00:00
{{if .ShortDescription}}
2025-11-09 03:36:28 +00:00
< p class = "experience-desc short-desc" > {{.ShortDescription | safeHTML}}< / p >
2025-11-05 12:15:43 +00:00
{{end}}
2025-11-04 19:07:34 +00:00
2025-11-09 03:36:28 +00:00
{{if .Responsibilities}}
< ul class = "responsibilities long-only" >
{{range .Responsibilities}}
< li > {{. | safeHTML}}< / li >
{{end}}
< / ul >
{{end}}
2025-11-04 19:07:34 +00:00
< / div >
< / div >
{{end}}
< / section >
< / main >
2025-10-20 08:54:21 +01:00
< / div >
2025-11-04 19:07:34 +00:00
< / div >
<!-- PAGE 2 -->
< div class = "cv-page page-2" >
<!-- Professional Title Badges - Same as Page 1 -->
< div class = "cv-title-badges-header" >
< span class = "title-badge" > {{if eq .Lang "es"}}ANALISTA PROGRAMADOR{{else}}ANALYST PROGRAMMER{{end}}< / span >
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > NODEJS + REACTJS {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > WEB {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
< span class = "badge-separator" > |< / span >
2025-11-06 09:11:17 +00:00
< span class = "title-badge" > GO + HTMX {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
2025-11-04 19:07:34 +00:00
< span class = "badge-separator" > |< / span >
< span class = "title-badge" > PHP {{if eq .Lang "es"}}DESARROLLADOR{{else}}DEVELOPER{{end}}< / span >
< / div >
<!-- Page 2 Content Grid: Main Content + Right Sidebar -->
< div class = "page-content" >
<!-- Main Content Area - Page 2 -->
< main class = "cv-main" >
2025-11-08 11:43:57 +00:00
<!-- Awards Section -->
{{if .CV.Awards}}
< section id = "awards" class = "cv-section" >
2025-11-07 19:11:21 +00:00
< h3 class = "section-title" >
2025-11-08 11:43:57 +00:00
< iconify-icon icon = "mdi:trophy" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Premios y Reconocimientos{{else}}Awards{{end}}
2025-11-07 19:11:21 +00:00
< / h3 >
2025-11-08 11:43:57 +00:00
{{range .CV.Awards}}
< div class = "award-item" >
{{if .AwardLogo}}
< div class = "award-logo" >
< img src = "/static/images/companies/{{.AwardLogo}}" alt = "{{.Title}} logo" onerror = "this.parentElement.innerHTML='<iconify-icon icon=\'mdi:trophy\' width=\'60\' height=\'60\' class=\'default-award-icon\'></iconify-icon>'" >
2025-11-07 18:51:02 +00:00
< / div >
2025-11-08 11:43:57 +00:00
{{end}}
< div class = "award-content" >
< strong > {{.Title}}< / strong > < br >
< small > {{.Issuer}} - {{.Date}}< / small >
2025-11-07 18:52:30 +00:00
{{if .ShortDescription}}
2025-11-08 11:43:57 +00:00
< p class = "award-desc short-desc" > {{.ShortDescription | safeHTML}}< / p >
2025-11-07 18:52:30 +00:00
{{end}}
{{if .Responsibilities}}
< ul class = "responsibilities long-only" >
{{range .Responsibilities}}
2025-11-07 21:49:27 +00:00
< li > {{. | safeHTML}}< / li >
2025-11-07 18:52:30 +00:00
{{end}}
< / ul >
{{end}}
2025-11-07 18:51:02 +00:00
< / div >
2025-11-04 19:07:34 +00:00
< / div >
{{end}}
< / section >
2025-10-29 14:04:24 +00:00
{{end}}
2025-11-04 19:07:34 +00:00
2025-11-08 10:52:06 +00:00
<!-- Projects Section -->
{{if .CV.Projects}}
< section id = "projects" class = "cv-section" >
< h3 class = "section-title" >
2025-11-08 11:12:56 +00:00
< iconify-icon icon = "mdi:web" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
2025-11-09 02:43:40 +00:00
{{if eq .Lang "es"}}Proyectos Personales / Freelance{{else}}Personal / Freelance Projects{{end}}
2025-11-08 10:52:06 +00:00
< / h3 >
{{range .CV.Projects}}
< div class = "project-item" >
2025-11-08 11:36:11 +00:00
{{if .ProjectLogo}}
< div class = "project-icon" >
< img src = "/static/images/projects/{{.ProjectLogo}}" alt = "{{.Title}} logo" onerror = "this.parentElement.innerHTML='<iconify-icon icon=\'mdi:web\' width=\'80\' height=\'80\' class=\'default-project-icon\'></iconify-icon>'" >
< / div >
{{else}}
2025-11-08 10:52:06 +00:00
< div class = "project-icon" >
< iconify-icon icon = "mdi:web" width = "80" height = "80" class = "default-project-icon" > < / iconify-icon >
< / div >
2025-11-08 11:36:11 +00:00
{{end}}
2025-11-08 10:52:06 +00:00
< div class = "project-content" >
2025-11-09 11:42:52 +00:00
< strong >
{{if .ProjectName}}
{{if .URL}}< a href = "{{.URL}}" target = "_blank" rel = "noopener noreferrer" > {{.ProjectName}}< / a > {{else}}{{.ProjectName}}{{end}}{{if .ProjectDesc}} - {{.ProjectDesc}}{{end}}
{{else}}
{{if .URL}}< a href = "{{.URL}}" target = "_blank" rel = "noopener noreferrer" > {{.Title}}< / a > {{else}}{{.Title}}{{end}}
{{end}}
< / strong > < br >
2025-11-09 03:36:28 +00:00
< small > {{if .StartDate}}{{.StartDate}}{{if .Current}}{{if .DynamicDate}} / {{.DynamicDate}}{{else}} / {{if eq $.Lang "es"}}presente{{else}}now{{end}}{{end}}{{end}}{{end}} - ({{.Location}})< / small >
2025-11-08 10:52:06 +00:00
{{if .ShortDescription}}
2025-11-09 04:34:40 +00:00
< p class = "project-desc short-desc" > {{.ShortDescription | safeHTML}}< / p >
2025-11-08 10:52:06 +00:00
{{end}}
{{if .Responsibilities}}
< ul class = "responsibilities long-only" >
{{range .Responsibilities}}
< li > {{. | safeHTML}}< / li >
{{end}}
< / ul >
{{end}}
{{if .Technologies}}
< div class = "project-technologies long-only" >
< strong > {{if eq $.Lang "es"}}Tecnologías:{{else}}Technologies:{{end}}< / strong >
{{range $index, $tech := .Technologies}}{{if $index}}, {{end}}{{$tech}}{{end}}
< / div >
{{end}}
< / div >
< / div >
{{end}}
<!-- Link to full portfolio -->
< div class = "projects-footer" >
< p > {{if eq .Lang "es"}}Ver todos los proyectos en mi{{else}}See all projects on my{{end}}
< a href = "{{.CV.Personal.Domestika}}" target = "_blank" rel = "noopener noreferrer" > < strong > {{if eq .Lang "es"}}portfolio de Domestika{{else}}Domestika portfolio{{end}}< / strong > < / a > < / p >
< / div >
< / section >
{{end}}
2025-11-08 11:43:57 +00:00
<!-- Courses Section -->
{{if .CV.Courses}}
< section id = "courses" class = "cv-section" >
2025-11-08 10:52:06 +00:00
< h3 class = "section-title" >
2025-11-08 11:43:57 +00:00
< iconify-icon icon = "mdi:school" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Cursos Realizados{{else}}Courses{{end}}
2025-11-08 10:52:06 +00:00
< / h3 >
2025-11-08 11:43:57 +00:00
{{range .CV.Courses}}
< div class = "course-item" >
2025-11-09 03:21:48 +00:00
{{if .CourseLogo}}
< div class = "course-icon" >
< img src = "/static/images/courses/{{.CourseLogo}}" alt = "{{.Title}} logo" onerror = "this.parentElement.innerHTML='<iconify-icon icon=\'mdi:school\' width=\'80\' height=\'80\' class=\'default-course-icon\'></iconify-icon>'" >
< / div >
{{else}}
2025-11-08 11:43:57 +00:00
< div class = "course-icon" >
< iconify-icon icon = "mdi:school" width = "80" height = "80" class = "default-course-icon" > < / iconify-icon >
2025-11-08 10:52:06 +00:00
< / div >
2025-11-09 03:21:48 +00:00
{{end}}
2025-11-08 11:43:57 +00:00
< div class = "course-content" >
2025-11-09 03:36:28 +00:00
< strong > {{.Title}}< / strong > < br >
< small > {{.Institution}} - {{.Date}} - ({{.Location}})< / small >
2025-11-08 10:52:06 +00:00
{{if .ShortDescription}}
2025-11-08 11:43:57 +00:00
< p class = "course-desc short-desc" > {{.ShortDescription | safeHTML}}< / p >
2025-11-08 10:52:06 +00:00
{{end}}
{{if .Responsibilities}}
< ul class = "responsibilities long-only" >
{{range .Responsibilities}}
< li > {{. | safeHTML}}< / li >
{{end}}
< / ul >
{{end}}
< / div >
< / div >
{{end}}
< / section >
{{end}}
2025-11-04 19:07:34 +00:00
<!-- Languages Section -->
2025-11-07 19:11:21 +00:00
< section id = "languages" class = "cv-section" >
< h3 class = "section-title" >
< iconify-icon icon = "mdi:translate" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Idiomas{{else}}Languages{{end}}
< / h3 >
2025-11-04 19:07:34 +00:00
{{range .CV.Languages}}
< div class = "language-item" >
2025-11-07 18:23:56 +00:00
< strong > {{.Language}}:< / strong > {{.Proficiency}}{{if .Detail}} {{.Detail}}{{end}}
2025-10-29 14:04:24 +00:00
< / div >
2025-11-04 19:07:34 +00:00
{{end}}
< / section >
<!-- References Section -->
{{if .CV.References}}
2025-11-07 19:11:21 +00:00
< section id = "references" class = "cv-section" >
< h3 class = "section-title" >
< iconify-icon icon = "mdi:link-variant" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Referencias{{else}}References{{end}}
< / h3 >
2025-11-04 19:07:34 +00:00
{{range .CV.References}}
< div class = "reference-item" >
2025-11-07 18:51:02 +00:00
{{if .TextBefore}}{{.TextBefore}} {{end}}< a href = "{{.URL}}" target = "_blank" rel = "noopener noreferrer" > < strong > {{if .LinkText}}{{.LinkText}}{{else}}{{.Title}}{{end}}< / strong > < / a > {{if .TextAfter}} {{.TextAfter}}{{end}}
2025-11-04 19:07:34 +00:00
< / div >
{{end}}
< / section >
{{end}}
2025-10-20 08:54:21 +01:00
2025-11-04 19:07:34 +00:00
<!-- Other Section (Driver's License) -->
{{if .CV.Other.DriverLicense}}
2025-11-07 19:11:21 +00:00
< section id = "other" class = "cv-section" >
< h3 class = "section-title" >
< iconify-icon icon = "mdi:information" width = "24" height = "24" class = "section-icon" > < / iconify-icon >
{{if eq .Lang "es"}}Otros{{else}}Other{{end}}
< / h3 >
2025-11-04 19:07:34 +00:00
< div class = "other-content" >
2025-11-09 02:59:46 +00:00
{{if eq .Lang "es"}}Carnet de conducir tipo {{.CV.Other.DriverLicense | safeHTML}}{{else}}Driving License type {{.CV.Other.DriverLicense | safeHTML}}{{end}}
2025-11-04 19:07:34 +00:00
< / div >
< / section >
2025-10-29 14:04:24 +00:00
{{end}}
2025-11-04 19:07:34 +00:00
< / main >
2025-10-20 08:54:21 +01:00
2025-11-04 19:07:34 +00:00
<!-- Right Sidebar - Skills (second half) -->
< aside class = "cv-sidebar cv-sidebar-right" >
{{range $index, $category := .SkillsRight}}
< section class = "sidebar-section" >
< h3 class = "sidebar-title" > {{$category.Category}}< / h3 >
< div class = "sidebar-content" >
{{range $category.Items}}< div class = "skill-item" > {{.}}< / div > {{end}}
< / div >
< / section >
{{end}}
< / aside >
< / div >
2025-10-29 14:04:24 +00:00
2025-11-04 19:07:34 +00:00
<!-- Footer - Only on Page 2 -->
< footer class = "cv-footer" >
< ul class = "footer-content" >
< li >
2025-11-05 12:15:43 +00:00
< div class = "footer-label" > linkedin_< / div >
< div class = "footer-separator" > < i class = "fa fa-circle" > < / i > < / div >
< div class = "footer-value" >
< a href = "{{.CV.Personal.LinkedIn}}" target = "_blank" rel = "noopener noreferrer" > {{.CV.Personal.LinkedIn}}< / a >
< / div >
< / li >
< li >
< div class = "footer-label" > github_< / div >
2025-11-04 19:07:34 +00:00
< div class = "footer-separator" > < i class = "fa fa-circle" > < / i > < / div >
2025-11-05 12:15:43 +00:00
< div class = "footer-value" >
< a href = "{{.CV.Personal.GitHub}}" target = "_blank" rel = "noopener noreferrer" > {{.CV.Personal.GitHub}}< / a >
< / div >
2025-11-04 19:07:34 +00:00
< / li >
< li >
2025-11-08 10:23:31 +00:00
< div class = "footer-label" > domestika_< / div >
2025-11-04 19:07:34 +00:00
< div class = "footer-separator" > < i class = "fa fa-circle" > < / i > < / div >
2025-11-05 12:15:43 +00:00
< div class = "footer-value" >
2025-11-08 10:23:31 +00:00
< a href = "{{.CV.Personal.Domestika}}" target = "_blank" rel = "noopener noreferrer" > {{.CV.Personal.Domestika}}< / a >
2025-11-05 12:15:43 +00:00
< / div >
2025-11-04 19:07:34 +00:00
< / li >
< li >
< div class = "footer-label" > email@< / div >
< div class = "footer-separator" > < i class = "fa fa-circle" > < / i > < / div >
< div class = "footer-value" >
2025-11-05 12:15:43 +00:00
< a href = "mailto:{{.CV.Personal.Email}}" target = "_blank" rel = "noopener noreferrer" > {{.CV.Personal.Email}}< / a >
2025-11-04 19:07:34 +00:00
< / div >
< / li >
2025-11-06 09:11:17 +00:00
< li >
< div class = "footer-label" > phone#< / div >
< div class = "footer-separator" > < i class = "fa fa-circle" > < / i > < / div >
< div class = "footer-value" >
< a href = "tel:+34676875420" target = "_blank" rel = "noopener noreferrer" > +34 676 875 420< / a >
< / div >
< / li >
2025-11-04 19:07:34 +00:00
< / ul >
< / footer >
< / div >