Ingeniero de Software · Seguridad de Aplicaciones y Sistemas de IA

David
Construye y Rompe

Ingeniero Full-Stack enfocado en Seguridad de Aplicaciones. Sistemas web con la seguridad integrada desde el diseño, no como un agregado al final.

Carrera

Experiencia

2025

Tambora

Desarrollador Frontend

Jul 2025 - Sep 2025

Migré módulos críticos del negocio de jQuery a React: reducción del 40% en el tamaño del bundle y disminución de la superficie de ataque del cliente al consolidar la lógica en una librería modular con Atomic Design. Diseñé CI/CD en Azure para reemplazar los deploys manuales por SSH, bajando el tiempo de despliegue de más de 2 horas a menos de 15 minutos y habilitando test gates automáticos — base para SAST y escaneo de dependencias.

ReactAzureTypeScriptCI/CDSAST-ready

2024

EliteStack Bootcamp

Desarrollo Full-Stack

Jun 2024 - Jul 2024

Bootcamp práctico: Linux/CLI, TypeScript, Node.js, Docker, REST APIs, WebSockets, Next.js, AWS. Base de cómo encajan los sistemas modernos de producción.

LinuxTypeScriptDockerAWS

Sobre mí

Quién soy

Retrato de David

Soy Ingeniero Full-Stack de Pereira, Colombia, enfocado en Seguridad de Aplicaciones y en la confiabilidad de los sistemas web modernos. Construyo de punta a punta: React y Next.js en el frontend; Node, TypeScript y PostgreSQL en el backend, con atención especial en la capa donde el código que funciona se convierte en un riesgo de seguridad.

Trabajo con mentalidad de seguridad desde el inicio: threat modeling de las features antes de lanzarlas, OWASP Top 10 como línea base y validación mediante pruebas ofensivas. Entreno de forma activa en plataformas como TryHackMe y la PortSwigger Web Security Academy para entender cómo funcionan los ataques reales y cómo prevenirlos.

Me interesa especialmente la seguridad de aplicaciones integradas con IA, ya que introducen nuevas superficies de ataque más allá de la seguridad web tradicional.

Abierto a roles full-time, freelance o proyectos personales interesantes. Si tienes un problema que valga la pena resolver, hablemos.

Pereira, Colombia
En curso: CompTIA Security+ (2026 Q3)
En curso: PortSwigger Web Security Academy
2024 Programando desde
AppSec Área de enfoque
EN / ES / DE C1 / Nativo / B1
Visa Patrocinio EU / US

Áreas

Habilidades

Seguridad de Aplicaciones

OWASP Top 10Threat Modeling (STRIDE)OAuth 2.0 / OIDCJWT (EdDSA)RBACSession HardeningArgon2idCSRF / XSS / SQLi defensesSecure Code ReviewSecrets ManagementInput Validation

Ofensiva y Herramientas AppSec

Burp SuiteOWASP ZAPnmapWiresharksqlmapffufNucleiGobusterHydraHashcatMetasploitNiktoSemgrepTrivyKali LinuxHackTheBoxTryHackMePortSwigger Academy

Backend

Node.jsNext.jsExpressREST APIsWebSocketsJestZod

Frontend

ReactNext.jsAstroTailwindCSSFramer MotionThree.js

Bases de datos

PostgreSQLMySQLMongoDBPrismaRedis

DevOps y Cloud

AWSAzureDockerCI/CDDigital OceanLinux hardeningVercel

Lenguajes

TypeScriptJavaScriptPythonCSQLBashHTML/CSS

IA y LLM

Claude APIOpenAISSE StreamingMCP ServersLLM IntegrationPrompt Injection defenseLLM GuardrailsRAGPrompt Engineering

Herramientas

GitGitHubPostmanJiraSwaggerLinux

Trabajo

Proyectos

PairCode

Workspace colaborativo seguro en tiempo real

Sistema colaborativo seguro con identidad verificada, autenticación endurecida y una capa de tiempo real hecha a medida.

  • Stack de autenticación propio: JWT con EdDSA, refresh tokens rotativos con detección de reutilización, hashing con Argon2id y protección CSRF.
  • Servidor WebSocket propio con handshake de ticket de un solo uso, autorización por evento y RBAC aplicado del lado del servidor.
  • Capa de rooms en tiempo real: presencia, indicador de escritura, contexto compartido por hilos e historial persistente que sobrevive a reconexiones.
Next.jsPostgreSQLEdDSAArgon2idRBACWebSockets

JWT Security Lab

Laboratorio ofensivo y defensivo de vulnerabilidades JWT

Laboratorio de ataque y defensa que ejercita vulnerabilidades reales de JWT contra una versión endurecida, demostrando cada mitigación en lugar de sólo afirmarla.

  • Firma y verificación de JWT en TypeScript desde cero (sin librerías) reproduciendo cinco fallos de nivel producción: bypass con alg=none, confusión de claves HS256/RS256, fuerza bruta de secretos débiles, inyección en el header kid y falta de validación de iss/aud/exp.
  • Scripts de explotación reproducibles (Bash + OpenSSL) y un harness que prueba que cada payload tiene éxito contra la API vulnerable y es rechazado por la segura.
  • Servicio endurecido que elimina clases enteras de bugs: allowlist de un único algoritmo RS256, registro fijo de kids en memoria con rotación, errores genéricos y hashing de contraseñas con scrypt.
TypeScriptNode.jsDockerJWTOpenSSLBash

Materiales La Bodega

Plataforma e-commerce en producción construida en solitario

Plataforma e-commerce en producción, construida de extremo a extremo en solitario para una ferretería familiar.

  • Único ingeniero de extremo a extremo: requisitos, arquitectura, catálogo de inventario en tiempo real, despliegue y mantenimiento continuo de una tienda retail en vivo.
  • Diseñé e implementé autenticación, seguridad de sesiones y RBAC para superficies de staff y clientes; integré Mercado Pago para transacciones reales en línea.
  • Endurecí la capa de aplicación frente al OWASP Top 10: consultas parametrizadas, validación de entrada en el servidor, protección CSRF en endpoints que modifican estado y roles de base de datos con mínimos privilegios.
Next.jsPostgreSQLMercado PagoOWASPRBACCSRF

Kanby

App Kanban con autenticación y control de acceso

Kanban colaborativo: tableros, listas, tarjetas arrastrables, manejo seguro de sesiones y autorización por tablero sobre SSE.

TypeScriptNext.jsPostgreSQLPrismaSSE

MacOS Portfolio

Portfolio como aplicación MacOS

Portfolio interactivo que imita una experiencia de sistema operativo: ventanas estilo macOS en desktop y apps tipo iPhone a pantalla completa en móvil.

TypeScriptReactZustandGSAP

Contacto

Construyamos algo

Abierto a roles de Software Engineer y junior AppSec — remoto o con reubicación. Si contratas desarrolladores con mentalidad de seguridad, hablemos.