Saltar al contenido

Ingeniero de software · Nueva York

Adelson Aguasvivas.

Desarrollo sistemas distribuidos seguros y plataformas de software. También creo y publico apps de iPhone y juegos web.

Coachable Antes en Amazon Alexa Harvard, Informática, 2021

Adelson Aguasvivas

2 apps de iPhone en el App Store · 6 disponibles en la web · 1 en TestFlight

Experiencia

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.

GitHub , Corrección automática, investigación con LLVM (se abre en otra pestaña)

Habilidades

Lenguajes
Python, TypeScript, JavaScript, Java, SQL, C++, C, R
Frameworks
React, Node.js, Rails, Flask
Nube y herramientas
AWS, Cloudflare Workers, Git, Docker, CI/CD, LLVM, MySQL, SQLite
Conceptos
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)
Idiomas
Inglés y español, ambos nativos

CV (PDF, 1 página)

Proyectos

Seis proyectos que desarrollé y publiqué por mi cuenta, desde sistemas backend hasta juegos multijugador y apps de iPhone.

Sistemas backend

Disponible ledgerline.adelsonaguasvivas.workers.dev

Ledgerline

Una API de eventos que conserva el orden, evita duplicados al reintentar y detecta cambios en el historial guardado.

Fig. 1 Cómo se agrega un evento
  • Cliente
  • Worker Hono
  • Durable Object uno por flujo
  • D1 modelo de lectura
  1. Cliente a Worker 01 POST /v1/streams/:id/events Con el encabezado Idempotency-Key.
  2. Worker 02 Clave, 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.
  3. Worker a Durable Object 03 append(payload, key) Se dirige con idFromName(streamId).
  4. Durable Object 04 blockConcurrencyWhile 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.
  5. Durable Object 05 Una 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.
  6. Durable Object a Worker 06 {seq, hash}
  7. Worker a D1 07 INSERT 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.
  8. Worker a Cliente 08 201 {seq, hash} Un reintento devuelve 200 con Idempotent-Replay: true. Un cuerpo distinto devuelve 422.
  9. Durable Object a D1 09 alarm(): 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

  1. génesis SHA-256("ledgerline:v2:" + streamId)
  2. h1 evento 1
  3. h2 evento 2
  4. h3 evento 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.

Cómo se guarda un evento, paso a paso, Ledgerline

Detalle de la demo de Ledgerline: al editar el evento 2, su hash recalculado deja de coincidir y el evento 3 también queda inválido.
Demo en vivo: edita un monto y la cadena se rompe en ese evento.
ledgerline.adelsonaguasvivas.workers.dev
Demo de Ledgerline: cambiar el monto del evento 2 a 999 rompe la cadena de hashes e invalida el evento 3. Al restablecerla, la cadena vuelve a estar válida y en verde.
Demo en vivo: cambia un monto y /verify reporta brokenAt: 2.

99

pruebas en 15 archivos, con Durable Objects reales y D1 local en el entorno de Workers

  • 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.

Dominó dominicano · iPhone, web, iMessage

App Store v1.1.0 Disponible playcapi.com

Capi

Juega 1 contra 1 o por parejas con tus panas, en tiempo real en iPhone y la web o por turnos en iMessage. Sin crear cuenta.

Una partida 1 contra 1 de Capi en iPhone durante una ronda, con ambos puntajes en la parte superior.
App de iPhone
playcapi.com
Página de inicio de Capi en playcapi.com, con un formulario para crear una partida y elegir nombre, color, mesa, modo y puntos para ganar.
Web
Una partida 1 contra 1 de Capi en Mensajes para iPhone, con los botones New game y Open in Capi encima de la mesa.
iMessage

960

finales generados con semilla, verificados para detectar partidas trabadas

  • El servidor, la web, la app de iPhone y iMessage comparten un motor de reglas en TypeScript: unas 1,240 líneas sin dependencias de ejecución.
  • El servidor valida cada jugada con el motor y devuelve HTTP 409 si se basa en un estado desactualizado.
  • Una mesa sin actividad consulta su estado cada 10 segundos para recuperarse de las actualizaciones que no llegaron.
