Skip to content

Software engineer · New York

Adelson Aguasvivas.

I build secure distributed systems and software platforms. I also ship iPhone apps and browser games.

Coachable Previously Amazon Alexa Harvard CS, 2021

Adelson Aguasvivas

2 iPhone apps on the App Store · 6 live on the web · 1 in TestFlight

Experience

Software engineering at Amazon Alexa. Platform engineering at Coachable.

Coachable

Software Engineer

May 2023 to present

New York, NY

Coachable helps software engineers prepare for interviews and find jobs through coaching and structured practice.

  • 95%

    placement rate

  • 300%+

    year-over-year user growth

  • 3x

    faster reporting

  • 50%

    better coaching efficiency

  • Built and scaled the company’s core platform and data systems for 80+ active learners. The program sustained a 95% placement rate at Google, Amazon, Meta, Microsoft, and startups.
  • Designed analytics pipelines for student performance, hiring outcomes, and curriculum insights. Reporting became 3x faster, and data accuracy improved by 40%.
  • Built and maintained internal tools with Python, React, and AWS, including LLM-based resume generation and delivery. These tools improved coaching efficiency by 50%.
  • Coached 200+ students in data structures, algorithms, and problem-solving through 1,000+ mock interviews, helping them earn hundreds of offers.
  • Scaled operations with the founding team, contributing to 300%+ year-over-year user growth.

Amazon

Software Development Engineer, Alexa Data Depot Team

July 2021 to January 2023

Cambridge, MA

Alexa Data Depot manages large volumes of privacy-sensitive data used by Alexa’s products and analytics.

  • 700M+

    objects in deletion and retention workflows

  • 99.9%

    SLA on 300+ on-call tickets

  • 40%

    faster pipeline recovery

  • 0

    privacy violations

  • Led deletion and retention workflows for 700M+ objects (>55 PB) across distributed S3 buckets. Lifecycle policies and automation in Python and Java saved $1.3M per quarter.
  • As the team’s Security Lead, resolved 80+ security risks, including 25+ high-risk issues and 2 critical escalations across the organization. Strengthened IAM controls, encryption, and privacy compliance.
  • Owned the data deletion job for petabyte-scale datasets under GDPR and CCPA requirements. Worked with privacy and legal teams, with zero violations.
  • Managed the monthly on-call rotation and resolved 300+ tickets with 99.9% SLA compliance.
  • Improved data observability with teams across the organization, reducing pipeline recovery times by 40%.

Education

Harvard University

A.B. Computer Science

May 2021

Secondary in Ethnicity, Migration and Rights

Spanish Citation

Honors

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

Research

Automated grading, LLVM research

University of Illinois Urbana-Champaign

Built an automated grading and hint system for large computer science courses with LLVM, C/C++, and Python. It increased grading throughput by 10x.

Selected as one of about 40 students nationwide for the DREU Research Program, working directly with graduate students and faculty.

GitHub , Automated grading, LLVM research (opens in a new tab)

Skills

Languages
Python, TypeScript, JavaScript, Java, SQL, C++, C, R
Frameworks
React, Node.js, Rails, Flask
Cloud and tools
AWS, Cloudflare Workers, Git, Docker, CI/CD, LLVM, MySQL, SQLite
Concepts
Distributed systems, data pipelines, security, full-stack development, REST APIs, LLM integration (Claude API), development with AI tools (Claude Code, Codex, Cursor)
Spoken
English and Spanish, both native

Resume (PDF, 1 page)

Work

Six projects I built and shipped independently, from backend infrastructure to multiplayer games and iPhone apps.

Backend systems

Live ledgerline.adelsonaguasvivas.workers.dev

Ledgerline

An event-stream API that keeps writes in order, handles retries without duplicates, and detects changes to saved history.

Fig. 1 How an event is appended
  • Client
  • Worker Hono
  • Durable Object one per stream
  • D1 read model
  1. Client to Worker 01 POST /v1/streams/:id/events With an Idempotency-Key header.
  2. Worker 02 Key, rate and owner checks Looks up the API key by its SHA-256 hash, consumes one rate-limit token and checks stream ownership. An empty bucket returns 429 with Retry-After.
  3. Worker to Durable Object 03 append(payload, key) Routed by idFromName(streamId).
  4. Durable Object 04 blockConcurrencyWhile A reused key with the same body returns the original {seq, hash}. A different body is a conflict. A new key gets seq + 1 and the next hash.
  5. Durable Object 05 One atomic write Saves the event, key record, minute rollup, stream head and outbox alarm together. Either all are committed or none are.
  6. Durable Object to Worker 06 {seq, hash}
  7. Worker to D1 07 INSERT OR IGNORE Copies the event to D1 immediately so reads usually see a new write. If this fails, the client still receives the append result.
  8. Worker to Client 08 201 {seq, hash} A replay returns 200 with Idempotent-Replay: true. A different body returns 422.
  9. Durable Object to D1 09 alarm(): outbox sweep After about 5 s, inserts any rows missing from D1. Retries every 30 s while writes fail.

