diff --git a/data/cv-en.json b/data/cv-en.json index 2a1d443..69c80ed 100644 --- a/data/cv-en.json +++ b/data/cv-en.json @@ -30,7 +30,7 @@ "ogDescription": "Senior Technical Consultant & Full-Stack Developer — Go, AI, HTMX, SAP CDC", "keywords": "CV, Resume, FullStack Developer, Go, Swift, macOS, MCP, AI, HTMX, React, Node.js, SAP CDC, Native Apps, CLI Tools, Open Source" }, - "summary": "Full-stack developer specialized in authentication systems and high-availability platforms. I currently work on Olympic Games platforms, and have built airport authentication systems serving millions of users and around 20 websites for diverse sectors. Certified SAP CDC consultant, advising 35-40 international clients on digital identity. I also create open-source tools and native apps via Drolosoft.", + "summary": "Full-stack developer specialized in authentication systems and high-availability platforms. I currently work on Olympic Games platforms, and have built airport authentication systems serving millions of users and around 20 websites for diverse sectors. Certified SAP CDC consultant, advising 35-40 international clients on digital identity. I also create open-source tools and native apps via drolosoft.", "skillsSummary": "Full-stack developer with experience in Go, Node.js, React, and HTMX for modern applications. I've provided consulting for 35-40 international clients, from e-commerce and enterprise platforms to authentication systems managing millions of users. I integrate AI tools into my development workflows and build projects that use LLMs and MCP. I also create open-source tools and native macOS apps independently. Comfortable managing infrastructure with Linux, Docker, and CI/CD.", "experience": [ { @@ -649,32 +649,6 @@ ], "projectID": "soundinbox" }, - { - "title": "Commando - Terminal Command Manager for macOS", - "projectName": "Commando", - "projectDesc": "Terminal Command Manager for macOS", - "url": "https://drolosoft.com/commando.html?lang=en", - "projectLogo": "commando.png", - "location": "Online", - "startDate": "2026", - "current": true, - "technologies": [ - "Go", - "SwiftUI", - "SQLite FTS5", - "macOS Native", - "CLI Tools" - ], - "shortDescription": "Native macOS terminal command manager combining Go backend with SwiftUI frontend. Organize, search, and execute terminal commands with full-text search, TUI manager, and alias discovery.", - "responsibilities": [ - "Built hybrid native macOS app combining Go backend with SwiftUI frontend", - "Implemented full-text search using SQLite FTS5 with BM25 ranking (<50ms results)", - "Created TUI manager for launching terminal UIs (htop, lazygit, lazydocker)", - "Built alias manager that discovers and manages shell aliases across bash, zsh, and fish", - "Designed freemium model with free basic features and Pro tier for advanced tools" - ], - "projectID": "commando" - }, { "title": "Somos Una Ola - Beach Cleaning Initiative", "projectName": "Somos Una Ola", diff --git a/data/cv-es.json b/data/cv-es.json index 415bde2..202b561 100644 --- a/data/cv-es.json +++ b/data/cv-es.json @@ -30,7 +30,7 @@ "ogDescription": "Consultor Técnico Senior & Desarrollador Full-Stack — Go, IA, HTMX, SAP CDC", "keywords": "CV, Curriculum Vitae, Desarrollador FullStack, Go, Swift, macOS, MCP, IA, HTMX, React, Node.js, SAP CDC, Apps Nativas, Herramientas CLI, Open Source" }, - "summary": "Desarrollador full-stack especializado en sistemas de autenticación y plataformas de alta disponibilidad. Actualmente trabajo en plataformas de Juegos Olímpicos, y he construido sistemas de autenticación aeroportuaria con millones de usuarios y unos 20 sitios web para diversos sectores. Consultor certificado SAP CDC, asesorando a 35-40 clientes internacionales en identidad digital. También creo herramientas open-source y apps nativas vía Drolosoft.", + "summary": "Desarrollador full-stack especializado en sistemas de autenticación y plataformas de alta disponibilidad. Actualmente trabajo en plataformas de Juegos Olímpicos, y he construido sistemas de autenticación aeroportuaria con millones de usuarios y unos 20 sitios web para diversos sectores. Consultor certificado SAP CDC, asesorando a 35-40 clientes internacionales en identidad digital. También creo herramientas open-source y apps nativas vía drolosoft.", "skillsSummary": "Desarrollador full-stack con experiencia en Go, Node.js, React y HTMX para aplicaciones modernas. He realizado consultoría para 35-40 clientes internacionales, desde e-commerce y plataformas empresariales hasta sistemas de autenticación que gestionan millones de usuarios. Integro herramientas de IA en mis flujos de desarrollo y construyo proyectos que usan LLMs y MCP. También creo herramientas open-source y apps nativas macOS de forma independiente. Cómodo gestionando infraestructura con Linux, Docker y CI/CD.", "experience": [ { @@ -649,32 +649,6 @@ ], "projectID": "soundinbox" }, - { - "title": "Commando - Gestor de Comandos de Terminal para macOS", - "projectName": "Commando", - "projectDesc": "Gestor de Comandos de Terminal para macOS", - "url": "https://drolosoft.com/commando.html?lang=es", - "projectLogo": "commando.png", - "location": "Online", - "startDate": "2026", - "current": true, - "technologies": [ - "Go", - "SwiftUI", - "SQLite FTS5", - "macOS Nativo", - "Herramientas CLI" - ], - "shortDescription": "Gestor nativo de comandos de terminal para macOS combinando backend Go con frontend SwiftUI. Organiza, busca y ejecuta comandos con búsqueda de texto completo, gestor TUI y descubrimiento de alias.", - "responsibilities": [ - "Desarrollé app híbrida nativa para macOS combinando backend Go con frontend SwiftUI", - "Implementé búsqueda de texto completo usando SQLite FTS5 con ranking BM25 (<50ms resultados)", - "Creé gestor TUI para lanzar interfaces de terminal (htop, lazygit, lazydocker)", - "Desarrollé gestor de alias que descubre y gestiona aliases de shell en bash, zsh y fish", - "Diseñé modelo freemium con funciones básicas gratuitas y tier Pro para herramientas avanzadas" - ], - "projectID": "commando" - }, { "title": "Somos Una Ola - Iniciativa de Limpieza de Playas", "projectName": "Somos Una Ola", diff --git a/internal/templates/template.go b/internal/templates/template.go index 780d6cc..78698dc 100644 --- a/internal/templates/template.go +++ b/internal/templates/template.go @@ -5,6 +5,7 @@ import ( "html/template" "log" "path/filepath" + "strings" "sync" "github.com/juanatsap/cv-site/internal/config" @@ -63,6 +64,10 @@ func (m *Manager) loadTemplatesLocked() error { "safeHTML": func(s string) template.HTML { return template.HTML(s) }, + // replaceDrolosoft links "drolosoft" in the summary text + "replaceDrolosoft": func(s string) string { + return strings.Replace(s, "drolosoft", `drolosoft`, 1) + }, // dict creates a map from key-value pairs for passing to sub-templates "dict": func(values ...interface{}) (map[string]interface{}, error) { if len(values)%2 != 0 { diff --git a/static/images/projects/gotify-commander.png b/static/images/projects/gotify-commander.png new file mode 100644 index 0000000..1e53f62 Binary files /dev/null and b/static/images/projects/gotify-commander.png differ diff --git a/templates/partials/sections/header.html b/templates/partials/sections/header.html index 0ecf4a9..5cfe099 100644 --- a/templates/partials/sections/header.html +++ b/templates/partials/sections/header.html @@ -14,7 +14,7 @@

{{.YearsOfExperience}} {{.UI.Sections.YearsOfExperience}}

-
{{.CV.Summary}}
+
{{.CV.Summary | replaceDrolosoft | safeHTML}}
diff --git a/templates/partials/widgets/chat-widget.html b/templates/partials/widgets/chat-widget.html index 8102aa2..76d8014 100644 --- a/templates/partials/widgets/chat-widget.html +++ b/templates/partials/widgets/chat-widget.html @@ -81,13 +81,13 @@ - + {{else}} - + {{end}}