the-cap-room.vercel.app/trade
Simulador de cambios de The Cap Room: superar el límite de $8,495,000 en efectivo cambia el resultado de LEGAL a ILLEGAL, con 2 reglas incumplidas. Al reducirlo, vuelve a LEGAL.
Un cambio entre dos equipos se verifica regla por regla al ajustar el monto en efectivo.
the-cap-room.vercel.app/trade
Registro de reglas de The Cap Room para un cambio legal: 19 verificaciones, con la alerta de tope estricto primero y el cálculo completo de las dos reglas de igualación salarial.

App web · tope salarial de la NBA

Disponible the-cap-room.vercel.app

The Cap Room

Consulta salarios de la NBA, compara jugadores y prueba cambios entre dos equipos según el convenio colectivo de 2023. Cada regla muestra su cálculo.

44

pruebas del motor, incluidos casos un dólar por encima de cada umbral salarial y fiscal

SWARMGEDDON en un teléfono: aparece una alerta de STAMPEDE y entra un enjambre de insectos alienígenas mientras el piloto dispara.
Partida con controles táctiles, a los dos minutos y medio.

Juego de navegador · teléfono y computadora

Disponible swarmgeddon.adelsonaguasvivas.workers.dev

SWARMGEDDON

Sobrevive a enjambres de insectos alienígenas en tres mundos. Un juego de disparos de doble stick, con jefes y un reto diario.

60 Hz

paso de simulación fijo, separado del render; todo el azar sale de 7 secuencias con semilla

Draft de Invicto, ronda 5 de 12: una tirada de Canadá, WBC 2017 encima de la lista de peloteros, con los 12 puestos del lineup en la parte inferior.

Juego de navegador · béisbol

Disponible invictobaseball.com

Invicto

Arma un equipo de 12 jugadores con las plantillas reales del Clásico Mundial de Béisbol, de 2006 a 2026, y simula el torneo.

20,000

torneos simulados por equipo para verificar que uno de élite termine 7-0 entre el 2% y el 5% de los torneos

Marcador de Anota en plena partida: un equipo con 102 y el otro con 80.

App de iPhone · anotador de dominó

App Store v1.2.1

Anota

Lleva el marcador del dominó dominicano por parejas en tu iPhone.

5

pasos para iniciar los anuncios, cada uno con un límite de espera, sin detener el marcador

Registro de lanzamientos

Lanzamientos y actualizaciones, del más reciente al más antiguo.

  1. Capi 1.1: partidas por turnos en iMessage y una tienda con tres estilos de mesa y tres diseños de fichas.

    App Store Caso de estudio, Capi
  2. Ledgerline 422 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.

    Disponible Caso de estudio, Ledgerline
  3. The Cap Room Rediseño con Next.js 16 y React 19: tablero de la liga para móvil, cambios de ejemplo y búsqueda de jugadores con Cmd-K.

    Disponible Caso de estudio, The Cap Room
  4. SWARMGEDDON La v2 ya se puede jugar en el navegador: tres mundos, jefes y un reto diario con semilla.

    Disponible Caso de estudio, SWARMGEDDON
  5. Capi Resincronización cada 10 segundos para recuperar actualizaciones perdidas y 960 finales generados con semilla para detectar bloqueos.

    Disponible Caso de estudio, Capi
  6. Invicto Las partidas se pueden retomar al recargar. La pantalla de inicio aparece antes de que cargue el archivo de plantillas de 1.3 MB.

    Disponible Caso de estudio, Invicto
  7. Capi La 1.0 en el App Store.

    App Store Caso de estudio, Capi
  8. El Corre Corre Página del juego y política de privacidad publicadas.

    Página del juego, El Corre Corre (se abre en otra pestaña)
