Proyectos
Educación superior
Certificaciones / Diplomados
Habilidades Blandas
Habilidades Técnicas
Enlaces de Publicaciones
Experiencia Laboral
Algunas de mis publicaciones
Contacto
Orígenes y Trayectoria
Resumen Podcast - Testimonio profesional - Parte 1
2018
2018
2019
2019
2019
2019
Resumen Podcast - Testimonio profesional - Parte 2
2020-2022
2022
2021
2021
2011
2022
2022
2023
2011
2023
2024
2022
2024
2023
2020
2011
2019
2021
2015
2014
2010
2025
2020
2011
2024
2022
2017
Historia y Trayectoria
Experiencia Laboral (Formal)
Perfil Profesional
Educación y Formación
Habilidades Técnicas y Blandas
Contenidos, aportes digitales

Dennys J Marquez Web Developer

r

¡Hola! 🖖 Soy un Front-End Web Developer con más de 8 años de experiencia formal y 15 años en la industria IT. Me apasiona transformar ideas en soluciones digitales innovadoras que marquen la diferencia.

Enlaces externos

a

Resumen
Podcast

Incidente Crítico

Asalto en chalet

Resultó herido

Logró salvar su vida

Superado con Angela

Retorno a Programación

Busco cursos online con Angela

Necesidad de Certificaciones (falta estudios/exp. formal en CV)

Cursos Presenciales (PHP/MySQL, Joomla, WordPress) - Insuficientes

Financió estudios vendiendo semillas de girasol

Encontró Diplomado UNEWEB

Educación online asequible

Estudió con modem móvil (sin internet en zona)

Obtuvo conexión mejor (antena Ubiquiti NanoStation Loco M2)

Finalización Diplomado y Primer Empleo Formal

Retomó y finalizó proyecto (aprox 1 año después)

Proyecto Final: CMS estilo WordPress (Scorpion CMS)

Obtuvo Primer Empleo Formal (Desarrollador Full Stack)

Momento Muy Difícil

Se mudó a chalet propiedad suegro (zona montañosa)

Sin acceso a PC, sin programar

Trabajó como obrero en finca (aprox 3 años)

Olvidó programación temporalmente

Intento Empresa Formal (Toito PC C.A.)

Alquiló local en otro estado

Registró compañía

Fracasó financieramente (gastos iniciales)

No pudo aguantar punto de equilibrio

Inicios

Nació 1977

Contexto Familiar Desafiante

r

Desde mis primeros años, crecí en un contexto familiar sumamente desafiante y sin apoyo. Esta situación me obligó a desarrollar una fuerte autodeterminación y autogestión desde muy joven. Tuve que tomar decisiones importantes por mi cuenta y abrirme camino sin ningún respaldo.La falta de apoyo también afectó directamente mi formación académica. No tuve el respaldo necesario para formalizar mis estudios en programación web,Por lo que mi aprendizaje en tecnología nació de una curiosidad constante y de la iniciativa por comprender a fondo su funcionamiento. En una etapa inicial, me formé de manera independiente, desarrollando competencias prácticas a través de la exploración técnica continua. Con el tiempo, logré transformar ese interés en una trayectoria profesional formal, complementandolo con estudios especializados y experiencia en empresas reconocidas del sector tecnológico.Periodos Difíciles y Transiciones SignificativasMi vida ha estado llena de obstáculos y cambios abruptos, pero fue mi resiliencia y mi capacidad para pensar fuera de la caja lo que me permitió superarlos. Cada caída me enseñó a levantarme con más fuerza, y cada desafío reforzó mi determinación de seguir adelante, incluso cuando todo parecía estar en mi contra.A pesar de las dificultades, he logrado forjar mi propio camino, demostrando que, incluso sin apoyo, es posible alcanzar tus metas con perseverancia y pasión.

Curiosidad Innata por Tecnología

Autoaprendizaje

MS-DOS / Windows 3.11 (HELP.COM)

QBasic (MS-DOS 6.22) I386

Visual Basic 4 y 6

Descubrió HTML, JS, VBScript (archivos .htt, .hta Windows 98)

Competición VBScript vs. JavaScript por el dominio de los browser

r

En los albores de la web interactiva, dos lenguajes de scripting compitieron por definir el futuro del desarrollo web: JavaScript y VBScript. Aunque ambos permitían agregar dinamismo a las páginas web, sus diferencias técnicas y estratégicas marcaron destinos radicalmente distintos.Orígenes y enfoquesJavaScript: Creado en 1995 por Brendan Eich para Netscape Navigator, se convirtió rápidamente en el estándar gracias a su sintaxis similar a C, su integración con el DOM y su compatibilidad multiplataforma.VBScript: La apuesta de Microsoft, basada en Visual Basic, ofrecía una sintaxis más sencilla para principiantes, pero su mayor limitación era su exclusividad con Internet Explorer, lo que limitó su adopción global.Comparación técnicaSeguridad: La gran diferenciaJavaScript incorporó políticas como Same Origin Policy y sandboxing para reducir riesgos, mientras que VBScript carecía de protecciones robustas, facilitando exploits y ataques. Esto, sumado a su dependencia de entornos Windows sin restricciones, lo convirtió en un blanco frecuente de vulnerabilidades.El ocaso de VBScriptIncompatibilidad: La web se movió hacia estándares abiertos, y navegadores como Firefox, Chrome y Safari ignoraron VBScript.Abandono corporativo: Microsoft dejó de promoverlo, reemplazándolo por JavaScript incluso en sus propias tecnologías (ej: ASP.NET).Riesgos de seguridad: Su naturaleza insegura aceleró su desuso, especialmente tras la llegada de alternativas modernas.JavaScript: El estándar indiscutibleHoy, JavaScript domina no solo en el navegador, sino también en:Backend (Node.js, Deno).Aplicaciones móviles (React Native, Ionic).Desktop (Electron).Su ecosistema, impulsado por frameworks como React y Angular, lo ha consolidado como el lenguaje más relevante en desarrollo web.La caída de VBScript y el auge de JavaScript ilustran cómo la apertura, la seguridad y la adaptabilidad definen el éxito en la tecnología web. Mientras VBScript quedó obsoleto por su enfoque cerrado y limitado, JavaScript evolucionó para convertirse en el pilar de la web moderna.

d

Proyectos Iniciales

DgChat (Visual Basic 6)

Programa de Chat

Funcionaba con IIS y ASP

Probado en red biblioteca UCV Maracay

Curso Cisco CCNA (No relacionado con Chats)

r

En medio del desarrollo de DgChat, mi primer programa en VB funcional, me surgió una duda que se convirtió en obsesión: quería entender exactamente cómo se transmitían los mensajes a través de las redes. Convencido de que necesitaba conocimientos avanzados de redes, me inscribí en un curso intensivo de Cisco CCNA en la UCV de Maracay Venezuela.La ironía es que mientras esperaba aprender sobre protocolos de aplicación y arquitecturas de sistemas de mensajería, me encontraron estudiando configuraciones de routers, subredes y protocolos de enrutamiento. Fue un verdadero 'palo de ciego', como suelo decir.Aunque inicialmente me frustró descubrir que el CCNA no tenía la relación directa con programación de chats que yo esperaba, con el tiempo comprendí su valor. Esos conocimientos me dieron:Una base sólida en infraestructura de redesEntendimiento práctico de cómo funcionan los enrutadores y conmutadoresPerspectiva técnica que más tarde me serviría para soluciones más complejasHoy veo ese curso como un ejemplo perfecto de cómo a veces los caminos equivocados terminan llevándote a destinos valiosos. Aprendí que en tecnología, ningún conocimiento sobra - solo hay aprendizajes que todavía no han encontrado su aplicación.

Periodo Difícil / Transición

Falta de Estudios Formales

Dificultad para encontrar trabajo programador

Empleos No Relacionados (Gimnasio, Fábrica Plásticos)

Usó Indemnización para comprar PC

Terminó Bachillerato (Parasistema Nocturno)

Trabajó en Cibercafé

Intentó Diseño Gráfico (No Rentable)

Servicio Técnico de PC (Hogar)

Montó Taller en casa materna

Ahorró para publicidad

Reparaba PC, vendía partes

Conoció a Angela (Esposa)

Clienta que motivó formalización

Cursó el primer semestre de Informática en el IUTAR

Tuvo que dejar estudios (falta de ingresos, trabajo)

Anécdotas Servicio Técnico

Troyano Visual Basic 6

Propagar barra de herramientas

Aprovechaba autorun Windows XP

Instalaba barra, modificaba registro del windows

Residente en memoria

Se copiaba a pendrives

Liberado en cibercafés (sin Deep Freeze)

Llegó a instalarse mundialmente (incl. China)

Plataforma Conduit (analítica, pago por instalación)

Descubrió Payoneer

Web Scraping Taringa (Visual Basic 6)

Programa para extraer enlaces de descargas

Analizaba HTML

Extraía info a archivos HTML

Otro programa volcaba datos a .sql (Esquema Spirate)

Para sección descargas sitio servicio técnico

Mejoró posicionamiento (cientos de posts)

Creación sitio web tec.web44.net

Resumen - CV

Mis redes sociales
Sígueme en.

GitHub

Medium

Behance

Twitter

YouTube

DEV Community 👩💻👨💻

a

Perfil Profesional

Stack Tecnológico

r

Stack TecnológicoMi especialidad está en JavaScript (ES6+), TypeScript, y frameworks como React y Angular. Tengo experiencia trabajando con:JavaScript (ES6+) – 8+ añosReact / React Native – 4+ años (2 años en React Native)Next.js / Node.js – 2+ añosAngular (6-13) – 1+ año en proyectos realesRedux, Tailwind CSS, Material UI, Git – Experiencia avanzadaLitElement, Vue.js 2 – Conocimientos adicionalesAPIs RESTful con Node.js/Express – Desarrollo backendVite y herramientas del ecosistemaHe tenido el privilegio de trabajar en equipos pequeños, grandes, multidisciplinarios y de alto desempeño. Mi trayectoria incluye una variedad de proyectos que van desde aplicaciones web hasta móviles, y he colaborado con diversas empresas en distintos países, incluyendo Argentina, Panamá, España y Chile.

Mi experiencia formal (8+ años)

r

Mi experiencia formal (8+ años)Los más de 8 años de experiencia formal corresponden al tiempo que he trabajado para empresas. Durante mucho tiempo me costó conseguir oportunidades por no tener estudios formales, hasta que logré obtener una certificación en el programación Web, un diplomado de UneWeb.Este diplomado, junto con el desarrollo de un CMS al estilo de Wordpress como proyecto final, fue el punto de inflexión que me permitió acceder a mi primer trabajo formal como Desarrollador Full Stack.Desde entonces, he trabajado de forma remota con empresas en Argentina, Panamá, España y Chile, consolidando una carrera profesional estable y enfocada. He participado en equipos distribuidos, colaborado en proyectos complejos, y aplicado buenas prácticas para construir soluciones reales con impacto.

Experiencia total en IT

r

Experiencia total en ITMás de 15 años representan mi vida en el mundo de la tecnología. Todo comenzó en la época de los ordenadores 386 con MS-DOS y Windows 3.11, donde tuve mis primeras experiencias programando con lenguajes como BASIC usando QBasic, y posteriormente Visual Basic 4 y 6.También descubrí HTML, JavaScript y VBScript explorando archivos .htt y .hta en Windows 98, lo cual marcó el inicio de mi conexión con el desarrollo web.Durante esa etapa, desarrollé proyectos propios que me permitieron experimentar y aprender por mi cuenta. Algunos ejemplos:DgChat, un programa de chat que hice en Visual Basic 6.Un servicio técnico de PC que monté y gestioné personalmente, incluyendo el desarrollo de herramientas como un troyano (que usaba para promocionar mi sitio web) y un web scraper para obtener contenido de Taringa.net.El intento de formalizar una empresa, Toito PC C.A., que aunque no prosperó, me dejó una gran experiencia.Todo ese recorrido —con sus aciertos, errores, pausas y momentos difíciles— forma parte de estos 15 años que reflejan no solo cuánto tiempo llevo en tecnología, sino la intensidad y profundidad con la que he vivido este camino.

Más allá de la técnica

r

Ser desarrollador frontend no es solo escribir código ni dominar tecnologías, también se trata de saber manejar las presiones, los entornos complejos y las relaciones humanas que existen en cada proyecto.A lo largo de mi carrera he aprendido que para mantenerse firme en esta profesión no basta con lo técnico: hacen falta resiliencia, paciencia, criterio y claridad emocional. He pasado por entornos laborales retadores, situaciones personales duras y muchas veces he tenido que resolver con lo que había a mano. Pero también he buscado prepararme de forma seria, estudiar, certificarme y mejorar mi base técnica cada año. El equilibrio entre la experiencia de vida y la formación formal me ha permitido seguir creciendo y aportar valor real.Mi filosofía para el trabajo:La programación como arte y ciencia:Considero la programación una fusión de arte y ciencia, me gusta aplicar un enfoque creativo para resolver problemas, lo que denomino "pensar fuera de la caja". Este enfoque me permite crear e innovar con soluciones poco convencionales, siempre considerando la importancia de no reinventar la rueda innecesariamente.Enfoque sistémico y pensamiento crítico:Para resolver problemas complejos, recomiendo un enfoque sistemático. Esto garantiza mayor eficiencia, claridad y consistencia, evitando soluciones desorganizadas o incompletas, he aprendido la importancia de cambiar de perspectiva cuando un problema parece no tener solución, ya que a menudo estamos limitados por un enfoque estrecho. El pensamiento crítico es fundamental, permitiendo ver los problemas desde diferentes ángulos y encontrar soluciones que otros podrían pasar por alto.Prioridad en la solución correcta:Entiendo que nuestro instinto inicial puede ser buscar la solución más rápida, pero mi experiencia me ha enseñado que encontrar la solución correcta es a menudo más importante que encontrar la solución rápida, es crucial detenerse y considerar todas las posibilidades antes de elegir un camino.Aprendizaje continuo y buenas prácticas: Estoy constantemente buscando nueva información y explorando las últimas tendencias para mejorar mis habilidades como programador. Mi interés no se limita a que el código funcione, sino a que sea eficiente, elegante y fácil de entender. Para ello, he aplicado en mis desarrollos principios como SOLID, Clean Code y Arquitectura Hexagonal, y procuro evitar los anti-patrones STUPID.No todo es código: Con los años me he dado cuenta de que esta carrera no se trata solo de tecnología. El código importa, claro, pero no lo es todo. Las experiencias que he vivido —buenas y malas— me obligaron a interesarme por algo más profundo: las personas, los equipos, y las dinámicas que existen detrás de cada proyecto.He aprendido que saber trabajar en equipo es tan importante como escribir buen código. Me ha tocado entender cómo colaborar sin fricciones entre FrontEnd y BackEnd, cómo comunicar con respeto, y cómo liderar sin imponer. A lo largo de mi camino profesional me he topado con entornos muy diferentes, y eso me llevó a estudiar sobre gestión de equipos, liderazgo técnico y salud en el ambiente laboral.También he visto cómo ciertos comportamientos dañan el trabajo colectivo: el ego, la competencia innecesaria, el exceso de presión, o el famoso "Síndrome de Procusto", donde destacar se vuelve incómodo para otros. En medio de eso, mantenerme centrado en mi pasión por programar, sin perder la calma ni la claridad, ha sido fundamental.Para mí, escribir buen software no es solo tener lógica o habilidad técnica. Es también saber cómo convivir con otros en un entorno profesional, cómo construir sin destruir, y cómo sostener un ritmo saludable sin apagar la motivación.

Conocimientos Adicionales

Clean Code

Principios SOLID

Patrones / Anti-Patrones (STUPID)

Interés en Arquitecturas

Educación y Formación

Publicaciones

linkedin

¡Cambiar la perspectiva!. Cuando un problema parezca no tener solución, cambia la perspectiva

medium

El Síndrome de Procusto

Origen e historia del Management

La vida y el legado de Mary Parker Follett: influencia olvidada en la gestión moderna

RED Team, BLUE Team, PURPLE Team, Ethical Hacking y sus diferencias

Google Hacking, Dorks Hacking, búsquedas avanzadas con Google

