Saltar al contenido

Ingeniero de software · Nueva York

Adelson Aguasvivas.

Construyo sistemas distribuidos seguros que manejan grandes volúmenes de datos. En mi tiempo libre publico apps de iPhone y juegos web.

Amazon Alexa, luego Coachable Harvard, Computer Science, 2021

Adelson Aguasvivas

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

Experiencia

Amazon de 2021 a 2023 y Coachable desde mayo de 2023. El CV de una página tiene los mismos datos.

Coachable

Ingeniero de software

Desde mayo de 2023

Nueva York, NY

Coachable es una startup de educación que ayuda a ingenieros a conseguir puestos en grandes empresas de tecnología con preparación profesional y coaching apoyados en software.

  • 95%

    tasa de colocación

  • 300%+

    crecimiento interanual de usuarios

  • 3x

    reportes más rápidos

  • 50%

    más eficiencia entre coaches y estudiantes

  • Diseñé y escalé la plataforma de coaching y los sistemas de datos de la empresa, con más de 80 estudiantes activos y una tasa de colocación sostenida del 95% en puestos en Google, Amazon, Meta, Microsoft y startups.
  • Diseñé pipelines de analítica para medir el rendimiento de los estudiantes, los resultados de contratación y datos del currículo; los reportes salen 3x más rápido y la precisión de los datos mejoró un 40%.
  • Construí y mantuve herramientas internas en Python, React y AWS, incluidos pipelines con LLM que generan y entregan currículums, y mejoré en un 50% la eficiencia entre coaches y estudiantes.
  • Entrené a más de 200 estudiantes en estructuras de datos, algoritmos y resolución de problemas; los guié en más de 1,000 entrevistas de práctica que terminaron en cientos de ofertas.
  • Trabajé con el equipo fundador para escalar las operaciones 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

El equipo Alexa Data Depot maneja pipelines de datos sensibles y de alto volumen que alimentan las experiencias de clientes de Alexa y su analítica.

  • 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 flujos de borrado y retención de datos sobre más de 700M de objetos (más de 55 PB) en buckets de S3 distribuidos, con $1.3M de ahorro por trimestre gracias a políticas de ciclo de vida optimizadas y automatización en Python y Java.
  • Fui el líder de seguridad del equipo: identifiqué y resolví más de 80 riesgos de seguridad (más de 25 de alto riesgo y 2 críticos escalados a toda la organización) con endurecimiento de IAM, cifrado obligatorio y cumplimiento de privacidad.
  • Fui responsable del job de borrado de datos que asegura el cumplimiento de GDPR y CCPA en datasets de escala de petabytes, junto a los equipos de privacidad y legal, con cero violaciones.
  • Fui responsable de la rotación mensual de guardia y resolví más de 300 tickets con un SLA del 99.9%.
  • Trabajé con equipos de distintas áreas para mejorar la observabilidad de los datos y reducir en un 40% el tiempo de recuperación de los pipelines.

Educación

Universidad de Harvard

A.B. en Computer Science

mayo de 2021

Concentración secundaria en Ethnicity, Migration and Rights

Spanish Citation

Honores

Forbes 30 Under 30 Scholar · HSF Scholar · Tuskegee Airmen Scholar · NSA Scholar · Dominican Day Parade Scholar

Investigación

Sistema automático de corrección para cursos de CS, investigación con LLVM

University of Illinois Urbana-Champaign

Desarrollé un sistema de corrección y pistas automáticas para cursos grandes de CS con LLVM, C/C++ y Python, que multiplicó por 10 la velocidad de corrección.

Fui uno de unos 40 estudiantes seleccionados en todo el país para el programa de investigación DREU, trabajando directamente con estudiantes de posgrado y profesores.

GitHub , Sistema automático de corrección para cursos de CS, 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, pipelines de datos, endurecimiento de seguridad, desarrollo full-stack, APIs REST, integración de LLM (Claude API), desarrollo acelerado con IA (Claude Code, Codex, Cursor)
Idiomas
Inglés y español, ambos nativos

CV (PDF, 1 página)

Proyectos

Seis proyectos que hice y mantengo por mi cuenta. Cada uno está en vivo en la web o en el App Store, y cada uno tiene su caso de estudio.

Sistemas backend

En vivo ledgerline.adelsonaguasvivas.workers.dev

Ledgerline

Una API HTTP en Cloudflare Workers para streams de eventos de solo anexar: appends exactamente una vez, orden sin huecos y una cadena de hashes SHA-256 que delata los cambios a la historia.

