feat: add Udemy courses and fix footer i18n + golangci-lint errors
- Add 5 Udemy courses with PDF certificate links (Go, Fyne, HTMX) - Fix cv-footer.html to use CV data instead of hardcoded values - Add i18n labels for footer (linkedin, github, domestika, email, phone) - Fix 11 golangci-lint errors: - errcheck: proper Close() error handling in email/security/tests - staticcheck: simplify return and merge variable declaration - unused: remove legacy sendEmail and formatMessage functions
This commit is contained in:
@@ -736,6 +736,23 @@
|
||||
],
|
||||
"courseID": "codecademy-certifications"
|
||||
},
|
||||
{
|
||||
"title": "Udemy Certifications",
|
||||
"institution": "Udemy",
|
||||
"courseLogo": "udemy.png",
|
||||
"location": "Online",
|
||||
"date": "2024-2025",
|
||||
"duration": "Various",
|
||||
"shortDescription": "Professional development courses in Go programming and modern web technologies through Udemy's comprehensive learning platform.",
|
||||
"responsibilities": [
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Go - The Complete Guide.pdf' target='_blank'>Go - The Complete Guide</a></strong> <em>2024</em>: Comprehensive Go programming course covering fundamentals, concurrency, testing, and building production-ready applications</div>",
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Building a module in Go.pdf' target='_blank'>Building a Module in Go</a></strong> <em>2024</em>: Deep dive into Go modules, dependency management, versioning, and creating reusable packages</div>",
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Up and Running with Concurrency in Go.pdf' target='_blank'>Up and Running with Concurrency in Go</a></strong> <em>2024</em>: Advanced Go concurrency patterns including goroutines, channels, mutexes, and building concurrent applications</div>",
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Building GUI Applications with Fyne and Go.pdf' target='_blank'>Building GUI Applications with Fyne and Go</a></strong> <em>2024</em>: Desktop application development using the Fyne toolkit, creating cross-platform GUI applications with Go</div>",
|
||||
"<iconify-icon icon='simple-icons:htmx' width='60' height='60' class='default-company-icon' style='color: #3366CC;'></iconify-icon><div><strong><a href='/static/pdf/udemy/HTMX - The Practical Guide.pdf' target='_blank'>HTMX - The Practical Guide</a></strong> <em>2024</em>: Modern web development with HTMX, building dynamic web applications with minimal JavaScript using hypermedia patterns</div>"
|
||||
],
|
||||
"courseID": "udemy-certifications"
|
||||
},
|
||||
{
|
||||
"title": "LinkedIn Learning Certifications",
|
||||
"institution": "LinkedIn Learning",
|
||||
|
||||
@@ -741,6 +741,23 @@
|
||||
],
|
||||
"courseID": "certificaciones-codecademy"
|
||||
},
|
||||
{
|
||||
"title": "Certificaciones Udemy",
|
||||
"institution": "Udemy",
|
||||
"courseLogo": "udemy.png",
|
||||
"location": "Online",
|
||||
"date": "2024-2025",
|
||||
"duration": "Varios",
|
||||
"shortDescription": "Cursos de desarrollo profesional en programación Go y tecnologías web modernas a través de la plataforma de aprendizaje integral de Udemy.",
|
||||
"responsibilities": [
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Go - The Complete Guide.pdf' target='_blank'>Go - The Complete Guide</a></strong> <em>2024</em>: Curso completo de programación Go cubriendo fundamentos, concurrencia, testing y construcción de aplicaciones listas para producción</div>",
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Building a module in Go.pdf' target='_blank'>Building a Module in Go</a></strong> <em>2024</em>: Profundización en módulos Go, gestión de dependencias, versionado y creación de paquetes reutilizables</div>",
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Up and Running with Concurrency in Go.pdf' target='_blank'>Up and Running with Concurrency in Go</a></strong> <em>2024</em>: Patrones avanzados de concurrencia en Go incluyendo goroutines, channels, mutexes y construcción de aplicaciones concurrentes</div>",
|
||||
"<iconify-icon icon='simple-icons:go' width='60' height='60' class='default-company-icon' style='color: #00ADD8;'></iconify-icon><div><strong><a href='/static/pdf/udemy/Building GUI Applications with Fyne and Go.pdf' target='_blank'>Building GUI Applications with Fyne and Go</a></strong> <em>2024</em>: Desarrollo de aplicaciones de escritorio usando el toolkit Fyne, creando aplicaciones GUI multiplataforma con Go</div>",
|
||||
"<iconify-icon icon='simple-icons:htmx' width='60' height='60' class='default-company-icon' style='color: #3366CC;'></iconify-icon><div><strong><a href='/static/pdf/udemy/HTMX - The Practical Guide.pdf' target='_blank'>HTMX - The Practical Guide</a></strong> <em>2024</em>: Desarrollo web moderno con HTMX, construyendo aplicaciones web dinámicas con JavaScript mínimo usando patrones hypermedia</div>"
|
||||
],
|
||||
"courseID": "certificaciones-udemy"
|
||||
},
|
||||
{
|
||||
"title": "Certificaciones LinkedIn Learning",
|
||||
"institution": "LinkedIn Learning",
|
||||
|
||||
+6
-1
@@ -36,7 +36,12 @@
|
||||
},
|
||||
"footer": {
|
||||
"viewOnGithub": "View this project on GitHub",
|
||||
"lastUpdated": "Last updated"
|
||||
"lastUpdated": "Last updated",
|
||||
"linkedin": "linkedin_",
|
||||
"github": "github_",
|
||||
"domestika": "domestika_",
|
||||
"email": "email@",
|
||||
"phone": "phone#"
|
||||
},
|
||||
"portfolio": {
|
||||
"seeAllProjects": "See all projects on my",
|
||||
|
||||
+6
-1
@@ -36,7 +36,12 @@
|
||||
},
|
||||
"footer": {
|
||||
"viewOnGithub": "Ver este proyecto en GitHub",
|
||||
"lastUpdated": "Última actualización"
|
||||
"lastUpdated": "Última actualización",
|
||||
"linkedin": "linkedin_",
|
||||
"github": "github_",
|
||||
"domestika": "domestika_",
|
||||
"email": "email@",
|
||||
"phone": "teléfono#"
|
||||
},
|
||||
"portfolio": {
|
||||
"seeAllProjects": "Ver todos los proyectos en mi",
|
||||
|
||||
Reference in New Issue
Block a user