dev.to

Angular 17/19 | Signals con RxJS usando signalPipeRxjs

a

Lean Startup y MVPs: Soluciones Ágiles para el Desarrollo de Software

a

Microfrontends Architecture

a

Primeros pasos, cómo utilizar QR y BlockChain para la trazabilidad de productos

a

La ciencia de los algoritmos

a

Colaboración Efectiva FrontEnd/BackEnd

a

Todo lo que necesitas saber sobre API Rest

a

La deuda tecnológica: el costo oculto de proyectos a largo plazo

a

La Arquitectura Hexagonal

a

Consejos para lograr un software limpio, mantenible, testeable y escalable

a

React la guía máxima de buenas prácticas jamás concebida, Principios SOLID, El acrónimo STUPID, Clean Code y Code Smell

a

Experiencia Laboral (Formal)

Epidata (React Developer)
Argentina · En remoto

Ene. 2023 - Jun. 2023
6 meses

Proyecto: Sistema Integral RRHH (MDP Argentina)

Equipo de alto rendimiento

Contribuciones: Sistema inicio sesión (LDAP), Gestión módulos/roles/permisos/usuarios, Pantallas CRUD agente, Generación PDFs

Mejora eficiencia: Modelos datos ficticios (Arquitectura Hexagonal, Redux Thunk)

Tecnologías: TypeScript, React (Function Component, Hooks), Vite, Redux, Tailwind CSS, Docker, MySQL Workbench, PrimeReact

BONDAREA (JavaScript Developer)
Argentina · En remoto

Dic. 2017 - Sept. 2019
1 año 10 meses

Proyecto: BREF Bondarea Render Framework (renderiza HTML/JS/CSS desde JSON)

Creación sistema renderizado (Componentes Bootstrap, Búsqueda, eval, fnRender)

Manipulación avanzada del DOM

Maquetación (Adobe Illustrator CC 2018)

Tecnologías: JavaScript, Vanilla JS, Bootstrap 3/4, jQuery 3, JSON, DOM, HTML 5, CSS 3, Git, BitBucket, Sourcetree

Corpwakd C.A (Proveedor tecnológico / Servicio Técnico Wintel)

Ene. 2012 - Ene. 2014
2 años 1 mes

Asesoría técnica, Diagnóstico fallas SW/HW, Instalación SW/HW/dispositivos, Optimización SO, Respaldo data, Armado computadoras

Adevcom (Angular Developer)
Chile · En remoto

Febrero 2024 - Presente
1 año 5 meses

Proyecto: Requerimientos Normativos, ISL

Rol: Desarrollo Frontend con Angular 13

Contribuciones: Componentes reutilizables, Formularios (Template Driven/Reactive), Validaciones, Campos dinámicos

Optimización: 50% en manejo de datos complejos, Servicios personalizados

Implementación: Directivas, Guards, Interceptores

Soporte Backend: Despliegue local, Controladores REST (Spring Boot), Consultas JPA, Programación funcional (Java 8 Streams)

Tecnologías: Angular 13, Java 8, Spring Boot 3, SQL Server, ng-bootstrap, Keycloak, Swagger, Lombok

Credit Agile, Inc
Panamá · En remoto

React SSR – Next.js Developer

Febrero 2021 - Mayo 2023
2 años 4 meses

Refactoring y desarrollo FrontEnd (SSR con Next.js)

Creación: Sistema inactividad/cierre sesión (react-idle-timer), Hooks personalizados (useForm)

SEO optimización

API interna (Node.js, next-connect), Manejo dinámico Router Next.js, Api Gateway (Node.js)

Sistema Sesiones (Express.js, getServerSideProps)

Mejora rendimiento carga App (50% con caché)

Migración Material-UI V4 a V5

Tecnologías: React, Next.JS 9-11, React Hooks, Redux, redux-thunk, express-session

React Native Developer

Agosto 2019 - Julio 2021
2 años

Creación App móvil gestión préstamos

Implementaciones React Native (Expo, ExpoKit, Nativo)

Sistemas: Task persistentes, Geolocalización/Tracking, Notificaciones Push (FireBase)

Uso cámara y subida archivos

Layouts (Navigators)

Visor Imágenes/PDF

Módulo nativo Android (Servicio Headless JS, Notificación persistente)

Módulo nativo Android (Consumo API clima openweathermap.org)

Tecnologías: Expo, ExpoKit, React Native, Cloud Functions, RxJs - BehaviorSubject

Click Result group Ltd (Full Stack Developer)
España · En remoto

Oct. 2016 - Dic. 2017
1 año 3 meses

Modificación CMS 'Simple CMS ' (phpjabbers): Características de wix.com/websitebuilder.com

Edición en línea (CKeditor 4), Creación/modificación plugins CKeditor 4

Sistema edición dinámica Front-end (CSS, JS, HTML)

Sistema múltiples idiomas ('STIVA Blog Script ')

Tecnologías: JavaScript, HTML 5, CSS3, PHP 5.6.25, MySQL 5.6.17, CKeditor 4, JQuery

Contenidos, aportes digitales

Mi Camino hasta Aquí

Podcast Profesional
Testimonio profesional en Video

r

Podcast Profesional - testimonio profesional en VideoEn este video comparto parte de mi recorrido como desarrollador, desde mis primeros aprendizajes independientes hasta la experiencia formal, incluyendo aprendizajes clave y cómo enfrenté ciertos desafíos en mi carrera.Pienso que este contenido complementa mi perfil y permite conocer más sobre el trasfondo de mi carrera, las decisiones que me formaron y cómo afrontar los desafíos profesionales desde una perspectiva real y práctica.

Habilidades Técnicas

Angular

r

Mi dominio en Angular (y TypeScript, su superconjunto) es muy sólido y se extiende a más de 3 años y 4 meses en proyectos reales con versiones que van desde la 6 hasta la 13.Además, estoy activamente explorando las últimas versiones como Angular 17/19 con Signals, sobre lo cual he publicado artículos y sigo formándome.He tenido la oportunidad de aplicar mis conocimientos de Angular en diversos contextos y proyectos:Desarrollo Front-End en Adevcom (Chile)Febrero de 2024 - 1 año y 4 meses - Angular 13Proyecto de prevención de riesgos laborales para el Instituto de Salud Laboral (ISL), desarrollando un sistema de gestión de denuncia.Mis contribuciones clave incluyen la creación de componentes reutilizables con ng-template y ng-container.He implementado formularios complejos, tanto Template Driven como Reactive Forms, con validaciones personalizadas y la gestión de campos dinámicos usando FormBuilder y FormArray.Logré una optimización del 50% en el manejo de datos complejos gracias a servicios personalizados como FormService y DataContextService, lo que mejoró la comunicación entre componentes y me permitió entregar funcionalidades clave en tiempo récord.También he implementado directivas personalizadas, Guards para el control de acceso basado en roles e Interceptores para el manejo global de errores HTTP.Soluciones Avanzadas para Formularios en Angular:Desarrollé un componente de formulario dinámico utilizando FormArray para manejar grupos de campos repetibles de forma eficiente, ideal para casos como registros de usuarios o listas de tareas.Creé un servicio robusto y eficiente diseñado para gestionar formularios anidados en aplicaciones complejas, centralizando la sincronización, validación y acceso a datos. Este servicio estandariza la gestión, evitando inconsistencias y simplificando el mantenimiento del código.Proyectos con Stack MEAN y APIs(desde agosto de 2020 hasta mayo de 2022) - Angular 10Trabajé en un sistema de hospitales utilizando el MEAN Stack (MongoDB, Express, Node.js), lo que implicó la creación de una arquitectura de aplicación Angular a gran escala basada en módulos, un backend robusto con API RESTful, manejo de subida de archivos y autenticación JWT y Google SignIn.Abril y mayo de 2022 - Angular 13Desarrollé una plataforma de películas con Angular y Node.js/Express, que incluye autenticación con Auth0, protección de rutas sensibles con canLoad y canActivate, y Lazy-loading.Pruebas y Buenas PrácticasMayo de 2022 - Angular 13Mi enfoque no es solo que el código funcione, sino que sea eficiente, elegante y fácil de entender.Por ello, he trabajado extensivamente en pruebas unitarias y de integración en Angular, abarcando desde las comprobaciones básicas hasta temas avanzados como el manejo de Observables, espías y la simulación de servicios.Otras Contribuciones Relevantes en Angular:Junio de 2019 - Angular 8Implementé funcionalidades de Drag and Drop para la subida de archivos a Firebase con barra de progreso.Junio de 2019 - Angular 8Desarrollé un sistema de gestión de usuarios CRUD con PHP y MySQL, aplicando formularios reactivos, validaciones asíncronas, patrones de diseño e inyección de dependencias.Febrero de 2019 - Angular 7Creé una pequeña imitación de LinkedIn, destacando el Server-Side Rendering (SSR) y el uso de Firebase para el feed y el perfil.Diciembre de 2018 - Angular 6Exploré a fondo la creación de formularios tanto reactivos como basados en plantillas, con validaciones personalizadas y manejo dinámico de campos.Junio de 2019 - Angular 6Desarrollé una aplicación que consume la API REST de Spotify, gestionando la autenticación con tokens, el manejo de datos asíncronos con Observables y la protección de rutas con Guards.Mi habilidad con Angular, combinada con mi experiencia en TypeScript, me permite construir microfrontends escalables para aplicaciones empresariales y soluciones avanzadas que requieren un alto nivel de detalle y optimización.Mi experiencia total y activa trabajando con Angular, sumando tanto mi rol formal en empresas como los proyectos personales significativos y otras contribuciones, asciende a aproximadamente 3 años y 4 meses.Este cálculo se compone de:1 año y 5 meses de mi rol actual en Adevcom1 año y 9 meses dedicados al proyecto MEAN StackAproximadamente 5 meses adicionales que corresponden a la suma de los periodos de trabajo concentrados en los proyectos más pequeños y específicos que he desarrollado con Angular a lo largo de mi trayectoria.-------------

TypeScript

r

Mi experiencia con TypeScript, aunque más reciente en comparación con otras tecnologías, ha sido significativa y me ha permitido mejorar la calidad y mantenibilidad de los proyectos en los que he trabajado.Desde enero hasta junio de 2023 (6 meses), en mi rol como React Developer en Epidata, utilicé TypeScript para desarrollar aplicaciones frontend robustas y escalables. Durante este periodo, implementé componentes funcionales con React y TypeScript, aprovechando las ventajas de tipado estático para reducir errores en tiempo de desarrollo y mejorar la documentación implícita del código.A lo largo de mi trayectoria, he incorporado TypeScript en varios proyectos personales y colaborativos, donde he migrado código JavaScript a TypeScript para optimizar la calidad y facilitar el mantenimiento, así como para integrar mejores prácticas de desarrollo.En mi rol actual en Adevcom (desde febrero de 2024), aunque el foco principal es Angular con TypeScript, aplico esta tecnología de forma constante para construir componentes, servicios y módulos con tipado fuerte, lo que mejora la robustez y escalabilidad del código.En conjunto, estimo que cuento con alrededor de 2 años y 4 meses de experiencia práctica con TypeScript. Este total se compone de:1 año y 5 meses de mi rol actual en Adevcom, trabajando con Angular y TypeScript.6 meses en Epidata desarrollando con React y TypeScript.Aproximadamente 5 meses adicionales, que corresponden a la suma de los periodos de trabajo concentrados en proyectos pequeños y específicos donde he utilizado TypeScript a lo largo de mi trayectoria.En total, cuento con alrededor de 2 años y 4 meses de experiencia práctica con TypeScript, lo que me permite desarrollar aplicaciones modernas con un enfoque en calidad, escalabilidad y mantenibilidad.-------------

API RESTful

r

Mi experiencia total y activa trabajando con API RESTful, sumando tanto mi rol formal en empresas como los proyectos personales significativos y mis contribuciones, asciende a aproximadamente 9 años y 10 meses.Aquí te desgloso mi trayectoria y lo que he hecho con API RESTful:Desde febrero de 2024 hasta la actualidad (1 año y 4 meses)En Adevcom (Chile), como Desarrollador Angular, he proporcionado soporte de Backend desarrollando controladores REST con Spring Boot, realizando consultas JPA y utilizando programación funcional con Java 8 Streams para requerimientos específicos.Desde febrero de 2021 hasta mayo de 2023 (2 años y 4 meses)Durante mi rol como React SSR – Next.js Developer en Credit Agile, Inc. (Panamá), fui responsable de la creación de una API interna con Node.js y next-connect, una API Gateway con Node.js, y un sistema de sesiones con Express.js para proteger las páginas con roles usando getServerSideProps de Next.js. Esto fue fundamental en el refactoring y desarrollo del FrontEnd con React renderizando del lado del servidor.Desde agosto de 2019 hasta julio de 2021 (2 años)Como React Native Developer en Credit Agile, Inc. (Panamá), desarrollé un módulo nativo de Android para el consumo de la API del clima de openweathermap.org en una aplicación móvil para la gestión de préstamos.Desde diciembre de 2017 hasta septiembre de 2019 (1 año y 10 meses)En BONDAREA (Argentina), participé activamente en la creación de BREF Bondarea Render Framework, un sistema que renderizaba información de una API en diferentes tipos de componentes Bootstrap.Desde agosto de 2020 hasta mayo de 2022 (1 año y 9 meses)Trabajé en un sistema de hospitales utilizando el MEAN Stack (MongoDB, Express, Angular 10, Node.js), donde creé un backend robusto con API RESTful, manejando la subida de archivos, autenticación JWT y Google SignIn.Desde abril de 2022 hasta mayo de 2022 (2 meses)Desarrollé una plataforma de películas con Angular 13, donde el servidor creado con Node.js y Express servía datos de películas como un archivo JSON a través de un único endpoint protegido por un token de Auth0.En agosto de 2023 (1 mes)Creé una Calculadora de Inversión en Criptomoneda en React que utiliza servicios web RESTful para obtener información actualizada sobre criptomonedas como Bitcoin, Ethereum y Cardano.En abril de 2021 (1 mes)Desarrollé un proyecto con Node.js y Express.js enfocado en Sessions y ataques CSRF, donde mostré cómo proteger las rutas sensibles de un servicio REST.En julio de 2020 (1 mes)En un proyecto con Vue.js 2 para un listado de productos con carrito de compras, implementé operaciones CRUD con JSON Server y el consumo de una API usando Vuex y Vue Router, manejando operaciones HTTP como GET, POST, PUT y DELETE.En noviembre de 2018 (1 mes)Desarrollé una aplicación web con Angular 6 que consume la API REST de Spotify, gestionando la autenticación con tokens y el manejo de datos asíncronos.En diciembre de 2021 (1 mes)Liberé el código fuente de mi portafolio V1, construido con React y Express, que incluía Server-Side Rendering (SSR) con capacidad de cachear datos recuperados del servidor para el primer renderizado, similar a Next.js, optimizando el SEO.Además de la experiencia práctica, mi conocimiento sobre API RESTful también se extiende a la divulgación. En marzo de 2023, publiqué un artículo titulado "Todo lo que necesitas saber sobre API Rest: Glosario de términos esenciales y más", lo que demuestra mi compromiso con el aprendizaje continuo y el intercambio de conocimientos en la comunidad de desarrolladores.Mi habilidad con las API RESTful es una de mis competencias técnicas clave, junto con el desarrollo con Node.js y Express.js. Esto me permite no solo crear APIs robustas y eficientes para el backend, sino también consumirlas e integrarlas eficazmente en soluciones frontend complejas.-------------

a

CyberSecurity / Ethical Hacking (OWASP)

r

