Alex Rusin
banner
alexrusin.com
Alex Rusin
@alexrusin.com
Software Engineer | AWS Developer | Passionate about scalable, secure solutions | Follow for tech tips & tutorials 🌐💻
https://linktr.ee/alexrusin
Split Claude Code hooks into two tiers. Type check and lint after every edit. Full tests, coverage, and complexity gate on Stop. And check stop_hook_active, or a blocking Stop hook keeps firing until you kill the terminal.

youtu.be/wU2SFAbnL3s
Claude Code Hooks: Stop Bad AI Code with TypeScript, ESLint, and Vitest
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 25, 2026 at 5:21 PM
Pro Tip: How to Implement Claude Code Hooks Effectively
September 24, 2026 at 5:13 PM
Your Claude Code hook can't be a bare npm script. Wrap it in a script that runs the checks, captures output, and exits 2 on failure. Then Claude reads the failures and fixes them without being asked.
September 23, 2026 at 5:20 PM
What are Claude Code Hooks Explained in 4 Seconds
September 22, 2026 at 5:12 PM
A Claude Code hook that calls npm run gate looks correct and blocks nothing. A failing script exits 1, which is non-blocking on PostToolUse. Exit 0 is worse. Claude never sees the output. Exit 2 puts your stderr in front of the model.

youtu.be/wU2SFAbnL3s
Claude Code Hooks: Stop Bad AI Code with TypeScript, ESLint, and Vitest
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 21, 2026 at 5:18 PM
safeParse at the untrusted edge, where you want to catch the error and respond with it. parse at internal boundaries, where bad data is a bug in your own code and should fail loudly. parse throws, safeParse doesn't.

youtu.be/YeFo6yoP6ro
Type-Safe Express APIs with Zod v4: One Schema, No Duplicate Types
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 18, 2026 at 4:45 PM
Zod The Schema Library Every Dev Needs
September 17, 2026 at 5:04 PM
Drop a Zod validation middleware into your Express route, then hover over req.body. It's any again. The runtime guarantee is real, the type just didn't survive the middleware boundary. Two ways out: a cast, or generics.

youtu.be/YeFo6yoP6ro
Type-Safe Express APIs with Zod v4: One Schema, No Duplicate Types
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 16, 2026 at 4:44 PM
Automate API Validation with Zod & TypeScript
September 15, 2026 at 5:04 PM
TypeScript is gone by the time the request lands. A typed Express handler will still take a misspelled field and compile. One Zod schema does the runtime check and hands you the type from the same object.

youtu.be/YeFo6yoP6ro
Type-Safe Express APIs with Zod v4: One Schema, No Duplicate Types
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 14, 2026 at 4:43 PM
A test you've never seen fail is a test you're guessing about. Drop the unique index. Comment out the policy. Run it. If it doesn't go red, you just learned that test was never checking anything, in 5 minutes instead of in an accident.

youtu.be/oYYXQSgn-bA
Node.js Integration Tests with a Real Postgres Database (Testcontainers + Vitest)
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 11, 2026 at 3:02 PM
Mocking the data layer is fine when the thing under test is your code. It's useless when the thing under test is your database. Constraints, policies, cascade rules, transaction behavior. None of that lives in your source. It lives in the engine.

youtu.be/oYYXQSgn-bA
Node.js Integration Tests with a Real Postgres Database (Testcontainers + Vitest)
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 9, 2026 at 3:02 PM
I commented out the row-level security rule my isolation tests exist to check. The tests still passed. Not badly written tests. They were pointed at my dev database, and editing a migration file doesn't change a database that was already migrated.

youtu.be/oYYXQSgn-bA
Node.js Integration Tests with a Real Postgres Database (Testcontainers + Vitest)
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 7, 2026 at 8:06 PM
With presigned POST, the file has to be appended to the form data last.
S3 checks the policy against the fields it has already parsed. Anything after the file is invisible to that check. Put the file first and your conditions never get read.
youtu.be/IhbpLIdIo2k
The Right Way to Handle File Uploads in Node.js (Bypassing Express)
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 3, 2026 at 5:57 PM
The content type you pass to getSignedUrl is a suggestion. The client can override it and S3 won't care.
createPresignedPost is different — the policy travels with the request and S3 evaluates it before accepting a byte.