Fig. 1 El camino de un append
  • Cliente
  • Worker Hono
  • Durable Object uno por stream
  • D1 modelo de lectura
  1. Cliente a Worker 01 POST /v1/streams/:id/events con un Idempotency-Key
  2. Worker 02 Llave, límite y dueño La llave de API se busca por su hash SHA-256, su token bucket gasta un token (429 con Retry-After si está vacío) y el stream tiene que ser de esa llave.
  3. Worker a Durable Object 03 append(payload, key) enrutado con idFromName(streamId)
  4. Durable Object 04 blockConcurrencyWhile Una llave conocida con el mismo cuerpo devuelve el {seq, hash} original; otro cuerpo es un conflicto. Si no, seq + 1 y el siguiente hash.
  5. Durable Object 05 Una sola escritura atómica El evento, el registro de la llave, el rollup del minuto, la cabeza del stream y la alarma del outbox. Todo o nada.
  6. Durable Object a Worker 06 {seq, hash}
  7. Worker a D1 07 INSERT OR IGNORE El camino rápido, para que una lectura justo después de escribir casi siempre lo vea. Si falla, el cliente igual recibe su respuesta.
  8. Worker a Cliente 08 201 {seq, hash} Un reintento recibe 200 con Idempotent-Replay: true; otro cuerpo recibe 422
  9. Durable Object a D1 09 alarm(): barrido del outbox Unos 5 s después inserta solo las filas que le faltan a D1, y reintenta cada 30 s mientras D1 falle.

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 recalcula la cadena desde el génesis, revisando cada seq, prevHash y hash, y después compara el resultado con la cabeza guardada, así que una cola borrada también falla.

Cómo funciona un append, paso a paso, Ledgerline

Demo de Ledgerline de cerca: después de editar el monto del evento 2, su hash recalculado ya no coincide y el evento 3 hereda la ruptura.
Demo en vivo: edita un monto y la cadena se rompe en ese evento.
ledgerline.adelsonaguasvivas.workers.dev
Demo de Ledgerline: el monto del evento 2 cambia a 999, la cadena de hashes se rompe en el evento 2, el evento 3 queda inválido porque se apoya en ese enlace y al restablecer la cadena vuelve a verde.
Demo en vivo: cambia un monto y /verify reporta brokenAt: 2.

99

pruebas en 15 archivos, ejecutadas en el runtime de Workers contra Durable Objects reales y un D1 local

  • Repetir un Idempotency-Key devuelve el {seq, hash} original con Idempotent-Replay: true; usarlo con otro cuerpo devuelve 422.
  • Los appends corren dentro de blockConcurrencyWhile, así que 20 escrituras simultáneas reciben seq 1 a 20; si se quita esa protección, la prueba falla.
  • Un outbox transaccional entrega cada evento confirmado al modelo de lectura en D1: puede atrasarse, pero no puede perder ninguno.

Dominó dominicano · iPhone, web, iMessage

App Store v1.1.0 En vivo playcapi.com

Capi

Juega 1 contra 1 o 2 contra 2 con tus panas, sin crear cuenta: en tiempo real en la app de iPhone y en la web, o por turnos en iMessage.

Una partida 1 contra 1 de Capi en iPhone a mitad de ronda, con los dos puntajes arriba.
App de iPhone
playcapi.com
La página de inicio de Capi en playcapi.com: el formulario para crear una partida, con nombre, color, mesa, modo y puntos para ganar.
Web
Una partida 1 contra 1 de Capi dentro de la app Mensajes del iPhone, con los botones New game y Open in Capi encima de la mesa.
iMessage

960

finales con semilla en una suite de pruebas, cada uno verificado para que la mesa siempre pueda seguir

  • Un solo motor de reglas en TypeScript, de unas 1,240 líneas y sin dependencias, corre en el servidor y en cada cliente: la web, la app de iPhone y iMessage.
  • El servidor vuelve a pasar cada jugada por el motor y rechaza una escritura vieja con HTTP 409.
  • Una mesa sin actividad vuelve a pedir su estado cada 10 segundos, así que una actualización perdida no congela la partida.
the-cap-room.vercel.app/trade
La máquina de cambios de The Cap Room: al pasar el límite de $8,495,000 con el control de efectivo, el sello cambia de LEGAL a ILLEGAL con 2 reglas incumplidas, y luego vuelve.
Consola en vivo: un cambio entre dos equipos verificado regla por regla mientras cambia el efectivo.
the-cap-room.vercel.app/trade
El registro de reglas de The Cap Room para un cambio legal: 19 verificaciones con la única alerta de tope duro arriba, y el cálculo salarial escrito en las dos filas de igualación de salarios.

App web · tope salarial de la NBA

En vivo the-cap-room.vercel.app

The Cap Room

Una consola para trabajar con el tope salarial de la NBA: hojas de tope, comparación de jugadores y cambios entre dos equipos verificados contra el CBA de 2023 con el cálculo de cada regla.

44

pruebas del motor, con cada línea de apron e impuesto probada un dólar por encima

SWARMGEDDON en un teléfono: una alerta de STAMPEDE y después un chorro de insectos alienígenas entra mientras el piloto dispara.
El juego en vivo con controles táctiles, a dos minutos y medio de partida.

Juego de navegador · teléfono y computadora

En vivo swarmgeddon.adelsonaguasvivas.workers.dev

SWARMGEDDON

Un shooter de supervivencia de dos sticks: enjambres de insectos alienígenas en tres mundos, jefes y un reto diario con semilla.

60 Hz

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