Mi involucramiento en Ciberseguridad y Ethical Hacking (OWASP) ha sido una constante a lo largo de mi trayectoria, por motivos de curiosidad, aprendizaje y crecimiento profesional.Y aunque actualmente mi rol principal es como desarrollador web senior, he cultivado conocimientos específicos en CyberSecurity y Ethical Hacking, especialmente relacionados con OWASP Top 10, lo que me permite identificarme como Jr CyberSecurity en esta área. Mi contribución en este campo no proviene de un puesto formal dedicado exclusivamente a la ciberseguridad en una empresa, sino de la aplicación directa de estos conocimientos para asegurar mis desarrollos, junto con una formación continua y dedicada. Estudié para integrar la seguridad como un pilar fundamental en cada línea de código que escribo.Certificación Profesional y Formación Activa (2022 – 2023):He dedicado aproximadamente entre 1 y 2 años, desde mediados de 2022 hasta 2023, a la formación en CyberSecurity y Ethical Hacking, con especial atención a los estándares OWASP.El 31 de octubre de 2022, obtuve la certificación como Ethical Hacking Profesional de Seguridad Cero (curso de 60 horas académicas), abarcando el ciclo completo de ataque y defensa: desde la creación de laboratorios, reconocimiento, escaneo de puertos , explotación y secuestro de sesiones, hasta técnicas como MITM (Hombre en el medio), DOS, hacking de sistemas Windows, Active Directory, Web y Móvil, malware e ingeniería social.Ese mismo mes, completé estudios y certificación en OWASP Top 10 API+ y seguridad en APIs, fundamentales para la protección de servicios REST y modernas interfaces web.Proyectos Prácticos y Aplicación Real:En abril de 2021, desarrollé un proyecto educativo en Node.js y Express.js sobre protección CSRF, donde demuestro cómo se ejecutan estos ataques y cómo implementar protecciones efectivas. El código fue documentado y compartido para fines didácticos.En mis desarrollos actuales, aplico de forma sistemática las recomendaciones de OWASP: manejo seguro de autenticación, validación de entradas, protección contra inyecciones y otros ataques comunes.Estas prácticas se complementan con principios como Clean Code y SOLID, orientadas a crear software seguro, mantenible y escalable.Experiencia Previa y Contexto Técnico:Como ya he comentado en otros apartados, mi interés por la ciberseguridad no es reciente. Entre 2010 y 2011, desarrollé varias soluciones que, si bien no formaban parte de un enfoque formal, reflejan una comprensión temprana de cómo funcionan los sistemas, sus vulnerabilidades y cómo pueden ser manipulados para lograr ciertos fines.Uno de estos proyectos fue un programa en Visual Basic que se propagaba mediante autorun en Windows XP e instalaba una barra promocional vinculada a mi sitio web.También desarrollé una herramienta que extraía publicaciones de Taringa.net y generaba archivos SQL para alimentar mi propia base de datos. Ambos casos muestran cómo, incluso en etapas iniciales, trabajé con conceptos que hoy siguen vigentes en ciberseguridad: persistencia, ejecución automática, scraping, y automatización de tareas sobre sistemas reales.Divulgación Técnica y Aplicación Continua:Desde 2022 he compartido parte de mi trabajo mediante artículos en Dev.to y otras plataformas, abordando temas como:Diferencias Pentesting y Red TeamGoogle Hacking, Dorks Hacking, búsquedas avanzadas con GoogleDescubre SXDork: la herramienta para búsquedas automatizadas con dorks de GoogleEvilGinxv2, Bypass del doble factor de autenticación: la herramienta de phishing definitivaVillain: La herramienta de pentesting que utiliza Hoaxshell para burlar a Windows DefenderGuía práctica sobre ISO 27001Diferencias entre RED, BLUE y PURPLE TeamIntroducción a DevSecOpsConceptos básicos de Ethical HackingEn paralelo, mantengo un enfoque constante en aplicar seguridad desde el diseño (Security by Design) en cada proyecto, tanto en frontend como backend, con tecnologías como JavaScript, React, Angular y Node.js. -------------

a

Git

r

He trabajado con Git durante más de 8 años y 3 meses, tanto en proyectos personales como en entornos laborales, lo que me ha permitido desarrollar una sólida habilidad técnica en el manejo de esta herramienta de control de versiones. Desde mis inicios en el desarrollo web, he utilizado Git para gestionar el código fuente de aplicaciones, facilitando la colaboración en equipos pequeños y grandes, así como el control eficiente de versiones y ramas en proyectos complejos.En mi experiencia profesional, he aplicado Git en diversos roles y proyectos, desde desarrollador Full Stack hasta especialista en frontend con tecnologías como React, Angular, y Next.js. Por ejemplo, durante mi trabajo remoto en Credit Agile, Inc (febrero 2021 - mayo 2023), utilicé Git para manejar versiones en proyectos con React SSR y Next.js, asegurando una integración continua y un flujo de trabajo colaborativo efectivo con otros desarrolladores. También en mi rol como React Developer en Epidata (enero 2023 - junio 2023), Git fue fundamental para coordinar el desarrollo de un sistema integral de RRHH, permitiendo gestionar cambios, resolver conflictos y mantener la calidad del código.En mis proyectos personales y contribuciones a la comunidad, he documentado buenas prácticas y flujos de trabajo con Git, promoviendo la colaboración efectiva entre frontend y backend, y aplicando principios de desarrollo ágil y control de versiones para mejorar la productividad del equipo.En resumen, mi experiencia con Git abarca:Uso continuo desde aproximadamente 2015, acumulando más de 8 años de práctica.Gestión de repositorios en proyectos profesionales y personales.Coordinación de trabajo en equipo mediante ramas, pull requests y merge conflicts.Integración de Git con herramientas como Docker y plataformas de despliegue.Promoción de buenas prácticas en control de versiones en mis artículos y tutoriales.Total de años con Git: 8 años y 3 meses, combinando experiencia en proyectos personales y laborales.-------------

Google Cloud

r

He trabajado con Google Cloud durante aproximadamente 2 años, aplicando esta tecnología para potenciar el desarrollo y despliegue de aplicaciones web y móviles en proyectos profesionales y personales.Mi experiencia incluye la utilización de servicios como Firebase, Cloud Firestore, Realtime Database y Cloud Functions para gestionar infraestructura en la nube, así como para implementar soluciones escalables, seguras y eficientes.En mis roles como desarrollador frontend y full stack, he integrado Google Cloud con frameworks modernos como React, Next.js y React Native, aprovechando funcionalidades como bases de datos en tiempo real, autenticación, y automatización de tareas mediante funciones en la nube. Por ejemplo, en aplicaciones móviles con React Native, utilicé Firebase Realtime Database y Cloud Functions para gestionar datos dinámicos y automatizar tareas de mantenimiento, como la eliminación automática de registros antiguos, mejorando la eficiencia y escalabilidad.He desarrollado habilidades avanzadas en la creación y administración de índices en Firestore para realizar búsquedas eficientes con ordenamientos ascendentes y descendentes, optimizando consultas complejas según los campos de filtro, orden y rango requeridos.He implementado estrictas reglas de seguridad para proteger las bases de datos en Firestore y Firebase Realtime Database, asegurando que solo usuarios autorizados puedan acceder o modificar la información, lo que fortalece la integridad y confidencialidad de los datos.También utilizo la Google Cloud Console para activar y configurar servicios esenciales, como el envío de correos electrónicos y la autenticación, gestionando APIs y servicios que mejoran la experiencia del usuario y la seguridad de las aplicaciones.---He trabajado con Google Cloud durante aproximadamente 2 años, aplicando esta tecnología para potenciar el desarrollo y despliegue de aplicaciones web y móviles en proyectos profesionales y personales.Mi experiencia incluye la utilización de servicios como:FirebaseCloud FirestoreRealtime DatabaseCloud Functions para gestionar infraestructura en la nube, así como para implementar soluciones escalables, seguras y eficientes.En mis roles como desarrollador frontend y full stack, he integrado Google Cloud con:ReactNext.jsReact Native aprovechando funcionalidades como bases de datos en tiempo real, autenticación, y automatización de tareas mediante funciones en la nube. Por ejemplo, en aplicaciones móviles con React Native, utilicé Firebase Realtime Database y Cloud Functions para gestionar datos dinámicos y automatizar tareas de mantenimiento, como la eliminación automática de registros antiguos, mejorando la eficiencia y escalabilidad.He desarrollado habilidades avanzadas en la creación y administración de índices en Firestore para realizar búsquedas eficientes con ordenamientos ascendentes y descendentes, optimizando consultas complejas según los campos de filtro, orden y rango requeridos.He implementado estrictas reglas de seguridad para proteger las bases de datos en Firestore y Firebase Realtime Database, asegurando que solo usuarios autorizados puedan acceder o modificar la información, lo que fortalece la integridad y confidencialidad de los datos.También utilizo la Google Cloud Console para activar y configurar servicios esenciales, como:El envío de correos electrónicosLa autenticación Gestionando APIs y servicios que mejoran la experiencia del usuario y la seguridad de las aplicaciones.-------------

JavaScript ES6

r

Tengo más de 8 años aplicando tecnología de JavaScript ES6 en proyectos personales y profesionales. Mi experiencia con JavaScript ES6 es amplia, siendo esta la base fundamental de mi carrera.Aunque mis primeros acercamientos a esta tecnología surgieron de la exploración personal —escribiendo código directamente desde archivos del sistema en Windows 98—, en enero de 2018 consolidé mis conocimientos con una certificación formal en "Programación avanzada con JavaScript y ECMAScript 6", impartida por campusMVP.Esta formación me permitió reforzar y estructurar de manera profesional mi dominio sobre las características del lenguaje y el estándar ES6 .Mi experiencia destacada:En BONDAREA (diciembre 2017 - septiembre 2019) como JavaScript Developer Diseñe y desarrolle BREF (Bondarea Render Framework), un sistema innovador para renderizar páginas web completas a partir de estructuras JSON. Este proyecto implicó manipulación avanzada del DOM con Vanilla JS, concatenación de strings y uso controlado de eval para ejecutar código JavaScript bajo demanda.Dominio del Event Loop y la cola de tareas de JavaScript, asegurando que la interfaz no se bloqueara durante operaciones pesadas. En Click Result Group Ltd (octubre 2016 - diciembre 2017) como Full Stack Developer Implementé un sistema para edición dinámica de CSS, JS y HTML en el frontend, requiriendo inyección y modificación de código en tiempo real con JavaScript. También desarrollé y adapté plugins para CKEditor 4 usando JavaScript.El manejo de conceptos como hoisting y closures fue clave para organizar el código y mantener el estado en funciones de edición y eventos DOM.Resolución de problemas complejos y optimización He aplicado técnicas para optimizar el rendimiento de aplicaciones JavaScript, minimizando bloqueos en el hilo principal y mejorando la experiencia de usuario mediante el manejo eficiente de asincronía y eventos.Implemento estrategias de optimización de algoritmos y estructuras de datos para mejorar la eficiencia computacional del código, lo que contribuye a reducir tiempos de ejecución y consumo de recursos. Sobre este tema, he publicado un artículo técnico titulado La ciencia de los algoritmos, donde explico conceptos clave y buenas prácticas para aplicar algoritmos eficientes en JavaScript.Soy un firme defensor de la escritura de código limpio y mantenible, aplicando principios SOLID y patrones de diseño para asegurar que el software sea escalable y fácil de mantener a largo plazo.Mutabilidad vs inmutabilidad: decisiones conscientes Comprendo profundamente las diferencias entre mutabilidad e inmutabilidad en JavaScript, y sé cuándo aprovechar una u otra.En algunos escenarios, he utilizado la mutabilidad de los objetos para optimizar rendimiento de manera controlada, pero también reconozco los riesgos que conlleva: comportamientos impredecibles, efectos colaterales y dificultades de trazabilidad.Por ello, aplico principios de inmutabilidad cuando es crucial mantener el control del estado y evitar errores complejos, especialmente en arquitecturas donde la previsibilidad del estado es clave.Conocimiento complementario en ciberseguridad, OWASP Top Ten: Como entusiasta de la ciberseguridad, aplico buenas prácticas de seguridad en el desarrollo JavaScript para proteger las aplicaciones contra vulnerabilidades comunes, fortaleciendo la integridad y confidencialidad de los datos.Utilizo diariamente características modernas de ES6 como let/const, arrow functions, destructuring, spread/rest, template literals, clases, módulos, promesas y async/await para escribir código limpio, eficiente y mantenible.Aplico patrones de diseño clásicos y avanzados, como Factory, Singleton y otros, para asegurar escalabilidad y robustez en las aplicaciones.En mí GitHub comparto código y librerías basadas en JavaScript ES6, y he escrito artículos técnicos y guías sobre buenas prácticas, y algunas arquitecturas.-------------

a

LitElement

r

Trabaje con LitElement cuando realicé mi curso de LitElement impartido por Escuela IT en el 2019. El curso lo hice para complementar mi stack como desarrollador frontend y aprender a crear Web Components nativos con LitElement, tecnología que es una evolución de Polymer. Aunque no he tenido la oportunidad de trabajar formalmente con LitElement, sí he aplicado esta tecnología en proyectos personales que me han permitido entender cómo funciona y sus características.Como parte de mi aprendizaje desarrollé varios componentes con LitElement:Un Todo List, donde aplique el patrón Mediador para la comunicación entre componentes en diferentes niveles (padres, hijos, nietos, abuelos), manejo de estado con localStorage, data binding por propiedades y carga dinámica de datos a través de atributos HTML. Este componente fue publicado, documentado y presentado en video.Un componente llamado "Fecha sin Calendario", con personalización total del idioma, estilos y presentación visual. Esta pieza fue publicada en GitHub, distribuida a través de NPM y acompañada de una demo funcional construida con Storybook. También fue compartida en comunidades especializadas como Polydile.Estos desarrollos fueron realizados con un enfoque claro en buenas prácticas, buscando producir piezas reutilizables, encapsuladas y altamente configurables. He compartido codigo, artículos y demostraciones como parte de un compromiso con la divulgación técnica y el software abierto.NOTA:Algunos de estos desarrollos se describen con más detalle en la sección de Proyectos de este mapa mental.-------------

Material UI

r

He trabajado con Material UI en diversos contextos, lo que me ha permitido consolidar una experiencia avanzada en esta librería.A continuación, te detallo dónde y qué he hecho con Material UI:Credit Agile, Inc. (Febrero 2021 - Mayo 2023):En mi rol como React SSR – Next.js Developer, una de mis contribuciones fue la migración de Material-UI desde la versión V4 a la V5. Esto implicó la actualización y adaptación de componentes de la interfaz de usuario para aprovechar las nuevas características y mejoras de rendimiento de la versión más reciente. También trabajé con @emotion/cache en Next.js 11 como parte de este proceso de optimización de estilos y rendimiento.Proyecto Next.js 14 con SSR, Redux, Material-UI y TSS-React (Septiembre 2024):He desarrollado una plantilla de aplicación web con Next.js 14 donde utilizó Material-UI para proporcionar componentes de interfaz de usuario modernos y personalizables. Enfrenté desafíos al integrar Material-UI con Next.js y SSR en versiones anteriores, por lo que creé esta plantilla para facilitar la integración. Para la carga eficiente de estilos desde el servidor, integre TSS-React, ya que los métodos tradicionales de aplicar estilos de Material-UI ya no funcionaban como antes. Esta plantilla está diseñada para asegurar una interfaz de usuario consistente, moderna y con una experiencia de usuario fluida, eliminando saltos de estilo al cargar los estilos desde el servidor. Este proyecto es un claro ejemplo de mi capacidad para integrar y utilizar Material UI en arquitecturas avanzadas y resolver problemas específicos de implementación.Tengo 2 años y 4 meses de experiencia formal trabajando con Material UI en empleos directos, y esta experiencia se complementa con el uso continuo de la librería en mis proyectos personales.

Next.js

r

Experiencia total: 2 años y 4 meses (uso profesional)Ámbitos: Desarrollo web con SSR, optimización SEO, rendimiento y estructuración avanzada de proyectos.Mi experiencia con Next.js se ha forjado tanto en el ámbito laboral como en proyectos personales, consolidando un dominio avanzado en su uso para el desarrollo web de alto rendimiento y renderizado del lado del servidor (SSR).Dónde y qué he hecho con Next.js:Credit Agile, Inc. (febrero 2021 - mayo 2023) Durante mi rol como React SSR – Next.js Developer:Implementé Server-Side Rendering para mejorar el SEO y reducir tiempos de carga.Integré funcionalidades como el manejo de la inactividad del usuario con react-idle-timer.Desarrollé Hooks personalizados (useForm, entre otros).Realicé optimización avanzada de SEO, alcanzando buenas puntuaciones en Google Lighthouse y PageSpeed Insights.Utilicé rutas dinámicas ([...param].js, [[...param]].js) y estructuré páginas protegidas usando getServerSideProps.Logré una mejora del 50% en el rendimiento de carga mediante implementación de caché.Proyecto: Next.js 14 con SSR, Redux y TSS-React (septiembre 2024) Desarrollé una plantilla de aplicación con:SSR completo desde el servidor para carga inicial optimizada.Integración de Redux para gestión de estado cargado desde el servidor.TSS-React para estilos con soporte SSR, eliminando saltos visuales en el renderizado.Solución a desafíos previos relacionados con la carga de estilos en SSR.

