◇ Writings
All my posts on software engineering, web development, and building products.
-
NODE_ENV: What It Actually Does (And What It Doesn't)
Stop misusing NODE_ENV. Learn what it's really for, why you should always use production, and how to properly configure your Node.js apps.
-
TypeScript Compiler API: A Practical Guide
Master the TypeScript Compiler API. Learn type checking, AST traversal, code generation, and transformation with practical examples.
-
How to Safely Run Untrusted JavaScript Code (7 Methods)
Execute user-submitted JavaScript securely. Compare Web Workers, isolated-vm, WASM sandboxes, Docker, and static analysis with code examples.
-
Backtranslation for Data Augmentation in NLP
Expand your ML training data with backtranslation. Learn how to augment text datasets while preserving meaning and label accuracy.
-
Stream OpenAI Responses in Real-Time with Node.js
Build ChatGPT-like streaming responses with the OpenAI API. Handle SSE, token buffering, and real-time rendering in Node.js.
-
How to Write Custom ESLint Rules (Step-by-Step Guide)
Create your own ESLint rules from scratch. Learn AST traversal, rule structure, and testing. Working examples included.
-
Angular takeUntilDestroyed Migration Guide (with Codemod)
Stop using @ngneat/until-destroy. Migrate to Angular's built-in takeUntilDestroyed with a one-command codemod. Before/after examples included.
-
Build Infinite Scroll with RxJS (Complete Tutorial)
Create smooth infinite scrolling with RxJS operators. Handle loading states, error recovery, and performance optimization. Full working code.
-
Implement React Context API Pattern in Angular
Bring React's Context API pattern to Angular. Share state across components without prop drilling. Full implementation guide with code.
-
Angular Dynamic Components: Inputs, Outputs & ngOnChanges
Create dynamic Angular components with full lifecycle support. Handle inputs, outputs, and ngOnChanges in dynamically loaded components.
-
Host npm Packages on GitHub (Without npm Registry)
Can't get your npm scope? Host packages directly from GitHub using tarballs. Covers caching issues, installation scripts, and tradeoffs.
-
Build and Deploy a Todo API with January (Low-Code)
Create a REST API without writing backend code. Use January's low-code platform to build and deploy a Todo List API to Fly.io.
-
Angular Infinite Scroll: Directive vs Pipe (with Code)
Two ways to implement infinite scroll in Angular: custom directive vs pipe. Compare performance, pros/cons with working examples.
-
Why I Chose a DSL Over Complex Form UIs
Replace complex form UIs with a simple DSL. Real-world case study on designing policy rules, with syntax design decisions and tradeoffs.
-
Build a Typeahead/Autocomplete Component with RxJS
Create a fast typeahead search with RxJS. Handle debouncing, caching, keyboard navigation, and API optimization. Full code included.
-
Build a Text-to-SQL Agent with LLMs
Generate SQL queries from natural language using LLMs. Build an AI agent that understands your database schema and writes accurate queries.