Hash chain

  1. genesis SHA-256("ledgerline:v2:" + streamId)
  2. h1 event 1
  3. h2 event 2
  4. h3 event 3

hn = SHA-256(hn-1 | RFC 8785 canonical JSON | n)

/verify rebuilds the chain from genesis and checks every seq, prevHash and hash. Comparing the result with the committed head also catches deleted events at the end.

How an event is saved, step by step, Ledgerline

Close-up of the Ledgerline demo: editing event 2 makes its recalculated hash mismatch, invalidating event 3 as well.
Live demo: edit one amount and the chain breaks at that event.
ledgerline.adelsonaguasvivas.workers.dev
Ledgerline demo: changing the amount in event 2 to 999 breaks the hash chain and invalidates event 3. Resetting restores the green, valid chain.
Live demo: change one amount and /verify reports brokenAt: 2.

99

tests across 15 files, using real Durable Objects and a local D1 in the Workers runtime

  • Retry a request with the same Idempotency-Key and get the original {seq, hash}. Reuse the key with a different body and get HTTP 422.
  • A concurrency test sends 20 writes at once and checks for sequence numbers 1 to 20. Remove the blockConcurrencyWhile guard and it fails.
  • A transactional outbox queues committed events for the D1 read model and retries delivery after failures.

Dominican dominoes · iPhone, web, iMessage

App Store v1.1.0 Live playcapi.com

Capi

Play 1v1 or 2v2 with friends, live on iPhone and the web or turn by turn in iMessage. No account needed.

A 1v1 Capi game on iPhone during a round, with both scores at the top.
iPhone app
playcapi.com
Capi home page at playcapi.com, with a new-game form for choosing a name, color, table, mode and winning score.
Web
A 1v1 Capi game in Messages on iPhone, with New game and Open in Capi buttons above the table.
iMessage

960

generated endgames checked for stalled play in one test suite

  • The server, web, iPhone app, and iMessage share one TypeScript rules engine: about 1,240 lines with no runtime dependencies.
  • The server re-runs every move through the engine and rejects a stale write with HTTP 409.
  • An idle table checks for fresh state every 10 seconds to recover from missed realtime updates.
the-cap-room.vercel.app/trade
The Cap Room trade machine: moving cash above the $8,495,000 limit changes the verdict from LEGAL to ILLEGAL with 2 rules violated. Lowering it restores LEGAL.
A two-team trade checked against each rule as the cash amount changes.
the-cap-room.vercel.app/trade
The Cap Room rule ledger for a legal trade: 19 checks, with the hard-cap flag first and full calculations for both salary-matching rules.

Web app · NBA salary cap

Live the-cap-room.vercel.app

The Cap Room

Explore NBA team salaries, compare players, and test two-team trades against the 2023 collective bargaining agreement. Every rule shows its math.

44

engine tests, including cases one dollar over each apron and tax threshold

SWARMGEDDON on a phone: a STAMPEDE alert appears, followed by a swarm of alien insects as the pilot fires.
Playing with touch controls, two and a half minutes into a run.

Browser game · phone and desktop

Live swarmgeddon.adelsonaguasvivas.workers.dev

SWARMGEDDON

Survive swarms of alien insects across three worlds. A twin-stick shooter with boss fights and a daily challenge.

60 Hz

fixed simulation step, separate from rendering; all randomness comes from 7 seeded streams

Shipping log

Recent launches and updates, newest first.

  1. Capi 1.1: iMessage games and a shop with three table styles and three tile designs.

    App Store Case study, Capi
  2. Ledgerline 422 when an Idempotency-Key is reused with a different body, RFC 8785 canonical hashing, outbox delivery to D1, and a redesigned tamper demo.

    Live Case study, Ledgerline
  3. The Cap Room Redesigned with Next.js 16 and React 19: a mobile league board, sample trades, and Cmd-K player search.

    Live Case study, The Cap Room
  4. SWARMGEDDON v2 is live in the browser: three worlds, bosses and a seeded daily challenge.

    Live Case study, SWARMGEDDON
  5. Capi Added a 10-second resync to recover missed updates, with 960 generated endgames checked for stalls.

    Live Case study, Capi
  6. Invicto Runs resume after a reload, and the title screen shows before the 1.3 MB roster file loads.

    Live Case study, Invicto
  7. Capi 1.0 on the App Store.

    App Store Case study, Capi
  8. El Corre Corre Published the landing page and privacy policy.

    Landing page, El Corre Corre (opens in a new tab)