Node.js

r

Experiencia total: Más de 4 años (uso profesional y personal)Ámbitos: APIs REST, SSR backend, sesiones, seguridad, rendimiento, pruebas automatizadas y educación técnica.Node.js ha sido una pieza central en mi stack de desarrollo, sirviendo como núcleo para arquitecturas de backend, renderizado del lado del servidor (SSR) y la construcción de APIs robustas. Mi experiencia con esta tecnología abarca contextos profesionales, educativos y personales.En Credit Agile, Inc. (febrero 2021 – mayo 2023)Desarrollé una API interna utilizando Node.js y next-connect, estructurando rutas dinámicas al estilo Express.js ([...param].js, [[...param]].js).Implementé una API Gateway basada en Node.js para orquestar flujos de datos y proteger accesos.Construí un sistema completo de autenticación y sesiones utilizando express-session, express-fileupload, next-i18next/middleware, node-cache, cors y middlewares personalizados.Mejoré el rendimiento de la aplicación en un 50% con cacheo de datos en el servidor.Este entorno sirvió como base para arquitecturas SSR con Next.js.Proyectos personales y educativosAngular 10 | angular-adv-adminpro Backend completo con Node.js, Express.js y MongoDB (Mongo Atlas) usando Mongoose, CRUD para hospitales, médicos y usuarios con definición de modelos, esquemas y middleware para manipulación avanzada de datos. Validaciones con express-validator, rutas protegidas con JWT y control de roles, gestión de subida de archivos con express-fileupload, control de tipo, generación de nombres únicos con uuid y eliminación de archivos previos. Middleware para protección de endpoints, manejo de errores personalizados y CORS habilitado, implementé paginación en las consultas a la base de datos para mejorar la respuesta del backend. Las rutas fueron organizadas de forma modular y se estructuraron middlewares reutilizables para validación y control de acceso.Angular 13 | Plataforma de MoviesServidor en Express.js que sirve una base de datos simulada desde un archivo JSON, este backend de Node.js implementa cors para limitar el acceso a la API según origen.La API cuenta con un único endpoint protegido mediante validación de token emitido por Auth0, el archivo JSON simula una base de datos de películas, incluyendo título, descripción, tipo, imagen y fecha.La autenticación se gestiona mediante un middleware que valida el encabezado Authorization con el token correspondiente.React | Calculadora de Inversión en CriptomonedaDesarrollé un backend con Node.js y Express.js para gestionar la lógica de negocio y comunicarme con la Messari API, usando axios para realizar solicitudes HTTP autenticadas mediante API Key.Implementé CORS para permitir el acceso desde el frontend, incluso en entornos con orígenes distintos.Incluí procesamiento de archivos CSV para transformar datos estructurados cuando es requerido.Apliqué un patrón de inyección de dependencias funcional, pasando explícitamente a los controladores las librerías y funciones necesarias (axios, carga de datos, lógica de cálculo, etc.).Esto desacopla la lógica de negocio de implementaciones concretas, facilitando la reutilización, pruebas y mantenimiento. Además, contribuye a respetar el principio SOLID de inversión de dependencias (DIP).Al desacoplar el flujo de ejecución de cualquier implementación concreta, se facilita la reutilización de handlers y la posibilidad de intercambiar dependencias sin modificar su lógica interna.La estructura modular resultante mejora la claridad y mantenibilidad del código, y permite escalar la funcionalidad sin comprometer la organización.Utilicé variables de entorno para gestionar configuraciones sensibles a través de .env.La arquitectura modular del backend facilita la escalabilidad, el mantenimiento y la ejecución de pruebas unitarias.TDD en Node.js con JestGuía técnica con ejemplos de pruebas unitarias e integración con SuperTest. Incluye inyección de dependencias y diseño de tests para backends Express.Seguridad y CSRFProyecto explicativo sobre ataques CSRF y su prevención con tokens en rutas sensibles. Implementado con Node.js y Express, con lógica de protección en sesiones.Portafolio V1 (diciembre 2021)Aplicación isomórfica SSR + CSR usando Node.js (con Express), React, Webpack 4 y Babel. Permitía cachear datos en el servidor y renderizar HTML completo desde el backend.Implementé hidratación eficiente y diseñé una arquitectura modular y reutilizable, inspirada en Next.js pero hecha desde cero.

React

r

Experiencia total: 4 años y 10 meses (uso profesional y personal)Mi primer contacto con React marcó un punto de inflexión en mi carrera como desarrollador FrontEnd.Venía de trabajar con JavaScript puro (Vanilla JS) en Bondarea, allí, en eso de diciembre de 2017 a septiembre de 2019.Donde incluso contribuí al desarrollo de un framework propio para renderizar estructuras HTML a partir de objetos JSON BREF (Bondarea Render Framework), implicando una manipulación avanzada del DOM.Al pasar a React, experimenté un cambio de paradigma que me permitió comprender con claridad el funcionamiento del Virtual DOM y su comparación con el DOM tradicional del navegador.Esto no solo representó un salto técnico, sino también conceptual: pasé de un enfoque procedural y manual a uno declarativo y estructurado.Fue también en esa etapa donde consolidé mis conocimientos en ES6, iniciando así un camino enfocado en el desarrollo moderno de componentes frontend.Esa base técnica me permitió adaptarme con naturalidad a React Native, donde el modelo de renderizado ya no utiliza etiquetas HTML, sino componentes específicos como View, Text o Image, lo que representa un cambio profundo en la forma de construir interfaces, trasladando el paradigma declarativo de React al entorno nativo con su propia lógica visual y de comportamiento.Experiencia profesional:Epidata (enero 2023 – junio 2023):Trabajé como React Developer, aplicando React junto a TypeScript, Hooks, Redux y Vite.Credit Agile, Inc. (febrero 2021 – mayo 2023):Me desempeñé como React SSR – Next.js Developer, utilizando React en combinación con Server-Side Rendering mediante Next.js.Desarrollé hooks personalizados para formularios, entre otras funcionalidades avanzadas relacionadas con el ciclo de vida y la estructura del frontend.Proyectos personales destacados:Next.js 14 con SSR, Redux, Material-UI y TSS-React (septiembre 2024):Desarrollé una plantilla de aplicación web con Next.js 14, Server-Side Rendering, Redux y TSS-React para soporte completo de estilos desde el servidor.MicroFrontends con Vite, React, Redux y i18next (diciembre 2023):Construí una arquitectura de microfrontends escalable con comunicación entre host y submódulos, integración de Redux para estado compartido y sincronización global de idioma.Calculadora de Inversión en Criptomoneda (agosto 2023):Aplicación web que proyecta ganancias anuales sobre inversiones en criptomonedas, con manejo de tablas dinámicas e interfaz responsiva.Portafolio V1 - SSR (diciembre 2021):Desarrollé mi primer portafolio utilizando la tecnología de React con Server-Side Rendering (SSR) sin depender de frameworks como Next.js, construyendo una arquitectura de renderizado desde el servidor totalmente personalizada con React y JavaScript.Tecnologías utilizadas: React, React Hooks, react-universal-component, express.js, Webpack 4, Babel.Aspectos clave:Renderizado completo desde el servidor:La aplicación genera contenido HTML desde el servidor utilizando React, permitiendo que los usuarios reciban una página completamente renderizada desde el primer request. Esto mejora significativamente el rendimiento de carga inicial y favorece el SEO, al entregar contenido listo para ser indexado.Sistema de caché en el servidor (similar a Next.js):Implementé un mecanismo de cacheo de datos en el servidor que evita llamadas innecesarias al backend. Utilicé una clave getInitialData por ruta, inspirada en el modelo de Next.js, para recuperar los datos antes del renderizado.Hidratación eficiente en el cliente:Una vez enviada la página desde el servidor, React se encarga de hidratarla en el cliente, adjuntando los eventos y habilitando la interacción. Este proceso requería un manejo preciso del Virtual DOM para mantener la sincronización entre ambas partes.Ecosistema propio y reutilizable:La arquitectura fue diseñada como una base escalable para futuros proyectos con SSR. Su estructura modular permite integraciones rápidas y rendimiento optimizado, con enfoque en SEO y experiencia de usuario.Este proyecto reflejó mi dominio del renderizado isomórfico (SSR + CSR), consolidando prácticas modernas de desarrollo con React y control explícito sobre el ciclo de datos, el entorno de ejecución y la estrategia de carga.Conocimientos clave en React:Componentes funcionales y de claseCiclos de vida de componentesReact Hooks: useState, useEffect, useCallback, useContext, useRef, useLayoutEffect, useMemo, React.memoConceptos avanzados: Portal, createElement, isValidElement, Higher-Order Components (HOC), flushSyncManipulación avanzada del DOMManejo de asincronía y eventosArquitectura de microfrontendsSSR y optimización de rendimiento

React Native

r

Experiencia total: 2 añosMi experiencia con React Native se desarrolló principalmente durante mi etapa como React Native Developer en modalidad remota para Credit Agile, Inc.Desde agosto de 2019 hasta julio de 2021. Credit Agile, Inc. era una compañía enfocada en la gestión de préstamos y pagos, en este rol, me enfoque en la creación de una aplicación móvil para la gestión de préstamos.Durante este proyecto trabajé con distintas configuraciones del entorno, incluyendo:Expo, ExpoKit y React Native sin capas intermedias ("al desnudo"), adaptando cada implementación según los requisitos técnicos.Entre los aspectos más relevantes de mi experiencia destacan:Persistencia en segundo plano: Desarrollé un sistema de tareas persistentes que continuaban funcionando tras reinicios del dispositivo.Geolocalización y seguimiento en tiempo real: Implementé un sistema de tracking que mostraba la ubicación en tiempo real sobre mapas de Google, proporcionando información al equipo de recuperación de la compañía.Notificaciones push con Firebase y Cloud Functions: Integré notificaciones automáticas que eran generadas por funciones en la nube, las cuales también ejecutaban tareas de mantenimiento en la base de datos.Interacción con la cámara y subida de archivos: Incorporé funcionalidades de captura y carga de imágenes directamente desde el dispositivo.Diseño de navegación estructurada: Construí layouts utilizando createBottomTabNavigator, createStackNavigator y un TopFooter personalizado, manteniendo consistencia en los encabezados y pies de página.Visualización de documentos: Integré un visor para imágenes y archivos PDF.Desarrollo de módulos nativos en Android: Creé un módulo para manejar un servicio Headless JS con notificación persistente, evitando que el sistema operativo cerrara la aplicación en segundo plano. Desarrollé otro módulo para consumir la API de clima de openweathermap.org, utilizando su salida para mantener activa la aplicación mediante una notificación disfrazada.

Redux / Redux Thunk

r

Experiencia total: 2 años y 10 meses (uso profesional y personal)Manejo Redux y Redux Thunk de forma avanzada, aplicándolos en la gestión de estado dentro de aplicaciones React y Next.js tanto en entornos laborales como en proyectos personales.Credit Agile, Inc. (febrero 2021 – mayo 2023)Utilicé Redux junto con Redux Thunk para la gestión de estado en un entorno SSR con React y Next.js. Integré estas herramientas durante el refactor y desarrollo del frontend, asegurando una lógica predecible y mantenible.Epidata (enero 2023 – junio 2023)Apliqué Redux y Redux Thunk como adaptador de estado, generando modelos de datos ficticios que permitieron desacoplar la interfaz del backend y acelerar el desarrollo de prototipos funcionales. Esta estrategia mejoró la eficiencia del equipo y facilitó la integración posterior.Proyecto personal – Microfrontends con Vite y Redux (diciembre 2023)Utilicé Redux para compartir estado entre un host y dos microfrontends. Redux fue fundamental para coordinar eventos globales y mantener la sincronización de datos dentro de una arquitectura modular.Plantilla SSR con Next.js 14 y Redux (septiembre 2024): Desarrollé una plantilla con Server-Side Rendering en Next.js 14 utilizando Redux para inicializar y cargar el estado desde el servidor. La estructura facilita la integración de Redux en proyectos con SSR, resolviendo limitaciones comunes en versiones anteriores de Next.js.Mi experiencia con Redux y Redux Thunk se traduce en soluciones concretas aplicadas en arquitecturas complejas y escalables.

Tailwind CSS

r

Experiencia total: 6 meses de uso formal + más de 7 meses si se incluyen proyectos personalesMi experiencia con Tailwind CSS es sólida y se ha desarrollado tanto en entornos profesionales como en proyectos personales. Lo he utilizado para construir interfaces precisas a partir de diseños, aprovechando su enfoque utilitario para mantener el código limpio y coherente.Epidata (enero 2023 - junio 2023) Durante mi trabajo como React Developer, participé en el desarrollo de un Sistema Integral de Recursos Humanos. En este contexto, utilicé Tailwind CSS para replicar una maqueta de Figma en React, integrando componentes de @headlessui/react para mejorar la accesibilidad y el comportamiento interactivo. Si bien al principio enfrenté cierta dificultad para identificar clases específicas según el estilo deseado, logré superar estos desafíos mediante el uso constante de la documentación oficial, la cual considero especialmente clara y bien estructurada.Proyecto personal: Calculadora de Inversión en Criptomoneda (agosto 2023) Implementé Tailwind CSS en el diseño de una aplicación web que permite a los usuarios definir un balance de inversión en criptomonedas y calcular la ganancia anual esperada. Este proyecto me permitió aplicar Tailwind en una lógica de UI centrada en la experiencia del usuario y el diseño responsivo.

Vite

r

Experiencia total: 6 meses de uso formal + experiencia aplicada en proyecto personal (diciembre 2023)He trabajado con Vite en entornos tanto profesionales como personales, utilizándolo como herramienta clave para optimizar la experiencia de desarrollo y configurar entornos modernos de forma eficiente.Epidata (enero 2023 - junio 2023): Durante mi etapa como React Developer en Epidata, trabajé en el desarrollo de un Sistema Integral de Recursos Humanos. En este proyecto utilicé Vite junto con TypeScript, React (Function Component) y Redux para establecer un entorno de desarrollo ágil. Además, integré una API de Laravel desplegada localmente mediante Docker. Vite fue clave para mejorar los tiempos de carga y simplificar la configuración del entorno.Proyecto personal: Microfrontends con Vite, React y Redux (diciembre 2023): Desarrollé un sistema de microfrontends escalable basado en Vite Module Federation. Implementé una arquitectura compuesta por un host y dos microfrontends, asegurando una comunicación fluida a través del intercambio de estados y eventos globales. El proyecto incluyó carga bajo demanda con React.lazy, manejo de estilos con Styled Components y metodología BEM, además de soporte multilingüe mediante i18next. Repositorio en GitHubEsta combinación de experiencia formal y aplicación personal me permite utilizar Vite en arquitecturas eficientes, facilitando entornos de trabajo rápidos, modulares y bien estructurados.

Vue.js

r

