Notebook
Whatever is holding my attention.
This is where I keep my personal learnings, insights, and discoveries that I find interesting enough to share.
All posts
- NestJS microservices with a real two-service example
- TypeScript conditional types and how infer works
- How to store vector embeddings in Postgres with Drizzle ORM
- What the pgvector operators <->, <=>, and <#> actually mean
- RabbitMQ exchange vs queue, explained
- Validating NestJS env vars with Zod
- PostgreSQL doesn't have ON UPDATE CURRENT_TIMESTAMP. Here's the fix
- Docker Compose won't pull the latest image unless you tell it to
- Finding Your Raspberry Pi Address on a Mac
- The trap of making everything dynamic
- A try at type-safe groupBy function in TypeScript
- Email special headers
- Adding prettier to eslint
- Upgrading my blog to Next 15
- Cannot find module '../build/Release/canvas.node' on macOS
- tsx doesn’t support decorators
- Extending Window: types vs interfaces
- Loading env file into Node process
- Using node API for delay
- React Component Lifecycle
- How CQRS is different than Event Sourcing
- PgVector indexing options for vector similarity search
- Using puppeteer executable for GSTS
- Why EQ is Your Next Career Upgrade
- Counting GPT tokens
- Logging route handler responses in Next.js 14
- Redirect www subdomain with Cloudflare
- Logging requests in Express app
- Move Docker volume to bind mount
- Next.js Hydration Window Issue
- Using Git rebase without creating chaos in your repo
- RabbitMQ RPC pattern in TypeScript
- Optimize webpage load with special tags
- What the hell is Open Graph?
- My go-to Next.js ESlint config
- List of useful Chrome args
- Combining RxJS observables - Part 1