youtu.be/IhbpLIdIo2k
The Right Way to Handle File Uploads in Node.js (Bypassing Express)
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 2, 2026 at 5:57 PM
A presigned S3 PUT pins the bucket, the key, and the expiry. Not the size. Not the content type.
I signed a URL for a 200KB PNG and uploaded 400MB of shell script to it. S3 accepted it. No error, no alert.

youtu.be/IhbpLIdIo2k
The Right Way to Handle File Uploads in Node.js (Bypassing Express)
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 1, 2026 at 5:56 PM
A queue is not a reliability feature. It's a deferral feature.
Skip the retries, the backoff, the idempotent writes, the dead letter queue, and you've taken work that used to fail loudly and taught it to fail silently.
youtu.be/kxgO32H0jmc
Node.js Background Jobs with BullMQ Postgres Backend: Everything You Need to Know
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 28, 2026 at 7:41 PM
Retries first feels right. It's wrong.
Retries without idempotent writes is how an 800-person file imports 975 people. You created that bug by making the system safer.
youtu.be/kxgO32H0jmc
Node.js Background Jobs with BullMQ Postgres Backend: Everything You Need to Know
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 26, 2026 at 5:02 PM
BullMQ's default is one attempt. Not three. One.
If you never passed an options object, you don't have retries. You have a queue that gives up immediately, which is most of the way to not having a queue at all.
youtu.be/kxgO32H0jmc
Node.js Background Jobs with BullMQ Postgres Backend: Everything You Need to Know
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 24, 2026 at 5:01 PM
Set the tenant ID outside a transaction and it stays on the connection when it goes back to the pool. Now one request in a few hundred quietly answers with someone else's last name. Survives review, survives QA, surfaces in a ticket 6 months later.

youtu.be/ctJy5AxgVXM
Claude Code + Prisma: Multi-Tenant Postgres API That Can't Leak Data
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 21, 2026 at 4:49 PM
An RLS policy with USING but no WITH CHECK gives you one-directional isolation. Nobody can read another account's rows. Anybody can write one.
youtu.be/ctJy5AxgVXM
Claude Code + Prisma: Multi-Tenant Postgres API That Can't Leak Data
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 19, 2026 at 4:48 PM
Enabling row-level security in Postgres isn't enough. Prisma connects as the table owner, and Postgres exempts owners from their own policies. Until you FORCE it, the policy is active and doing absolutely nothing.

youtu.be/ctJy5AxgVXM
Claude Code + Prisma: Multi-Tenant Postgres API That Can't Leak Data
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 17, 2026 at 4:03 PM
The best tasks to hand Claude are usually boring, not impressive. A 10-min task you do 50x a week beats a 3-hour task you do twice a year. Score every task on volume, drag, fit, then subtract risk — start with the low-risk hotspot.

youtu.be/BrzxA3B7gEw
Why Your Claude Projects Keep Breaking (And How to Fix It for Good)
📘 Claude AI: The AI Assistant You'll Actually Use 👉 https://trk.udemy.com/ZVmxoX Most people don't quit Claude because it's bad — they quit because their Project breaks the moment the task gets…
youtu.be
August 10, 2026 at 4:04 PM
"Move that button down. No, the other one. The warning text is too aggressive."

The agent can't see your UI — but the fix isn't better prompting. It's throwaway prototypes you review by pointing at the element instead of narrating it in English.
AI Can Write Your UI. It Can't Tell You If It's Good. Here's the Fix.
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
August 3, 2026 at 4:57 PM
Cursor's 1,000-agent swarm rebuilding SQLite hit the same coordination failures a single Claude Code session hits, just scaled up. Fix: give the strong model only planning, a cheap model the coding. Same quality, an eighth of the cost.
Cursor Ran 1,000 Agents At Once. Every Problem They Hit, You Hit Too
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
July 27, 2026 at 4:05 PM