Aunque mi enfoque principal ha estado en otros frameworks, he trabajado con Vue.js en proyectos personales que me han permitido adquirir experiencia práctica con la versión 2 del framework y su ecosistema. Desarrollo de un Listado de Productos con Carrito de Compras (Julio 2020):Desarrollé una aplicación web que permite listar productos y gestionar un carrito de compras sin necesidad de recargar la página.Utilicé Vuex para la gestión de estado, incluyendo módulos con namespace y persistencia de datos en LocalStorage o IndexedDB.Construí componentes reutilizables con la instancia principal de Vue y Vue Components.Validé formularios usando VeeValidate.Apliqué transiciones con Vue.js y desarrollé un buscador funcional utilizando Vuex y getters.Implementé autenticación de usuarios y persistencia de sesión con Vuex.Realicé operaciones CRUD (GET, POST, PUT, DELETE) consumiendo una API simulada con JSON Server y gestionando rutas mediante Vue Router.Controlé el acceso a rutas públicas y privadas usando beforeEach en Vue Router.Utilicé Axios y VueAxios para las peticiones HTTP, con middleware en JSON Server para manejar el flujo de inicio de sesión.Apliqué hojas de estilo en Stylus y construí una ventana modal con animaciones mediante Vue Transitions.Trabajé con mapState, mapMutations y propiedades computadas (getters y setters).Manejé data binding con v-model, uso de arrays, comunicación entre componentes con $emit y observación de cambios con watchers.Añadí funcionalidades reutilizables con mixins y creé directivas personalizadas para enfoque automático y estilos dinámicos.Desarrollé plugins con argumentos, gestioné props con validación y entendí su comportamiento dentro del sistema reactivo de Vue.Contribución Didáctica con Vue.js (Sitio Web + GitHub) ( Abril 2021)He documentado y publicado una serie de implementaciones funcionales sobre Vue.js 2 en mi sitio web personal.Esta sección presenta ejemplos visuales y código fuente accesible desde mi repositorio en GitHub, donde explico de forma aplicada el funcionamiento de las principales características del framework, como:v-model, props, watchers, computed@click, v-show, v-if, v-for, emitUso de plugins, slots, filters y comunicación entre componentes padre-hijoCarga dinámica de componentesEstructura y práctica modular con separación de responsabilidadesEstas contribuciones están disponibles públicamente y funcionan como un soporte para quienes desean aprender los fundamentos de Vue.js 2 desde una base aplicada.

Habilidades Blandas

Capacidad de adaptación

Coordinación de metas

Inteligencia emocional

Pensamiento crítico

Resiliencia

Superación de obstáculos

Arq. Software

Principios SOLID y Clean Code
Udemy (jun. 2022)

r

Principios SOLID y Clean CodePeriodo: Año 2022Duración: 6.5 horasContenido principal:Deuda técnica: definición, consecuencias y prevenciónCode smells: los 6 principales y otros menos comunesPrincipios SOLID aplicados al diseño de software:Single Responsibility Principle (SRP)Open/Closed Principle (OCP)Liskov Substitution Principle (LSP)Interface Segregation Principle (ISP)Dependency Inversion Principle (DIP)Técnicas y buenas prácticas para escribir código limpio, legible, mantenible y escalable🔗 Mostrar credencial

Software Testing

TDD en NodeJS, guía de tests con Jest
Udemy (jun. 2022)

r

TDD en NodeJS – Guía de tests con JestPeriodo: Año 2022Duración: 2.5 horasContenido principal:Introducción en profundidad a Test Driven Development (TDD) en entornos Node.js y TypeScriptUso de Jest como framework de testing: configuración, mocks, spies, stubs y dobles de pruebaEnfoques de TDD: tradicional (Chicago/classicist) y mockist (London/outside-in)Red-Green-Refactor: ciclo de diseño impulsado por testsDesarrollo de APIs REST y lógica de negocio cubiertas por pruebasDeploy y prácticas seguras al refactorizar código🔗 Mostrar credencial

Introducción al Testing de Software: ¡para Principiantes! Udemy (ene. 2019)

r

Introducción al Testing de Software: para Principiantes!Periodo: Año 2019Duración: 3 horasContenido principal:Conceptos básicos de testing: qué es, roles y ciclo de vidaDiferencias entre SDLC y STLCDiseño y técnicas de pruebas: caja negra, caja blanca y exploratoriaCreación y gestión de casos de prueba, reporte y seguimiento de defectosRoles en el equipo, artefactos y metodologías ágilesEjercicios prácticos con ejemplos reales, retroalimentación de la instructora🔗 Mostrar credencial

Cursos de Especialización en Redes

Cisco CCNA

Estudios en redes de computadoras

(Cisco Networking Academy, CCNA 1-3 UCV Maracay, 2004)

r

Programa de Networking CCNA – Semestres 1, 2 y 3Institución / Academia: Academia Local Cisco (ID: 674408), UCV – Núcleo MaracayUbicación: Maracay, VenezuelaPeriodo: Año 2004 Duración: 220 horasContenido principal: Fundamentos de redes, switching, routing y configuración básica de dispositivos Cisco.🔗 Mostrar credencial

Angular

Angular Avanzado: Lleva tus bases al siguiente nivel - MEAN Udemy (jun. 2022)

r

Angular Avanzado: Lleva tus bases al siguiente nivel - MEAN Periodo: Año 2022Duración: 32.17 horasContenido principal:Generación, estructuración y control de componentes con Angular CLIRouting avanzado: rutas hijas, rutas protegidas, guards, lazy loadingComunicación entre componentes con @Input, @Output y serviciosGestión dinámica de estilos, configuración global y uso de scripts externosObservables, promesas y operadores de RxJSBackend con Node.js, Express y MongoDB: modelos, rutas, middlewares, JWTCRUD completo para entidades: usuarios, médicos y hospitalesValidaciones y formularios reactivos con AngularAutenticación tradicional y con Google Sign-InManejo de imágenes: carga, asignación y actualización desde el frontendBuscador global y filtrado por coleccionesControl de roles, permisos y restricciones de accesoIntegración y despliegue de SPA usando Angular y ExpressInterceptores para peticiones HTTP y manejo de erroresPruebas unitarias e integración con Angular Testing UtilitiesProyecto final con Firebase (hosting, Firestore y Cloud Functions)Implementación de gráficas en tiempo real y peticiones reactivas con AngularFire🔗 Mostrar credencial

a

Angular: De cero a experto - 2018
Udemy (may. 2019)

r

Angular: De cero a experto - 2018Periodo: Año 2019Duración: 35.44 horasContenido principal:Fundamentos de TypeScript: tipos, clases, interfaces, decoradores, promesasConfiguración y estructura de proyectos Angular (SPA) con Angular CLIRouting: navegación, parámetros, rutas hijas, guardsComponentes, @Input/@Output, directivas personalizadas y ciclo de vidaServicios e inyección de dependenciasFormularios: template-driven y reactivos, validaciones, FormArray y validadores personalizados/asíncronosPipes integrados y personalizadosPeticiones HTTP, manejo de errores, tokens y consumo de APIs RESTAutenticación con Firebase, Auth0 y Login personalizado con JWTGestión del estado del usuario y protección de rutasCRUD completo (Firebase y backend REST)Integración con APIs externas: Spotify, YouTube, TheMovieDB, Google MapsFirebase: Firestore, Realtime DB, Cloud Functions, Hosting y StorageDespliegue de aplicaciones Angular en Firebase y servidores ApacheGuía de estilos oficial, Angular Material, Tour of Heroes y recursos adicionales🔗 Mostrar credencial

a

Java

Domina Java
LinkedIn Learning (feb.2024)

r

Domina JavaPeriodo: Año 2024Duración: 1.33 horaContenido principal:Fundamentos de la sintaxis de Java: estructura del lenguaje, tipos de datos, control de flujo y manejo de erroresProgramación orientada a objetos: clases, herencia, encapsulación y polimorfismoTrabajo con colecciones y estructuras de datos comunesUso de funciones, métodos, argumentos y valores de retornoIntroducción a herramientas de desarrollo Java como IDE, depuración y buenas prácticas 🔗 Mostrar credencial

Java: Servicios web
LinkedIn Learning (feb. 2024)

r

Java: Servicios webPeriodo: Año 2024Duración: 1.55 horaContenido principal:Introducción a servicios web en Java: definición, beneficios, características y diferencias clave con otras arquitecturasEstándares esenciales: comprensión de SOAP y REST, comparación entre ambos, y conceptos de SOA vs microservicioConvenciones y buenas prácticas para escribir código Java legible, mantenible y robusto, incluyendo organización de archivos, espaciado, nombrado y comentarios.Configuración eficiente del entorno de desarrollo (Eclipse) para Java: formateo automático, gestión de errores y avisos, refactorización y plantillas de código.Componentes técnicos: XML, WSDL y UDDI en el ecosistema de servicios webManejo avanzado de excepciones en Java: tipos, creación, uso correcto de try-catch-finally y prevención de malas prácticas.Introducción y aplicación de pruebas unitarias en Java con JUnit para asegurar la calidad y evitar regresiones en el código.Uso de herramientas automáticas de revisión y análisis de código como Sonar y SonarLint para detectar y corregir errores, y mejorar la calidad del software.🔗 Mostrar credencial

Java: Servicios web
LinkedIn Learning (feb. 2024)

r

Java: Servicios webPeriodo: Año 2024Duración: 1.55 horaContenido principal:Introducción a servicios web en Java: definición, beneficios, características y diferencias clave con otras arquitecturasEstándares esenciales: comprensión de SOAP y REST, comparación entre ambos, y conceptos de SOA vs microservicioConvenciones y buenas prácticas para escribir código Java legible, mantenible y robusto, incluyendo organización de archivos, espaciado, nombrado y comentarios.Configuración eficiente del entorno de desarrollo (Eclipse) para Java: formateo automático, gestión de errores y avisos, refactorización y plantillas de código.Componentes técnicos: XML, WSDL y UDDI en el ecosistema de servicios webManejo avanzado de excepciones en Java: tipos, creación, uso correcto de try-catch-finally y prevención de malas prácticas.Introducción y aplicación de pruebas unitarias en Java con JUnit para asegurar la calidad y evitar regresiones en el código.Uso de herramientas automáticas de revisión y análisis de código como Sonar y SonarLint para detectar y corregir errores, y mejorar la calidad del software.🔗 Mostrar credencial

Java: Código robusto
LinkedIn Learning (feb. 2024)

r

Java: Código robustoPeriodo: Año 2024Duración: 3.42 horaContenido principal:Convenciones y buenas prácticas para escribir código Java legible, mantenible y robusto, incluyendo organización de archivos, espaciado, nombrado y comentarios.Configuración eficiente del entorno de desarrollo (Eclipse) para Java: formateo automático, gestión de errores y avisos, refactorización y plantillas de código.Manejo avanzado de excepciones en Java: tipos, creación, uso correcto de try-catch-finally y prevención de malas prácticas.Introducción y aplicación de pruebas unitarias en Java con JUnit para asegurar la calidad y evitar regresiones en el código.Uso de herramientas automáticas de revisión y análisis de código como Sonar y SonarLint para detectar y corregir errores, y mejorar la calidad del software.🔗 Mostrar credencial

Web Components

Web Components con LitElement
EscuelaIT (ago. 2019)

r

Web Components con LitElementPeriodo: Año 2019Duración: 25 horasContenido principal:Fundamentos del estándar Web Components: creación de elementos personalizados, encapsulados y reutilizables.Desarrollo con LitElement y Lit-HTML: propiedades reactivas, templates, slots y estilos dinámicos.Ciclo de vida de los componentes, eventos nativos y personalizados.Arquitectura basada en composición y patrón mediador (vs Redux).Interoperabilidad de componentes y uso compartido mediante mixins.Publicación de componentes en npm, documentación y uso de Storybook.Consumo de bases de datos en tiempo real con Firebase (Firestore) desde componentes LitElement.Configuración de entorno con Webpack para desarrollo con LiveReload.Introducción práctica a Redux aplicado a Web Components.Aplicación de animaciones CSS en componentes reutilizables.Uso de componentes LitElement en proyectos desarrollados con Angular.Organización de librerías de componentes en monorepo con Lerna.🔗 Mostrar credencial

a

Soft skills

Fundamentos de la resolución de conflictos
LinkedIn Learning (feb. 2024)

r

Fundamentos de la resolución de conflictosPeriodo: Año 2024Duración: 1.35 horaContenido principal:Identificación de las causas, tipos y naturaleza de los conflictosEstilos personales ante situaciones conflictivas y manejo del autocontrolEstrategias emocionales y conductuales para resolver conflictos interpersonalesMétodos formales: negociación, mediación y arbitrajeTécnicas de comunicación efectiva y escucha activaPasos para abordar y resolver conflictos dentro de entornos empresarialesCreación de espacios de confianza y diagnóstico claro del conflictoEvaluación del proceso y cierre de acuerdos sostenibles🔗 Mostrar credencial

Cómo trabajar con gerentes difíciles
LinkedIn Learning (feb. 2024)

r

Cómo trabajar con gerentes difícilesPeriodo: Año 2024Duración: 39 minutosContenido principal:Impacto profesional y emocional de trabajar con jefes difícilesIdentificación de las causas del conflicto y tipos comunes de gerentes problemáticosReconocimiento de factores desencadenantes y gestión de respuestas personalesEvaluación objetiva de la situación y diseño de un plan de acciónTécnicas de documentación y comunicación efectivaDetección del momento oportuno para pedir apoyo externoEstrategias para proteger tu bienestar sin comprometer tu carrera🔗 Mostrar credencial

La escucha activa
LinkedIn Learning (sept. 2023)

r

La escucha activaPeriodo: Año 2023Duración: 1.19 horaContenido principal:Evaluación de tus habilidades de escucha y áreas clave de enfoqueDetección de señales sutiles y desarrollo de empatía con el hablanteAdaptación del tipo de escucha según el contextoIdentificación de obstáculos comunes: distracciones internas, atención dividida, sobrecarga de informaciónDesarrollo de conductas efectivas: lenguaje no verbal, respeto al silencio, parafraseo y validación emocionalEjemplos prácticos y metas para mejorar la escucha activa en el entorno laboral y personal🔗 Mostrar credencial

Cómo aumentar la resiliencia
LinkedIn Learning (sept. 2023)

r

La escucha activaPeriodo: Año 2023Duración: 41 minutosContenido principal:Definición de resiliencia y evaluación del nivel personal actualTécnicas de entrenamiento previo al evento: gestión del rechazo, aprendizaje activo, exposición a la incomodidad, manejo de la energía y pensamiento positivoEstrategias posteriores a eventos difíciles: reflexión, elección de actitud, conexión con apoyo, recuperación y desapegoHerramientas prácticas para fortalecer el “umbral de resistencia”Desarrollo de hábitos para responder con flexibilidad y determinación frente al estrés o la adversidad🔗 Mostrar credencial

Navegar el cambio en tiempos difíciles
LinkedIn Learning (sept. 2023)

r

La escucha activaPeriodo: Año 2023Duración: 53 minutosContenido principal:El cambio como parte natural y constante de la vida humana y profesionalReconocimiento del cambio como oportunidad de crecimiento y productividadGestión emocional frente al cambio: entendimiento de las emociones y del funcionamiento del cerebroDesarrollo de la resiliencia como habilidad clave para enfrentar la incertidumbreEjercicios prácticos para recuperar el control mental ante situaciones difícilesIdentificación y transformación de creencias limitantes en tiempos de crisisEntrenamiento de la flexibilidad cognitiva y emocional para adaptarse con eficaciaConclusiones y pasos concretos para aplicar lo aprendido en contextos reales🔗 Mostrar credencial

Cómo escribir con eficacia
LinkedIn Learning (dic. 2020)

r

Cómo escribir con eficaciaPeriodo: Año 2020Duración: 1.38 horaContenido principal:Diferencias entre escribir bien y escribir con eficacia en el entorno profesionalAnálisis del destinatario y adaptación del mensaje al contexto y expectativas del lectorClarificación de la finalidad del texto: informar, convencer o solicitarUso de formatos efectivos como la pirámide invertida, titulares, llamadas a la acción y storytellingAplicación de principios de brevedad, claridad y sencillez para textos comprensibles y directosRevisión y corrección de textos para asegurar precisión sin perder impactoEstrategias para trabajar con textos largos y estructurar correctamente correos electrónicosTécnicas de redacción publicitaria y principios de marketing en contenidos escritosConsejos prácticos para revisar, corregir y perfeccionar un texto antes de su publicación🔗 Mostrar credencial

Cómo desarrollar la inteligencia emocional
LinkedIn Learning (dic. 2020)

r

