Calin Gabriel Full Stack Developer · Node.js / TypeScript

4 projects

Projects.

Four projects, what the problem was on each, and what I did about it — and below them, the things I built to understand something, which run in your browser.

Lab

Not client work. Each one runs in your browser and prints its own numbers.

01

Worker pools, measured

Lab

A CPU-heavy database export, run two ways in your own browser. One freezes the page; the other doesn't. Both print the same fingerprint, so you can check the fast one isn't cheating.

Web WorkersEvent loopNode
02

Transactions, and what they cost

Lab

Two hundred concurrent bank transfers with no transaction around them. Every one reports success, none raises an error, and the money stops adding up. Then the fixes, with what each one costs measured against a real Postgres.

PostgreSQLIsolation levelsConcurrency
03

Infrastructure, by hand and by rule

Lab

A network, a firewall rule and a server that needs both. Build it by hand and run the same notes twice. Then just describe what you want, and run that twice instead.

TerraformAWS CDKIdempotency
04

One query per post

Lab

Ask a GraphQL API for six posts and their authors, and it goes to the database seven times, three of them for the same person. Run it with and without DataLoader and count the trips.

GraphQLDataLoaderNode
05

Do this later

Lab

Send this email in two hours. Put the jobs in a table, and three problems show up: two workers grab the same job, a job fails, a worker crashes halfway. Watch each one break, then get fixed.

PostgreSQLQueuesConcurrency
06

1,000 charges, one imperfect API

Lab

Charge 1,000 customers through an API that rate-limits, fails now and then, and answers slowly. Send them all at once, then pace them, retry them, and add a timeout. Without an idempotency key, the timeout charges 29 customers twice.

Rate limitsRetriesIdempotency