2 apps de iPhone en el App Store ·6 disponibles en la web ·1 en TestFlight2 apps de iPhone en el App Store ·6 proyectos disponibles en la web ·1 juego en TestFlight
Ingeniería de software en Amazon Alexa. Ingeniería de plataformas en Coachable.
Coachable
Ingeniero de software
Desde mayo de 2023
Nueva York, NY
Coachable ayuda a ingenieros de software a prepararse para entrevistas y encontrar empleo mediante asesoría y práctica guiada.
95%
tasa de colocación
300%+
crecimiento interanual de usuarios
3x
reportes más rápidos
50%
más eficiencia en la asesoría
Desarrollé y escalé la plataforma principal de la empresa y sus sistemas de datos para más de 80 estudiantes activos. El programa mantuvo una tasa de colocación del 95% en Google, Amazon, Meta, Microsoft y startups.
Diseñé procesos de analítica para medir el rendimiento estudiantil, seguir las contrataciones y obtener datos para el currículo. Los reportes pasaron a ser 3x más rápidos y la precisión de los datos mejoró un 40%.
Desarrollé y mantuve herramientas internas con Python, React y AWS, incluida la generación y entrega de currículums con modelos de lenguaje. Estas herramientas mejoraron la eficiencia de la asesoría en un 50%.
Preparé a más de 200 estudiantes en estructuras de datos, algoritmos y resolución de problemas mediante más de 1,000 entrevistas de práctica. Les ayudé a conseguir cientos de ofertas.
Amplié las operaciones junto al equipo fundador y contribuí a un crecimiento de usuarios de más del 300% interanual.
Amazon
Ingeniero de desarrollo de software, equipo Alexa Data Depot
Julio de 2021 a enero de 2023
Cambridge, MA
Alexa Data Depot gestiona grandes volúmenes de datos sensibles que utilizan los productos y la analítica de Alexa.
700M+
objetos en los flujos de borrado y retención
99.9%
SLA en más de 300 tickets de guardia
40%
recuperación de pipelines más rápida
0
violaciones de privacidad
Dirigí los procesos de borrado y retención de más de 700M de objetos (>55 PB) en buckets de S3 distribuidos. Las políticas de ciclo de vida y la automatización en Python y Java ahorraron $1.3M por trimestre.
Como líder de seguridad del equipo, resolví más de 80 riesgos, incluidos más de 25 de alto riesgo y 2 casos críticos escalados a toda la organización. Reforcé los controles de IAM, el cifrado y el cumplimiento de las normas de privacidad.
Fui responsable del proceso de borrado de datos a escala de petabytes conforme a GDPR y CCPA. Trabajé con los equipos de privacidad y legal, con cero infracciones.
Gestioné la rotación mensual de guardia y resolví más de 300 tickets con un cumplimiento del SLA del 99.9%.
Mejoré la observabilidad de los datos junto a equipos de distintas áreas y reduje en un 40% el tiempo de recuperación de los procesos de datos.
Educación
Universidad de Harvard
A.B. en Informática
mayo de 2021
Concentración secundaria en Etnicidad, Migración y Derechos
Certificación en español (Spanish Citation)
Reconocimientos
Forbes 30 Under 30 Scholar ·HSF Scholar ·Tuskegee Airmen Scholar ·NSA Scholar ·Dominican Day Parade Scholar
Investigación
Corrección automática, investigación con LLVM
University of Illinois Urbana-Champaign
Desarrollé un sistema de corrección y pistas automáticas para cursos numerosos de informática con LLVM, C/C++ y Python. Multiplicó por 10 la capacidad de corrección.
Fui uno de aproximadamente 40 estudiantes seleccionados en todo el país para el programa DREU. Trabajé directamente con estudiantes de posgrado y profesores.
Sistemas distribuidos, procesos de datos, seguridad, desarrollo full-stack, APIs REST, integración de modelos de lenguaje (Claude API), desarrollo con herramientas de IA (Claude Code, Codex, Cursor)
Una API de eventos que conserva el orden, evita duplicados al reintentar y detecta cambios en el historial guardado.
Fig. 1Cómo se agrega un evento
Cliente
WorkerHono
Durable Objectuno por flujo
D1modelo de lectura
Cliente a Worker 01POST /v1/streams/:id/events Con el encabezado Idempotency-Key.
Worker 02Clave, límite de solicitudes y propietario Busca la clave de API por su hash SHA-256, consume un token del límite de solicitudes y verifica que el flujo pertenezca a esa clave. Si no quedan tokens, devuelve 429 con Retry-After.
Worker a Durable Object 03append(payload, key) Se dirige con idFromName(streamId).
Durable Object 04blockConcurrencyWhile Reutilizar una clave con el mismo cuerpo devuelve el {seq, hash} original. Un cuerpo distinto genera un conflicto. Una clave nueva recibe seq + 1 y el siguiente hash.
Durable Object 05Una sola escritura atómica Guarda juntos el evento, el registro de la clave, el resumen del minuto, la cabecera del flujo y la alarma del outbox. Se confirma todo o nada.
Durable Object a Worker 06{seq, hash}
Worker a D1 07INSERT OR IGNORE Copia el evento a D1 de inmediato para que las lecturas suelan ver la nueva escritura. Si falla, el cliente recibe de todos modos el resultado.
Worker a Cliente 08201 {seq, hash} Un reintento devuelve 200 con Idempotent-Replay: true. Un cuerpo distinto devuelve 422.
Durable Object a D1 09alarm(): barrido del outbox Tras unos 5 s, inserta las filas que faltan en D1. Reintenta cada 30 s mientras fallen las escrituras.
Cadena de hashes
génesisSHA-256("ledgerline:v2:" + streamId)
h1evento 1
h2evento 2
h3evento 3
hn = SHA-256(hn-1 | JSON canónico RFC 8785 | n)
/verify reconstruye la cadena desde el génesis y revisa cada seq, prevHash y hash. Al comparar el resultado con la cabecera guardada, también detecta eventos borrados al final.
Reintenta una petición con el mismo Idempotency-Key y recibe el {seq, hash} original. Usa esa clave con otro cuerpo y recibe HTTP 422.
Una prueba envía 20 escrituras a la vez y verifica que reciban los números de secuencia del 1 al 20. Sin la protección de blockConcurrencyWhile, falla.
Una cola transaccional guarda los eventos confirmados para el modelo de lectura en D1 y reintenta la entrega si falla.
Ledgerline422 si un Idempotency-Key llega con otro cuerpo, hash canónico RFC 8785, entrega por outbox a D1 y demo de detección de alteraciones rediseñada.
Una app de iPhone para una tienda de tenis y ropa urbana. Consulta el catálogo, aparta productos para recogerlos y participa en un sorteo semanal gratis. Demo con datos de muestra, aún sin lanzar.
Cada sorteo semanal tiene un id con fecha, y una prueba recorre cada hora de tres semanas, incluidos los dos cambios de horario, para verificar que nunca haya dos sorteos abiertos a la vez.
Los códigos de apartado no usan 0, O, 1, I ni L para que se lean fácil en el mostrador, y los apartados vencen a las 48 horas.
Soy ingeniero de software y me gradué de Harvard en informática. En Amazon Alexa, trabajé en sistemas distribuidos que manejaban más de 55 petabytes de datos y fui líder de seguridad de mi equipo. Hoy desarrollo y escalo la plataforma, los procesos de datos y las herramientas internas de Coachable.
Soy dominicano y crecí hablando español e inglés. La mayoría de mis proyectos están en ambos idiomas. Algunos nacen de cosas con las que crecí: el dominó, la pelota y el Malecón de Santo Domingo.
También desarrollo y publico productos por mi cuenta. He lanzado dos apps de iPhone y varios juegos de navegador. Me gusta llevar el proceso completo, desde el modelo de datos y el motor hasta la interfaz y el lanzamiento.