Cómo desarrollar la inteligencia emocionalPeriodo: Año 2020Duración: 1.24 horaContenido principal:Fundamentos y relevancia de la inteligencia emocional en el entorno laboralComprensión de las emociones: propósito, estados de ánimo, decodificación y competencias emocionalesDesarrollo de la inteligencia intrapersonal: autoconciencia, autorregulación y automotivaciónFortalecimiento de la inteligencia interpersonal: empatía, comunicación efectiva e influencia positivaManejo de conflictos con enfoque emocional y liderazgo basado en empatía y autocontrolEstrategias prácticas para aplicar la inteligencia emocional en relaciones laborales cotidianas🔗 Mostrar credencial

Inteligencia emocional y motivación. Consigue tus objetivos
Udemy (feb. 2019)

r

Inteligencia emocional y motivación. Consigue tus objetivosPeriodo: Año 2019Duración: 42 minutosContenido principal:Introducción a los obstáculos emocionales más comunes al perseguir metas personalesAplicación del método de auto-motivación dividido en tres fases prácticasEstudio de casos reales: pérdida de peso y aprendizaje de un nuevo idiomaImplementación del método PRDS como estrategia para mantener el enfoque y la motivaciónReflexión sobre la relación entre emociones, esfuerzo y abandono de objetivosHerramientas prácticas para sostener el compromiso en procesos de cambio personal🔗 Mostrar credencial

Diplomados / Bootcamps

Programación Web
UneWeb (nov. 2016)

r

Diplomado de programación webPeriodo: Año 2016Duración: 240 horasContenido principal:  Lógica de programación, HTML4, HTML5, PHP I, PHP II, PHP III, PHP IV, MySQL 1, MySQL 2, JavaScript, Java Nivel I.🔗 Mostrar credencial

Bases de Datos SQL

Desafíos IT: consultas SQL
LinkedIn Learning (feb. 2024)

r

Desafíos IT: consultas SQLPeriodo: Año 2024Duración: 59 minutosContenido principal:Ejercicios prácticos con dos bases de datos: cine y tienda de bicicletasResolución de consultas SQL de complejidad crecienteTareas como: selección, filtrado, actualizaciones y joinsValidación y comparación de tus soluciones con las propuestas del instructor🔗 Mostrar credencial

PenTesting / CyberSecurity

Ethical Hacking Profesional
SEGURIDAD CERO (ago. 2022)

r

Ethical Hacking ProfesionalPeriodo: Año 2022Duración: 60 horasContenido principal:Fundamentos del Ethical Hacking y sus fases: reconocimiento, escaneo, enumeración, análisis de vulnerabilidades y explotaciónPrácticas en ambiente de pruebas: sniffing, man-in-the-middle (MITM), denegación de servicios (DoS), secuestro de sesionesHacking ético aplicado a sistemas Windows, Active Directory, aplicaciones web y móvilesIntroducción a ataques de ingeniería social, malware y generación de reportes técnicos🔗 Mostrar credencial

Implementación NIST Cybersecurity Framework Udemy (oct. 2022)

r

Implementación NIST Cybersecurity FrameworkPeriodo: Año 2022Duración: 1 horaContenido principal:Introducción al NIST Cybersecurity Framework (CSF) y su importancia en la gestión de ciberseguridadComprensión de las funciones principales: Identificar, Proteger, Detectar, Responder y RecuperarImplementación práctica del marco en organizaciones de diversos tamañosEvaluación y mejora continua de la postura de ciberseguridadIntegración con otras normativas y estándares de seguridadCasos de estudio y ejemplos aplicados🔗 Mostrar credencial

OWASP Top 10 API + Seguridad en APIs
Udemy (oct. 2022)

r

OWASP Top 10 API + Seguridad en APIsPeriodo: Año 2022Duración: 1 horaContenido principal:Introducción a la seguridad en APIs y su rol crítico en aplicaciones modernasAnálisis detallado del OWASP API Security Top 10 (2023)Identificación y mitigación de vulnerabilidades comunes: Broken Object Level Authorization, Broken Authentication, Excessive Data Exposure, Injection, etc.Buenas prácticas de diseño seguro de APIs RESTfulCasos prácticos de ataques y defensas aplicadasHerramientas y metodologías para testeo y protección de endpoints🔗 Mostrar credencial

JavaScript

Programación avanzada con JavaScript y ECMAScript 6
campusMVP (ene. 2018)

r

Programación avanzada con JavaScript y ECMAScript 6Periodo: Año 2018Duración: 203.30 horas🔗 Mostrar credencial----Contenido principal: JavaScript AvanzadoFunciones, ámbitos y estructuras:Condicionales avanzadas, operadores lógicos y ternariosÁmbito de variables, shadowing, hoistingSobrecarga de funciones, uso de arguments, funciones llamantesMatrices:Definición, inicialización y manipulación avanzada de arraysPilas, colas, ordenación, búsqueda y procesamiento de elementosFechas y temporizadores:Manejo de fechas con la clase DateFormatos personalizados, zonas horarias, operaciones con fechasTemporizadores, cronómetros y precisión de intervalosExcepciones y depuración:Gestión estructurada de erroresUso del modo estrictoHerramientas del desarrollador y depuración avanzada en navegadorProgramación orientada a objetos (ES5):Definición y uso de objetos, constructores y prototiposHerencia y encapsulación (clausuras, variables privadas)Espacios de nombres, reflexión y patrón móduloManipulación del DOM y BOM:Acceso y modificación dinámica de elementos del DOMGestión de colecciones, atributos y estructura jerárquicaEventos en navegadores:Modelos de eventos (BOM, DOM Level 2, unificado)Eventos de ratón, teclado, formularios y ciclo de vida de la páginaCreación de eventos personalizadosAJAX:Uso de XMLHttpRequest y JSONPCORS y comunicación asíncrona con el servidorModularización e inyección de dependencias:Gestión de módulos y dependencias con AMD (Require.js)Modularización de aplicaciones JavaScriptECMAScript 6+ (ES2015 y posteriores)Declaración de variables:Uso de let y const, diferencias con varPromises:Creación, encadenamiento y manejo de errores con PromesasFunciones flecha (lambdas):Sintaxis, uso y manejo del contexto thisNotación de objetos:Prototipos, propiedades dinámicas y métodos abreviadosSímbolos:Uso de símbolos para propiedades privadas y métodosDesestructuración y spread/rest:Asignación por desestructuración en arrays y objetosUso de operadores spread y restNuevas estructuras de datos:Map, Set, WeakMap, WeakSet, TypedArraysIteradores y generadores:Creación y uso de iteradores y generadores personalizadosClases y POO moderna:Sintaxis de clases, métodos estáticos, herencia y encapsulaciónMétodos y propiedades privadasProxies:Creación y uso de proxies para interceptar operaciones en objetosOtras características ES6:Parámetros por defecto y otras mejoras del lenguaje🔗 Mostrar credencial

Webpack EDteam (dic. 2018)

r

WebpackPeriodo: Año 2018Duración: 3 horasContenido principal:Introducción a Webpack y revisión de su documentaciónInstalación y configuración básicaModos de desarrollo y producciónTranspilación de JavaScript con BabelInyección automática de scripts en archivos HTMLLevantamiento de servidor local para desarrolloSoporte para CSS y SassImplementación y optimización de imágenesSoporte para archivos JSONConfiguración de múltiples puntos de entrada y salidaConfiguración avanzada del entorno de trabajoCreación de componentes en JavaScript, React, Vue y TypeScriptAplicación de Webpack en entornos con React, Angular y VueFuncionalidades como empaquetado, recarga en tiempo real y depuración durante el desarrollo🔗 Mostrar credencial

a

Expresiones Regulares para el Desarrollo Web - RegExp
Udemy (feb.2020)

r

Expresiones Regulares para el Desarrollo Web - RegExp Periodo: Año 2020Duración: 5.54 horasContenido principal:Introducción y fundamentos históricos de las expresiones regularesMotores de RegExp y notaciones más comunesUso de metacaracteres y caracteres especialesConstrucción de rangos, negaciones y clases abreviadas (PCRE y POSIX)Cuantificadores: codiciosos, perezosos y repeticiones eficientesAgrupación, alternancia y anidación de patronesModo multilínea, saltos de línea y delimitadores de palabrasGrupos de captura, no captura y referencias en operaciones de búsqueda y reemplazoAserciones lookahead y lookbehind (positivas y negativas)Ejemplos prácticos de validación:NombresCorreos electrónicosURLsCódigos postalesFechas, horas y claves de accesoIPs y formatos numéricosValidación de formularios con JavaScript, HTML5 y PHPMétodos de JavaScript para trabajar con expresiones regulares:exec(), test(), match(), search(), replace(), split()Uso de banderas y propiedades avanzadas como stickyEjercicios de transformación, validación y formateo con RegExp en JavaScript🔗 Mostrar credencial

a

React Native

React Native Expo: Creando un TripAdvisor de Restaurantes
Udemy (oct. 2019)

r

React Native Expo: Creando un TripAdvisor de RestaurantesPeriodo: Año 2019Duración: 33.5 horasContenido principal:Desarrollo completo de una aplicación móvil tipo "TripAdvisor de Restaurantes" usando React Native con Expo.Uso práctico de Firebase (Firestore, Storage y Auth) para gestión de usuarios, almacenamiento de datos y autenticación.Implementación de navegación avanzada con React Navigation (StackNavigator, BottomTabNavigator).Diseño de interfaces con React Native Elements, incluyendo modales, formularios, toasts e iconografía.Creación y validación de formularios de login, registro, comentarios, puntuación, edición de perfil y carga de restaurantes.Integración de mapas interactivos (MapView y Google Maps) con geolocalización y selección de ubicaciones.Subida y gestión de imágenes desde galería a Firebase Storage, incluyendo imagen principal y carrusel.Implementación de lógica de favoritos, búsqueda de restaurantes, filtros y listado por puntuación.Publicación de la aplicación en Expo y generación de builds para Android (.APK y .AAB) e iOS (.IPA).Aplicación de Hooks (useState, useEffect) y principios de reutilización de componentes.🔗 Mostrar credencial

a

Vuejs

Vuejs 2 y Vuex desde 0 con las mejores prácticas
Udemy (jul. 2020)

r

React Native Expo: Creando un TripAdvisor de RestaurantesPeriodo: Año 2020Duración: 9.5 horasContenido principal:Instalación y configuración de Vuejs 2 y Vue CLIFundamentos de Vuejs: componentes, data binding, computed properties, métodosComunicación entre componentes con $emit y referenciasFormularios, directivas, slots y filtros personalizadosIntroducción y manejo avanzado de Vuex: state, mutations, getters, acciones y módulosUso de plugins y librerías: BootstrapVue, Axios, Vuelidate, VeeValidateConsumo de APIs con Vuex y VueAxiosPersistencia de estado con LocalStorage e IndexedDB para PWAGestión de rutas y navegación con Vue RouterAutenticación y manejo de sesiones con Vuex y JSON ServerDesarrollo de componentes reutilizables y uso de mixinsOptimización y despliegue en AWS S3 con CloudFront y configuración CORSTransiciones y animaciones con Vue TransitionsEjemplos prácticos y proyecto completo de tienda y gestión de tareas (TodoList)🔗 Mostrar credencial

a

UI/UX & Website Design

Fundamentos del diseño
EDteam (ago. 2018)

r

Fundamentos del diseñoPeriodo: Año 2018Duración: 3 horasContenido principal:Introducción al diseño: conceptos básicos y ruta visualPsicología y teoría del color, canales y herramientas Adobe ColorTipografía: familias, parámetros, lettering y plataformas de fuentesDiseño de marca: brief, objetivos, funcionalidad y recomendaciones para logosProceso creativo y cuidados en el diseño de identidad visualAplicación estratégica del diseño para proyectos y empresas🔗 Mostrar credencial

Photoshop CC 2018
EDteam (ago. 2018))

r

Photoshop CC 2018Periodo: Año 2018Duración: 7 horasContenido principal:Introducción y servicios de Creative CloudInterfaz y optimización de imágenes para webManejo avanzado de capas: bloqueo, máscaras, estilos y modos de fusiónHerramientas de selección: lazo poligonal, varita mágica, selección rápidaTécnicas de retoque fotográfico: pincel corrector, suavizado de piel, cambio de colorDiseño de interfaces y mockups para web y appsProyectos prácticos: tarjeta de presentación, montaje fotográfico y diseño web🔗 Mostrar credencial

UX Design: Conceptos básicos para principiantes
Udemy (oct. 2018)

r

UX Design: Conceptos básicos para principiantesPeriodo: Año 2018Duración: 1 horasContenido principal:Introducción a la experiencia de usuario (UX) y su historiaDiferencias entre qué es y qué no es UXBeneficios de aplicar UX en proyectosConocimiento y análisis del usuarioProceso de diseño UX: técnicas y metodologíasDesarrollo de un proyecto real y aplicación prácticaEjemplo de proyecto real: Sparkmind.com🔗 Mostrar credencial

Sass Desde Cero
EDteam (dic. 2018)

r

Sass Desde CeroPeriodo: Año 2018Duración: 4 horasContenido principal:Sintaxis y fundamentos de Sass: variables, anidamiento y tipos de datosModularización con @import y estructuras de proyectoCiclos, condicionales y directivas avanzadas (@extend, @for, @each)Mixins: definición, parámetros y uso para diseño responsiveFunciones personalizadas para manipular valores, colores y listasModos de color: CMYK, RGB, HSL y funciones de color en SassDebugging y compilación: opciones, sourcemaps, manejo de erroresEstructura avanzada de proyectos Sass para código limpio y mantenible🔗 Mostrar credencial

Flexbox y Grid
EDteam (oct. 2019)

r

Sass Desde CeroPeriodo: Año 2019Duración: 5 horasContenido principal:Fundamentos de Flexbox: ejes, alineación, flujo y propiedades (flex, align-self, order)Uso práctico de Flexbox: centrado absoluto, menús, banners, tarjetas y layouts responsivosIntroducción a CSS Grid: terminología, tracks, grid-gap, fr, repeat()Posicionamiento de elementos con grid-column, grid-row y áreas de gridTécnicas avanzadas: minmax(), auto-fit, auto-fill, min/max-contentCreación de galerías y layouts con CSS GridAlineación avanzada y control total de colocación con Grid Placement🔗 Mostrar credencial

Gestión de proyectos

Gestión de proyectos: Resolución de problemas
LinkedIn Learning (ene. 2024)

r

Gestión de proyectos: Resolución de problemasPeriodo: Año 2024Duración: 55 minutosContenido principal:Identificación y prevención de problemas en equipos de trabajoMejora de la comunicación interpersonal y colaboración del equipoControl de la calidad: asegurar entregables alineados con lo esperadoEstimación de costos, alcance y prevención de sobrecostesGestión de plazos: camino crítico, riesgos y planificación efectivaRecomendaciones prácticas: reuniones, seguimiento y alertas tempranas al clienteDesarrollo de hábitos para prevenir problemas recurrentes en proyectos🔗 Mostrar credencial

Aprende a trabajar con gráficos de Gantt
LinkedIn Learning (ene. 2024)

r

Aprende a trabajar con gráficos de GanttPeriodo: Año 2024Duración: 1.44 horasContenido principal:Fundamentos y estructura de los gráficos de GanttCamino crítico, tareas flotantes y vinculacionesComparación entre metodologías: ágil, scrum y cascadaEstimación de tiempos, contingencias y nivel de granularidadHerramientas y consejos para crear gráficos en Excel y otras plataformasUso estratégico de Gantt: planificación, comunicación y aprobación del planSeguimiento del progreso, evaluación de riesgos y previsión de gastosErrores comunes al usar gráficos de Gantt y cómo evitarlos🔗 Mostrar credencial

Liderazgo y trabajo en equipo
LinkedIn Learning (oct. 2020)

r

Liderazgo y trabajo en equipoPeriodo: Año 2020Duración: 5 horasContenido principal:Historia del management: Elton Mayo, Drucker, Peters y Mary Parker FollettClaves del liderazgo actual: comunicación efectiva, compromiso y acción coherenteEstrategias para reuniones productivas: individuales, grupales y alternativasTécnicas para asegurar la utilidad y el impacto de las reunionesLiderazgo orientado al desarrollo: aprendizajes y prioridades semanalesMejora continua y acompañamiento al equipo con visión estratégica🔗 Mostrar credencial

Fundamentos de gestión de equipos IT y programación
LinkedIn Learning (oct. 2020)