Todos los lanzamientos
  1. Anota 1.2: anuncios de banner con una compra para quitarlos. Pro también los elimina.

    App Store Caso de estudio, Anota
  2. Ledgerline Publicado en Cloudflare Workers con una demo pública de detección de alteraciones.

    Disponible Caso de estudio, Ledgerline
  3. The Cap Room Publicado en Vercel.

    Disponible Caso de estudio, The Cap Room
  4. Anota 1.1: temas, tarjeta para compartir y Pro.

    App Store Caso de estudio, Anota
  5. Anota La 1.0 en el App Store.

    App Store Caso de estudio, Anota
  6. Flawless Disponible en el navegador.

    Disponible Jugar en el navegador, Flawless (se abre en otra pestaña)
  7. Invicto Disponible en el navegador.

    Disponible Caso de estudio, Invicto
  8. SWARMGEDDON La v1 ya se puede jugar en el navegador.

    Disponible Caso de estudio, SWARMGEDDON

Cómo trabajo

Prácticas que uso en varios proyectos, con ejemplos del código.

El Play

Más juegos y apps, incluidos algunos ambientados en República Dominicana.

Juego de iPhone

Beta en TestFlight Todavía no está en el App Store

El Corre Corre

Recorre el Malecón de Santo Domingo en motor en este juego arcade para iPhone. Esquiva el tráfico o ve en contravía para duplicar los puntos.

El Corre Corre: en contravía por el Malecón al atardecer.
El Corre Corre: el motorista entra en contravía, activa el multiplicador x2 y gana puntos por pasar rozando.
En contravía, los puntos se duplican. Cada cerquita suma.
El Corre Corre: un caballito por la Zona Colonial rumbo a la Puerta del Conde.

0

archivos de audio en el repo; toda la música y los efectos se sintetizan con Web Audio mientras juegas

  • El generador de tráfico rechaza cualquier oleada que no deje un hueco para pasar, y una prueba lo verifica.
  • 108 pruebas unitarias en 11 archivos.
  • Las partidas tienen una copia en el almacenamiento nativo para conservar el progreso si iOS borra los datos web.

Hecho para un negocio local

En desarrollo

Hype Room

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.

Pestaña Drops de Hype Room: un sorteo gratuito donde un ganador puede comprar unos Jordan 1 por $1, con la cantidad de participantes y el tiempo restante debajo.
Pestaña Shop de Hype Room, con productos y un filtro por talla.
  • 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.

Otros proyectos

  • Conuco, Caso de estudio

    En desarrollo

    Siembra, pesca y ayuda a restaurar un pueblo caribeño. Un juego para web y móvil, escrito primero en español.

    126 pruebas

  • Decide seis políticas sociales sin saber quién vas a ser y después vive quince vidas al azar bajo esas reglas. Diseñado primero en español.

    55 pruebas

  • Elige cinco personajes y sobrevive a un torneo de siete batallas en el navegador.

    83 KB

  • Liftling (nombre provisional)

    En desarrollo

    Una app de iPhone para registrar entrenamientos sin conexión, en español e inglés. Una criaturita crece a medida que entrenas.

    El código es privado, pero con gusto te lo explico en una llamada.

    ~700 pruebas

  • Coherente

    Versión privada

    Un juego bilingüe de dilemas morales en el navegador. La partida termina cuando una decisión contradice otra que tomaste antes.

    El código es privado, pero con gusto te lo explico en una llamada.

    1,500 partidas con semilla

  • The System

    Versión privada

    Una app privada de estudio con práctica diaria y repasos a los 3, 7 y 21 días.

    El código es privado, pero con gusto te lo explico en una llamada.

Para jugar ahora en el navegador, sin cuenta: SWARMGEDDON (se abre en otra pestaña) Invicto (se abre en otra pestaña) Flawless (se abre en otra pestaña) Capi (se abre en otra pestaña)

Sobre mí

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.

Contacto

adelsonaguasvivas@gmail.com

El correo es la mejor forma de escribirme sobre un puesto o un proyecto.