Skip to content
➜ls -la blog/ --sort=date

Blog

// engineering_notes Writing about web development, tools, and engineering.

➜local_articles//count=13
[01]

Building Type-Safe APIs with Nuxt 3 Server Routes

How I replaced a standalone Express server with Nuxt 3 server routes and gained end-to-end type safety across the full stack.

[April 2026]// 8 min
[02]

Why I Moved from React to Vue (and What I Learned Going Back)

After five years across both ecosystems, the differences that actually matter in production and the ones that don't.

[March 2026]// 10 min
[03]

GSAP ScrollTrigger Patterns I Use in Every Project

Scroll-linked reveals, parallax, pinned sections, and the performance tricks that keep everything at 60fps.

[March 2026]// 9 min
[04]

Designing a Token-Based Design System for Dark Interfaces

How I built the semantic color tokens, typography scale, and spacing system that powers this portfolio.

[February 2026]// 7 min
[05]

Three.js on the Web: Lessons from Building a Terrain Hero

What I learned shipping a real-time 3D terrain as a page hero: GPU budgets, mobile fallbacks, and when WebGL is worth it.

[February 2026]// 11 min
[06]

Practical TypeScript: Patterns That Survived Production

Discriminated unions, branded types, const assertions, and the patterns I reach for daily after five years of TypeScript.

[January 2026]// 12 min
[07]

Server-Side Rendering vs Static Generation: When Each Wins

A decision framework for choosing between SSR, SSG, and ISR based on real project constraints, not marketing pages.

[January 2026]// 8 min
[08]

Building Accessible Interfaces Without Thinking About It

The semantic HTML patterns, ARIA conventions, and focus management habits that make accessibility automatic.

[December 2025]// 9 min
[09]

Git Workflows That Actually Work for Small Teams

Trunk-based, feature branches, and the hybrid approach I settled on after leading frontend across four major projects.

[December 2025]// 7 min
[10]

Performance Budgets: How I Keep Web Apps Fast

Bundle analysis, lazy loading strategies, image optimization, and the metrics I track from day one of every project.

[November 2025]// 10 min
[11]

Composables over Mixins: State Management in Vue 3

How composables replaced mixins, Vuex, and half my utility files, with patterns for sharing reactive state cleanly.

[November 2025]// 8 min
[12]

What Working Remotely from Dubai Taught Me About Async Collaboration

Time zones, documentation-first culture, and the communication habits that made distributed teams work.

[October 2025]// 6 min
[13]

From Freelance to Product: Lessons Shipping Client Projects

What 10+ client projects taught me about scope, estimation, client communication, and knowing when to push back.

[October 2025]// 7 min
external_archive // medium
➜external_articles
➜ total_posts: 19[sources: local, medium]