Draft de Invicto, ronda 5 de 12: la tirada (Canadá, WBC 2017) encima de la lista de peloteros, con el lineup de 12 puestos abajo.

Juego de navegador · béisbol

En vivo invictobaseball.com

Invicto

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

20,000

torneos simulados por lineup en la prueba que mantiene un 7-0 de élite entre 2% y 5%

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

Un anotador de iPhone para dominó dominicano por parejas, para no anotar en papel.

5

pasos en el arranque de anuncios, cada uno con su propio timeout, así una red lenta nunca bloquea el marcador

Registro de lanzamientos

Lanzamientos y cambios que ya están en vivo, del más reciente al más viejo. Las fechas salen del App Store y del historial de commits.

  1. Capi 1.1: partidas por turnos en iMessage, y una tienda que vende tres mesas y tres diseños de fichas.

    App Store Caso de estudio, Capi
  2. Ledgerline 422 para un Idempotency-Key reusado, hash RFC 8785 como versión 2 de la cadena, un outbox para el modelo de lectura en D1 y una página nueva con el demo de alteración al frente.

    En vivo Caso de estudio, Ledgerline
  3. The Cap Room Rediseñada en Next.js 16 y React 19: un tablero de la liga que cabe en un teléfono, cambios de prueba a un clic y búsqueda de jugadores con Cmd-K.

    En vivo Caso de estudio, The Cap Room
  4. SWARMGEDDON La v2 está en vivo en el navegador: tres mundos, jefes y un reto diario con semilla.

    En vivo Caso de estudio, SWARMGEDDON
  5. Capi Las partidas ya no se traban por una actualización perdida: resincronización cada 10 segundos, retransmisión desde el servidor y una suite de 960 finales con semilla.

    En vivo Caso de estudio, Capi
  6. Invicto Las partidas siguen después de recargar, y la pantalla de inicio sale antes de que carguen los 1.3 MB de rosters.

    En vivo 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 en vivo.

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

    App Store Caso de estudio, Anota
  2. Ledgerline En vivo en Cloudflare Workers con un demo público de alteración.

    En vivo Caso de estudio, Ledgerline
  3. The Cap Room En vivo en Vercel.

    En vivo 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 En vivo en el navegador.

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

    En vivo Caso de estudio, Invicto
  8. SWARMGEDDON La v1 en vivo en el navegador.

    En vivo Caso de estudio, SWARMGEDDON

Cómo construyo

Seis hábitos que se repiten en varios proyectos, con enlaces al código público.

El Play

Juegos y apps que hago en mi tiempo libre. Varios pasan en República Dominicana.

Juego de iPhone

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

El Corre Corre

Un juego arcade en motor por el Malecón de Santo Domingo, para iPhone. Ir en contra vía duplica los puntos.

El Corre Corre: en contra vía por el Malecón al atardecer.
El Corre Corre: el motor se mete en contra vía, se enciende el x2 y salen puntos por pasar rozando.
En contra vía los puntos se duplican, y 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 se copian al almacenamiento nativo, así iOS no borra el progreso.

Hecho para un negocio local

En desarrollo

Hype Room

Una app de iPhone para Hype Room, una tienda de tenis y ropa urbana: un sorteo semanal gratis, el catálogo de la tienda y apartados para recoger en la tienda. Demo previa al lanzamiento con datos de muestra.

App de Hype Room, pestaña Drops: un sorteo de $1 por unos Jordan 1. Participar es gratis, y un ganador puede comprar el par por $1. Abajo están la cantidad de participantes y el tiempo que queda.
App de Hype Room, pestaña Shop: la lista de productos con 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

    Un juego caribeño de siembra, pesca y restauración del pueblo para web y teléfono, escrito primero en español.

    126 pruebas

  • Un juego en español primero: decides seis políticas sociales sin saber quién vas a ser y después vives quince vidas al azar bajo esas reglas.

    55 pruebas

  • Un juego de draft en el navegador: elige cinco personajes y sobrevive un torneo de siete batallas.

    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. Te lo enseño 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. Te lo enseño en una llamada.

    1,500 partidas con semilla

  • The System

    Versión privada

    Una app privada de estudio: una cola diaria de práctica con repaso espaciado a los 3, 7 y 21 días.

    El código es privado. Te lo enseño 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í

Estudié Computer Science en Harvard y después pasé un año y medio en Amazon construyendo sistemas de borrado y retención de datos para Alexa sobre más de 55 petabytes. Hoy estoy en Coachable, una startup de educación, donde construyo la plataforma de coaching, los pipelines de analítica y herramientas internas.

Soy dominicano y crecí entre el español y el inglés. Eso se nota en lo que hago: interfaces bilingües desde el principio y proyectos con un pedazo de casa, del dominó y la pelota al Malecón y el conuco.

Construyo fuera del trabajo porque me gusta llevar una idea por todo el ciclo del producto, desde el motor y el modelo de datos hasta las pantallas que la gente usa. Entre lo más reciente hay dos apps de iPhone y varios juegos de navegador.

Contacto

adelsonaguasvivas@gmail.com

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