All releases
  1. Anota 1.2: banner ads with a Remove Ads purchase. Pro also removes ads.

    App Store Case study, Anota
  2. Ledgerline Live on Cloudflare Workers with a public tamper demo.

    Live Case study, Ledgerline
  3. The Cap Room Launched on Vercel.

    Live Case study, The Cap Room
  4. Anota 1.1: themes, a share card, and the Pro unlock.

    App Store Case study, Anota
  5. Anota 1.0 on the App Store.

    App Store Case study, Anota
  6. Flawless Launched in the browser.

    Live Play in the browser, Flawless (opens in a new tab)
  7. Invicto Launched in the browser.

    Live Case study, Invicto
  8. SWARMGEDDON v1 launched in the browser.

    Live Case study, SWARMGEDDON

How I build

Practices I use across projects, with examples from the code.

After hours

More games and apps, including a few set in the Dominican Republic.

iPhone game

TestFlight beta Not on the App Store yet

El Corre Corre

Ride a motorbike down Santo Domingo’s Malecón in this iPhone arcade game. Dodge traffic, or ride against it for double points.

El Corre Corre: riding against traffic on the Malecón at sunset.
El Corre Corre: the rider enters the oncoming lane, activating the x2 multiplier and earning points for near misses.
Riding against traffic doubles the score. Each near miss adds points.
El Corre Corre: a wheelie through the Zona Colonial toward the Puerta del Conde.

0

audio files in the repo; all music and sound effects are synthesized with Web Audio while you play

  • The traffic spawner rejects any wave that leaves no gap across the road, and a test checks it.
  • 108 unit tests in 11 files.
  • Saves are backed up in native storage to protect progress when iOS clears web data.

Built for a local business

In development

Hype Room

An iPhone app for a sneaker and streetwear store. Browse the catalog, reserve items for pickup, and enter a free weekly draw. Pre-launch demo with sample data.

Hype Room Drops tab: a free draw where one winner can buy a pair of Jordan 1s for $1, with the entry count and time remaining below.
Hype Room Shop tab, with a product grid and size filter.
  • Each weekly draw has a dated id, and a test sweeps every hour of three weeks, including both DST changes, to check that two draws are never open at once.
  • Hold codes skip 0, O, 1, I and L so staff can read them at the counter, and holds expire after 48 hours.

Other projects

  • Conuco, Case study

    In development

    Grow crops, go fishing, and restore a Caribbean town. A game for web and mobile, written in Spanish first.

    126 tests

  • Set six social policies without knowing who you’ll be, then live fifteen random lives under those rules. Designed in Spanish first.

    55 tests

  • A browser draft game: pick five characters and survive a seven-battle tournament.

    83 KB

  • Liftling (working name)

    In development

    An offline iPhone workout tracker in English and Spanish. A small creature grows as your training adds up.

    The code is private, but I’m happy to walk you through it on a call.

    ~700 tests

  • Coherente

    Private build

    A bilingual browser game of moral dilemmas. A run ends when a choice contradicts one you made earlier.

    The code is private, but I’m happy to walk you through it on a call.

    1,500 seeded runs

  • The System

    Private build

    A private study app with daily practice and spaced review after 3, 7, and 21 days.

    The code is private, but I’m happy to walk you through it on a call.

Play in your browser, no account needed: SWARMGEDDON (opens in a new tab) Invicto (opens in a new tab) Flawless (opens in a new tab) Capi (opens in a new tab)

About

I’m a software engineer and Harvard CS graduate. At Amazon Alexa, I worked on distributed systems handling more than 55 petabytes of data and served as my team’s Security Lead. Today I build and scale Coachable’s platform, data pipelines, and internal tools.

I’m Dominican and grew up speaking Spanish and English. Most of my projects support both languages. A few draw on things I grew up with: dominoes, baseball, and the Malecón in Santo Domingo.

I also build and ship products independently. My releases include two iPhone apps and several browser games. I like owning the full process, from the data model and engine to the interface and release.

Contact

adelsonaguasvivas@gmail.com

Email is the best way to reach me about a role or a project.