r

Fundamentos de gestión de equipos IT y programaciónPeriodo: Año 2020Duración: 2.28 horasContenido principal:Introducción a la gestión de equipos técnicos y su evoluciónRol y habilidades clave del tech manager: técnicos que lideran o managers no técnicosFunción del tech leader: diferencias, desafíos y errores comunesComunicación efectiva con equipos técnicos: preguntas, escucha activa y técnica del espejoGestión de proyectos IT: objetivos, procesos, cierre, deuda técnica y alineación con clientesEvaluación de equipos: motivación, fortalezas y creatividad en el entorno técnicoBuenas prácticas: lenguaje técnico, glosario, comunicación con stakeholders no técnicos🔗 Mostrar credencial

Scrum Master + La Revolución Ágil + Liderar Equipos Scrum
Udemy (nov. 2018)

r

Scrum Master + La Revolución Ágil + Liderar Equipos ScrumPeriodo: Año 2018Duración: 3 horasContenido principal:Fundamentos del pensamiento ágil y el Manifiesto ÁgilCiclo iterativo e incremental, timeboxing y definición de terminadoRoles de Scrum: Product Owner, Scrum Master y Equipo de DesarrolloArtefactos de Scrum: Product Backlog, Sprint Backlog e IncrementoPrácticas clave: estimaciones con puntos Fibonacci, historias de usuario y refinamientoEventos de Scrum: planificación, scrum diario, revisión y retrospectivaAplicación práctica con ejercicios, casos de estudio y plan de lanzamientoClaves para la facilitación de equipos ágiles y liderazgo en entornos Scrum🔗 Mostrar credencial

Educación Formal

Primer semestre del TSU

Informática en el Instituto Universitario de Tecnología Antonio Ricaurte (IUTAR)

Venezuela Maracay (2006 - 2007)

Mis proyectos en mi portafolio:
https://dennysjmarquez.dev/portfolio

Angular

Angular

Angular 17/19 | Signals con RxJS usando signalPipeRxjs

r

Tipo: Proyecto técnico personal exploratorioURL del artículo: dev.to/dennysjmarquez/signalpiperxjsEstado: En fase de desarrollo y experimentación. No recomendado para producción.---------Este proyecto propone una función utilitaria para aplicar operadores de RxJS directamente sobre señales de Angular. La solución busca conectar el paradigma tradicional de programación reactiva basado en observables con el nuevo sistema de señales introducido en Angular 16+ y evolucionado en Angular 17/19.Motivación TécnicaIntegrar operadores conocidos de RxJS en el flujo de señales.Explorar el comportamiento de las señales en escenarios reales.Mantener compatibilidad con prácticas previas durante la adopción progresiva del nuevo modelo reactivo.Evaluar la viabilidad de composiciones reactivas avanzadas sin perder claridad declarativa.Arquitectura Técnica1. Función signalPipeRxjsexport function signalPipeRxjs<R, A>(   source: Signal<A>,   initialValueOrOperator?: R | OperatorFunction<[A], R> ): Signal<R> Flujo interno:Conversión de la señal a observable mediante toObservable().Aplicación de operadores RxJS al observable.Conversión de vuelta a señal mediante toSignal().Características:Soporte para operadores encadenados.Conversión transparente entre señales y observables.Compatible con cualquier operador disponible en RxJS.2. Ejemplo prácticoComponente hijo (SearchProductsComponent)@Component({   selector: 'app-search-products',   template: `<input [(ngModel)]="searchProduct" placeholder="Busca un producto" />`, }) export class SearchProductsComponent {   searchProduct = model.required<string>(); } Componente padre (CategoryFilterComponent)readonly searchProduct = signal<string>(''); readonly onSearch = signalPipeRxjs(   this.searchProduct,   pipe(     debounceTime(500),     distinctUntilChanged(),     map(value => value.toUpperCase()),     tap(value => console.log('Valor transformado:', value))   ) ); constructor() {   effect(() => {     const query = this.onSearch();     console.log('Buscando:', query);   }); } 3. Comunicación entre componentesDirectiva model:Permite vinculación bidireccional entre padre e hijo.Integra de forma nativa con el sistema de señales.Reemplaza estrategias previas como @Input()/@Output() para ciertos casos de uso.Secuencia del flujo de datos:Usuario introduce texto →model actualiza la señal del padre →signalPipeRxjs aplica transformaciones →effect() ejecuta lógica reactiva con el valor resultante.Transformaciones aplicadasOperadores utilizados:debounceTime(500): evita emisiones rápidas sucesivas.distinctUntilChanged(): ignora valores repetidos consecutivos.map(): transforma el valor recibido.tap(): permite efectos colaterales sin modificar el flujo.Lecciones aprendidastoObservable() y toSignal() permiten interoperabilidad efectiva.Las señales pueden extenderse con operadores RxJS sin perder reactividad.La directiva model simplifica la comunicación entre componentes.El enfoque modular mejora la mantenibilidad del código.Aplicabilidad del proyectoEste trabajo puede utilizarse como:Ejemplo funcional para explorar integración entre Signals y RxJS.Punto de partida para plantillas más robustas en Angular moderno.Referencia para comparar distintos enfoques de composición reactiva.Recurso didáctico para desarrolladores que adoptan Angular 17+.

a

Angular 13 | FormArray: cestión correcta, y eficiente de campos o grupos repetibles

Angular 13 | Formularios Anidados Nested Forms Service: Centraliza, sincroniza y valida formularios complejos

Angular 13 | Pruebas Unitarias y de integración (Unit testing)

Angular 13 | Plataforma de Movies

Angular 10 | angular-adv-adminpro, MEAN, Google auth, JWT, Lazyload, upload de archivos, Guards, Pipes, Zona admin, dashboard y mucho más...

Angular 8 | Drag y Drop de archivos y Upload a Firebase con ProgressBar

Angular 8 | RxJS - Comunicación entre Componentes usando al BehaviorSubject

Angular 7 | Pequeña imitación de LinkedIn

Angular 8 | Explicando parte de mi experiencia, una lista de usuarios, que se pueden editar, agregar y eliminar de una Base de datos de MySQL con un Backend sencillo construido en PHP para servir la base de datos, Tips y buenas prácticas

Angular 6 | Consumo de la Api Rest - Spotify

Angular 6 | Formularios con la lógica en el componente o en el Templete, Las dos formas de crear Formularios en Angular

LitElement

LitElement

LitElement 2 | Todo List

LitElement 2 | Componente de Fecha sin Calendario, se le pueden cambiar los estilos, bordes, colores del texto, fondo, idioma, también tiene la opción de mostrar los nombres de los meses, lo tengo publicado en
Polydile · GitHub y en npm

PHP - MySQL

PHP - MySQL

MVC, Composer, PHP 5, doctrine/dba, nested sets, JavaScript, JQuery, CSS3, HTML5 | Un CMS parecido a WordPress y lo llame Scorpion CMS

WordPress

WordPress

WordPress 3.6 | Theme parecido al fabuloso deviantART

Troyanos y Virus

Troyanos y Virus

Troyano Visual Basic 6, Web Scraping Taringa, Creación del sitio web www.tec.web44.net para mi servicio técnico

React

React

React 18 - Next.js 14 | con SSR, Redux, Material-UI y TSS-React

r

Tipo: Proyecto técnico personalRepositorio:github.com/dennysjmarquez/next-14-ssr-redux-material-ui-server-styles-tss-react---------Desarrollé una plantilla base para aplicaciones construidas con Next.js 14, enfocada en Server-Side Rendering (SSR), gestión global del estado con Redux, componentización de interfaz con Material-UI y aplicación eficiente de estilos mediante TSS-React con soporte completo para hidratación desde el servidor.Este proyecto surgió como respuesta a problemas técnicos concretos que enfrenté al integrar Redux y Material-UI con SSR en versiones anteriores de Next.js, donde eran comunes las configuraciones manuales y soluciones no sostenibles. Durante el proceso de migración de varios entornos de Next.js 13 hacia 14, identifiqué incompatibilidades en la forma en que Material-UI manejaba los estilos durante el renderizado del lado del servidor. Para resolverlo, integre TSS-React, una solución compatible con SSR que eliminó los saltos de estilo (FOUC) y mejoró la experiencia visual desde la primera carga.Tecnologías utilizadas:Next.js 14: framework React con soporte nativo para Server-Side Rendering y rutas híbridas.Redux: implementación modular para la gestión centralizada y predictiva del estado, con carga desde el servidor.Material-UI: sistema de componentes visuales, orientado a una interfaz moderna y coherente.TSS-React: librería especializada en estilos para React con compatibilidad SSR, solución directa a los problemas de FOUC.JavaScript ES6 y React 18.Características técnicas implementadas:Renderizado del lado del servidor (SSR): mejora del SEO y rendimiento mediante entrega anticipada de HTML y estilos desde el servidor.Gestión del estado global: el estado de la aplicación se inicializa desde el servidor, permitiendo una hidratación eficiente y sin parpadeos.Integración avanzada de estilos: uso de TSS-React para evitar el Flash of Unstyled Content (FOUC) y asegurar consistencia visual.Estructura modular y reutilizable: diseñada como boilerplate extensible para nuevas aplicaciones sin necesidad de reconfiguración.Compatibilidad con entornos productivos: configuración orientada a despliegues optimizados y mantenibilidad a largo plazo.Este proyecto representa una solución aplicada a desafíos reales de arquitectura front-end en entornos con renderizado híbrido, integrando herramientas de uso común en ecosistemas React.

React 18 | MicroFrontends con Vite, React, Redux y i18next

r

Tipo: Proyecto técnico personalRepositorio: github.com/dennysjmarquez/MultiLingual-MicroFrontends-vite-react-redux-HostDemo: demo-multilingual-microfrontends-vite-react-redux-host.vercel.app---------Este proyecto es una demostración práctica de cómo construir una arquitectura de microfrontends escalable y eficiente utilizando React 18, Vite con Module Federation, Redux y i18next. La arquitectura de microfrontends permite dividir aplicaciones grandes y monolíticas en módulos independientes que pueden ser desarrollados, probados e implementados de forma autónoma, facilitando el mantenimiento y la escalabilidad.Características técnicas y aportes clave:Construcción de tres aplicaciones independientes: una aplicación host que actúa como orquestador y dos microfrontends, cada uno con su propio sistema de estado basado en Redux y lógica aislada.Comunicación y sincronización fluida entre host y microfrontends mediante intercambio de estado con Redux, incluyendo la sincronización global de idioma. Cambiar el idioma en el host provoca que todos los microfrontends actualicen su idioma simultáneamente gracias a i18next.Implementación de carga bajo demanda (lazy loading) de microfrontends en el host usando React.lazy(), con manejo de errores en las importaciones para evitar fallos en la aplicación.Uso de Styled Components con metodología BEM para el manejo consistente de estilos independientes en cada microfrontend, manteniendo modularidad y escalabilidad visual.Organización modular de componentes: cada componente incluye carpetas para traducciones (lang), estilos (styles) y el código JSX principal, facilitando la mantenibilidad y extensibilidad del código.Configuración avanzada de Vite con vite-plugin-federation para soportar Module Federation, lo que permite compartir librerías como React, React-DOM y React-Redux entre host y remotos, optimizando el rendimiento y garantizando consistencia en el comportamiento.Integración de proyectos remotos que exponen componentes específicos (MovieList) mediante sus archivos remoteEntry.js, consumidos dinámicamente desde el host.Documentación clara y pasos para reproducir la demo localmente, demostrando la capacidad para gestionar múltiples repositorios interrelacionados en un entorno microfrontend.Tecnologías empleadas:React 18, Redux, React-Redux, redux-thunk, i18next, react-i18next, Styled Components, vite-plugin-federation, Vite, JavaScript ES6.Instrucciones para probar la demo:Acceder a la demo en línea.Abrir la consola del navegador (Ctrl + Shift + I o F12).Limpiar la pestaña ‘Network’.Interactuar con los botones para observar la carga dinámica y comunicación entre microfrontends en la pestaña ‘Network’.

a

React 18 | Calculadora de Inversión en Criptomoneda

r

Tipo: Proyecto técnico personalRepositorio: github.com/dennysjmarquez/Calculadora-de-Inversion-en-CriptomonedasDemo: crypto-inv-calc-api-messari-demo.onrender.com---------Aplicación web desarrollada para simular inversiones en tres criptomonedas (Bitcoin, Ethereum y Cardano), con proyecciones anuales basadas en retornos mensuales estimados. Permite visualizar el balance final en dólares y su equivalente en criptoactivos, acompañado de una tabla informativa con datos actualizados de mercado. La solución combina procesamiento backend, consumo de APIs externas y una interfaz interactiva enfocada en claridad y usabilidad.Características técnicas y funcionalidad:Simulación de inversión basada en retornos mensuales:Bitcoin: 5%Ethereum: 4.2%Cardano: 1%Visualización del balance proyectado anual en USD y en criptoactivos.Tabla informativa con datos actualizados de las tres criptomonedas utilizando la API de Messari.io.Interfaz interactiva para ingreso de balance inicial e inicio del cálculo de inversión.Backend configurado para servir datos de mercado desde Messari API y exponerlos a través de un endpoint REST.Variables de entorno gestionadas con .env para definir la URL del servidor en el cliente y la API key en el backend.Tecnologías empleadas:React 18, Node.js, Express.js, Tailwind CSS, RESTful API, axios, Messari API, JavaScript ES6.

a

React 16 | SSR - Server Side Rendering a tope, Mi Portafolio V1, código fuente liberado

r

Tipo: Proyecto técnico personal avanzadoRepositorio: github.com/dennysjmarquez/portfolio-react-ssr-v1Video explicativo: https://youtu.be/imMjHxYrWk8---------Este proyecto representa la primera versión de mi portafolio profesional, desarrollado como un sistema SSR (Server Side Rendering) para React, desarrollada desde cero sin dependencias de frameworks como Next.js. Motivación TécnicaMi decisión de construir un sistema SSR personalizado surgió de la necesidad de:Comprensión profunda: Entender los mecanismos internos del renderizado universalControl granular: Tener control completo sobre el proceso de hidratación y cacheadoOptimización específica: Implementar estrategias de optimización adaptadas a las necesidades del proyectoExperiencia de aprendizaje: Dominar los conceptos que frameworks como Next.js abstraenEvolución del proyectoInicialmente, el proyecto fue desarrollado sobre Webpack 4. Con el tiempo, los cambios estructurales introducidos por Webpack 5 y la carga de mantenimiento asociada a la configuración dual cliente-servidor motivaron la migración hacia una arquitectura más mantenible utilizando Next.js.A pesar de esa evolución, construir un sistema SSR manualmente me proporcionó una base técnica sólida que facilita el aprovechamiento consciente de frameworks modernos, comprendiendo que abstraen y cómo lo hacen.Arquitectura Técnica Detallada de mi proyecto1. Sistema de Renderizado UniversalProceso de Renderizado (SSR → Hidratación)// Flujo simplificado del renderizado 1. Cliente solicita ruta → 2. Express.js procesa → 3. getInitialData() obtiene datos 4. React renderiza en servidor → 5. HTML+datos enviados → 6. Hidratación en cliente Componentes clave del renderizado:Server Entry Point: Punto de entrada que configura el renderizado en servidorClient Entry Point: Punto de entrada que maneja la hidratación en clienteUniversal Router: Enrutador que funciona tanto en servidor como en clienteData Fetching Layer: Capa que maneja la obtención de datos pre-renderizadoVariable isClient - Detección de Entornoconst isClient = typeof window !== 'undefined'; // Uso condicional para librerías que requieren DOM if (isClient) { // Código que requiere window/document const analytics = require('./analytics'); } 2. Sistema de Gestión de Datos Pre-renderizadoMétodo getInitialDataCada ruta implementa un método estático que se ejecuta en el servidor antes del renderizado:// Ejemplo de implementación en una página static async getInitialData({ req, res, match }) { const projectId = match.params.id; const projectData = await apiService.getProject(projectId); return { project: projectData, metadata: { title: projectData.title, description: projectData.description } }; } Características del sistema:Ejecución pre-renderizado: Los datos se obtienen antes de que React rendericeContexto completo: Acceso a objetos req, res y parámetros de rutaTipado implícito: Estructura consistente de datos entre todas las páginasError handling: Manejo de errores durante la obtención de datos3. Sistema de Cache InteligenteImplementación con node-cacheconst NodeCache = require('node-cache'); const cache = new NodeCache({ stdTTL: 1800 }); // 30 minutos // Estrategia de cacheado por URL hash const cacheKey = crypto.createHash('md5').update(req.url).digest('hex'); const cachedData = cache.get(cacheKey); if (cachedData && CACHE_ENABLED) { return cachedData; } Características del cache:Cache por ruta: Cada URL tiene su propio cache basado en hash MD5Expiración configurable: TTL de 1800 segundos (30 minutos)Activación condicional: Flag para habilitar/deshabilitar via variable de entornoInvalidación inteligente: Cache se renueva automáticamente al expirarCache Doble (Frontend + Backend):Backend Cache: Almacena respuestas de API y datos procesadosFrontend Cache: Almacena componentes hidratados y estado de aplicaciónResultado: Tiempo de carga casi instantáneo en visitas subsecuentes4. Configuración de Webpack PersonalizadaWebpack 4 - Configuración DualEl proyecto incluye configuraciones separadas para cliente y servidor:webpack.client.js:// Configuración optimizada para el cliente module.exports = { target: 'web', entry: './src/client.js', optimization: { splitChunks: { chunks: 'all', cacheGroups: { vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendors', chunks: 'all', } } } } }; webpack.server.js:// Configuración optimizada para el servidor module.exports = { target: 'node', entry: './src/server.js', externals: nodeExternals(), optimization: { minimize: false } }; Características de la configuración:Babel Integration: Transpilación de JSX y ES6+ para compatibilidadSass Support: Procesamiento de archivos SCSS con autoprefixerPath Aliases: Rutas absolutas para imports más limpiosDefinePlugin: Inyección de variables de entorno en tiempo de compilaciónCode Splitting: Separación automática de código vendor y aplicación5. Sistema de Carga Dinámica con react-universal-componentImplementación de Lazy Loadingimport universal from 'react-universal-component'; const HomePage = universal(import('./pages/Home'), { loading: () => <div>Cargando...</div>, error: () => <div>Error al cargar la página</div> }); Beneficios de la carga dinámica:Reducción de bundle inicial: Solo se carga el código necesarioMejora en TTI: Time to Interactive más rápidoOptimización de red: Descarga progresiva de recursosMejor experiencia de usuario: Indicadores de carga personalizados6. Integración con Firestore y Flamelink CMSConfiguración de Firestore// Configuración de conexión a Firestore const firebaseConfig = { apiKey: process.env.VITE_API_KEY, authDomain: process.env.VITE_AUTH_DOMAIN, projectId: process.env.VITE_PROJECT_ID, storageBucket: process.env.VITE_STORAGE_BUCKET, messagingSenderId: process.env.VITE_MESSAGING_SENDER_ID, appId: process.env.VITE_APP_ID }; Flamelink como Headless CMSGestión de contenido: Interface visual para editar proyectos y contenidoTiempo real: Actualizaciones instantáneas via Firestore listenersEstructura flexible: Esquemas de contenido personalizablesAssets management: Gestión de imágenes y archivos multimedia7. Gestión de Metadatos y SEOSistema de Meta Tags Dinámicos// Componente para gestión de metadatos function MetaTags({ title, description, image, url }) { return ( <Helmet> <title>{title}</title> <meta name="description" content={description} /> <meta property="og:title" content={title} /> <meta property="og:description" content={description} /> <meta property="og:image" content={image} /> <meta property="og:url" content={url} /> <meta name="twitter:card" content="summary_large_image" /> </Helmet> ); } Optimizaciones SEO implementadas:Títulos dinámicos: Cada página define su propio títuloMeta descriptions: Descripciones únicas por páginaOpen Graph: Metadatos para redes socialesTwitter Cards: Optimización para compartir en TwitterStructured Data: Datos estructurados para search enginesStack Tecnológico CompletoFrontend FrameworkReact 16: Librería principal para UIReact Hooks: useState, useEffect, useCallback, useContext, useRef, useLayoutEffectReact.memo: Optimización de re-rendersReact Router: Enrutamiento del lado del clienteBackend & Build ToolsNode.js + Express.js: Servidor HTTP y renderizado SSRWebpack 4: Bundling y optimización de assetsBabel: Transpilación de JavaScript modernoSass: Preprocesador CSS con mixins y variablesDatabase & CMSGoogle Firestore: Base de datos NoSQL en tiempo realFlamelink: Headless CMS para gestión de contenidonode-cache: Sistema de cache en memoriaStyling & UIBootstrap: Framework CSS para componentes baseSass/SCSS: Estilos personalizados y variablesCSS Modules: Scoped styles para componentesjQuery: Manipulación DOM para componentes legacyDevelopment ToolsESLint: Linting y calidad de códigoPrettier: Formateo automático de códigoNodemon: Auto-restart durante desarrollowebpack-dev-server: Desarrollo con hot reloadEstructura del Proyecto Detalladaportfolio-react-ssr-v1/ ├── public/ # Assets estáticos públicos │ ├── images/ # Imágenes y multimedia │ ├── fonts/ # Fuentes tipográficas │ └── favicon.ico # Favicon del sitio ├── static/ # Output del build compilado │ ├── client/ # Assets del cliente │ └── server/ # Bundle del servidor ├── webpack/ # Configuración de Webpack │ ├── webpack.client.js # Config para cliente │ ├── webpack.server.js # Config para servidor │ └── webpack.common.js # Configuración compartida ├── src/ │ ├── routes/ # Definición de rutas │ │ └── index.js # Configuración central de rutas │ ├── pages/ # Componentes de página │ │ ├── Home/ # Página principal │ │ ├── About/ # Página sobre mí │ │ ├── Projects/ # Lista de proyectos │ │ └── Contact/ # Página de contacto │ ├── components/ # Componentes reutilizables │ │ ├── Header/ # Navegación principal │ │ ├── Footer/ # Pie de página │ │ ├── Layout/ # Layout principal │ │ └── common/ # Componentes comunes │ ├── services/ # Servicios y APIs │ │ ├── firebase.js # Configuración Firebase │ │ ├── flamelink.js # Cliente Flamelink │ │ └── api.js # Servicios de API │ ├── utils/ # Utilidades y helpers │ │ ├── cache.js # Gestión de cache │ │ ├── seo.js # Helpers para SEO │ │ └── constants.js # Constantes globales │ ├── styles/ # Estilos globales │ │ ├── scss/ # Archivos Sass │ │ └── css/ # CSS compilado │ ├── client.js # Entry point del cliente │ └── server.js # Entry point del servidor ├── .env # Variables de entorno ├── .env.example # Ejemplo de variables ├── package.json # Dependencias y scripts ├── babel.config.js # Configuración Babel └── README.md # Documentación del proyecto Optimizaciones de Performance1. Optimizaciones de RenderizadoReact.memo: Previene re-renders innecesariosuseCallback: Memoización de funcionesuseMemo: Memoización de cálculos complejosCode splitting: Carga bajo demanda de componentes2. Optimizaciones de RedCompression: Gzip compression para assetsAsset optimization: Minificación de JS/CSSImage optimization: Lazy loading de imágenesCDN integration: Servir assets desde CDN3. Optimizaciones de CacheBrowser caching: Headers apropiados para cacheService worker: Cache offline de recursosDatabase caching: Cache de queries de FirestoreMemory caching: Cache en memoria con node-cacheConsideraciones sobre Redux y Estado GlobalEstado de Redux en v1En esta primera versión, Redux no fue implementado debido a:Complejidad inicial: Enfoque en dominar SSR primeroOverhead: Para las necesidades del proyecto, React state era suficienteCurva de aprendizaje: Prioridad en entender renderizado universalPreparación para ReduxSin embargo, se establecieron las bases para futura integración:// Wrapper preparado para Redux function withRedux(Component) { return function WrappedComponent(props) { // Lógica para hidratación de estado Redux const store = configureStore(props.initialState); return ( <Provider store={store}> <Component {...props} /> </Provider> ); }; } Estrategia de Migración a ReduxState normalization: Normalizar estructura de datosAction creators: Crear acciones para cada operaciónReducers: Implementar reducers para cada dominioMiddleware: Integrar redux-thunk para async operationsDevTools: Integrar Redux DevTools para debuggingEvolución y Lecciones AprendidasDesafíos EnfrentadosWebpack complexity: Configuración dual cliente/servidorBundle optimization: Evitar duplicación de códigoHydration mismatches: Sincronización cliente-servidorDevelopment workflow: Hot reload en entorno SSRSoluciones ImplementadasConfiguración modular: Separación clara de configsExternals optimization: Exclusión de módulos de Node.jsConsistent rendering: Asegurar mismo output en ambos entornosDevelopment server: Configuración optimizada para desarrolloImpacto y AprendizajesMétricas de PerformanceFirst Contentful Paint (FCP): ~1.2sLargest Contentful Paint (LCP): ~2.1sTime to Interactive (TTI): ~3.5sCache hit ratio: ~85% en visitas recurrentesConocimientos AdquiridosSSR fundamentals: Comprensión profunda de renderizado universalPerformance optimization: Técnicas avanzadas de optimizaciónBuild tooling: Dominio de Webpack y herramientas de buildState management: Gestión de estado en aplicaciones SSRAplicabilidadEste proyecto sirve como:Base para proyectos SSR: Template para nuevos proyectosReferencia técnica: Ejemplo de implementación SSR personalizadaHerramienta de aprendizaje: Recurso para entender SSR sin abstraccionesPortfolio técnico: Demostración de habilidades avanzadas

a
Vue.js

Vue.js

Vue.js 2 | Demostraciones técnicas con Vue.js 2

r

Tipo: Proyecto técnico personal---------Desarrollé una colección de pequeños proyectos y ejemplos funcionales con Vue.js 2, cuyo propósito principal fue compartir y enseñar los fundamentos y características del framework de forma clara y aplicada. Cada uno de estos ejemplos es una pieza independiente que ilustra un concepto o técnica específica, permitiendo a quienes los usan experimentar en tiempo real, explorar la reactividad y comprender el comportamiento del framework desde la práctica.Estos pedacitos de código cubren temas esenciales como el enlace de datos con v-model, manejo de propiedades (props), directivas condicionales (v-if, v-show), eventos (@click, emit), watchers, computed properties, uso de slots, filtros personalizados, mixins, plugins, carga dinámica de componentes, y la interacción entre componentes padre e hijo. Además, integré validaciones con VeeValidate, manejo básico de rutas con Vue Router y simulación de backend con JSON Server para ejercicios CRUD, complementando así el aprendizaje con escenarios cercanos a aplicaciones reales.Cada ejemplo está diseñado para ser ejecutado directamente en el navegador, con código documentado y mensajes en consola que facilitan el seguimiento de la lógica interna. Este enfoque modular y visual permitió que otros desarrolladores y estudiantes pudieran avanzar progresivamente, desbloqueando y comprendiendo cada pieza por separado.El repositorio está disponible públicamente en GitHub y se complementa con demostraciones en mi sitio web personal, ofreciendo una experiencia de aprendizaje accesible y práctica para quienes desean dominar Vue.js 2 desde una base sólida y aplicada.Este conjunto de ejemplos refleja mi compromiso con la enseñanza y la claridad técnica, mostrando además mi capacidad para organizar y presentar código didáctico con un enfoque profesional y estructurado.Lista de ejemplos interactivos disponibles:Vue.js 2 | Directiva v-modelVue.js 2 | PropsVue.js 2 | Formulario y la Directiva v-showVue.js 2 | WatchersVue.js 2 | Directivas a medidaVue.js 2 | Ejecutar métodos @clickVue.js 2 | Creación y uso de pluginsVue.js 2 | Computed PropertiesVue.js 2 | Slots y templateVue.js 2 | MixinsVue.js 2 | Bucles con la Directiva v-forVue.js 2 | Acceso a los datos de un componente padreVue.js 2 | Emitir eventosVue.js 2 | Carga dinámica de componentesVue.js 2 | Filters o Pipes como los de AngularVue.js 2 | Condicionales: Directivas v-if, v-else-if, v-elseVue.js 2 | Acceso a los datos de un componente hijoVue.js 2 | Acceso a métodos de un componente hijo

a

Vue.js 2 | Desarrollo de un listado de productos con carrito de compras

r

Tipo: Proyecto técnico personalRepositorio: Código fuente en GitHubDemo en línea: Ver demo funcionalVideo explicativo: Ver presentación en Google Drive---------Desarrollé una aplicación web interactiva con Vue.js 2 para gestionar un listado de productos con carrito de compras, que permite actualizar datos en tiempo real sin necesidad de recargar la página. Este proyecto integra diversas funcionalidades avanzadas y patrones de diseño del ecosistema Vue para simular un entorno de comercio electrónico completo.Tecnologías, técnicas y prácticas aplicadas:Vue CLI 3 para estructurar el proyecto.Vuex como sistema de gestión del estado, con uso de namespaced y persistencia mediante LocalStorage o IndexedDB.Componentes definidos a través de la instancia de Vue y Vue.component.Formularios validados con el plugin VeeValidate.Transiciones visuales implementadas con Vue Transitions.Buscador interactivo desarrollado con Vuex y Getters.CRUD completo con JSON Server:Consumo de API mediante Vuex + Vue Router.Operaciones HTTP: GET, POST, PUT y DELETE.Sistema de autenticación con persistencia de sesión usando Vuex.Manejo completo de rutas, incluyendo rutas hijas, eventos del VueRouter y protección de rutas con beforeEach.Middleware personalizado en JSON Server para autenticación de usuarios.Plugins utilizados: VeeValidate, VuexPersist y BootstrapVue.Módulo de autenticación con estado, acciones y mutaciones propias.Hojas de estilo en Stylus para componentes.Modal personalizado animado mediante transiciones.Integración con Axios y VueAxios para el consumo de datos.Uso intensivo de mapState y mapMutations para optimizar el flujo de estado.Computed properties con getters y setters.Data binding con v-model aplicando Arrays y objetos complejos.Comunicación entre componentes:Emisión de eventos ($emit) hacia componentes padres.Observadores (watchers) para detectar cambios reactivos.Implementación de mixins para reutilizar lógica entre componentes.Creación de directivas personalizadas:Foco automático en campos.Aplicación de estilos condicionales mediante parámetros.Desarrollo de plugins personalizados con argumentos.Uso avanzado de props:Paso de datos entre componentes.Validación de tipo y definición por defecto.Comparación y distinción entre props y data, abordando el concepto de reactividad en profundidad.Este proyecto refleja una integración coherente de diversas herramientas y funcionalidades del ecosistema Vue 2.

a
Node.js y Express.js

Node.js y Express.js

TDD guía de tests con Jest, inyección de dependencias, test unitarios, y test de integración con superTest

Servidor para el proyecto de ( Angular 13 | Plataforma de Movies )

Node.js, Express.js, cors, este servidor sirve un archivo JSON como dB en un único endPoint protegido por un token de auth0.


Db de Películas con su Título, descripción, tipo de película, imagen y fecha

Back-End para el proyecto de (React | Calculadora de Inversión en Criptomoneda), Node.js, Express.js, Messari API, axios, cors, parsear CSV, inyección de dependencias

Back-End para el proyecto de ( Angular 10 | angular-adv-adminpro ), Node.js, Express.js, MongoDB, Mongoosejs, CRUD, JWT, express-validator, google sign in, Paginaciones de datos, y mucho más...

Node.js y Express.js | Sessions, ataques CSRF como hacerlo y evitarlo, Token CSRF y implementación

HTML 5, CSS 3 y javaScript

HTML 5, CSS 3 y javaScript

Maquetado de un diseño de Adobe Illustrator CC 2018, HTML5, CSS3, JavaScript, jQuery, Bootstrap 4, BREF Bondarea Render Framework

Joomla

Joomla

Joomla 1.5 | Faegovensa c.a - use VirtueMart para la tienda online

Joomla 1.5 | Prosper import c.a

Joomla 1.5 | La casita de azúcar

Joomla 1.5 | Hrauseo Consultores

Proyectos