Engineering blog
Practical guides, pre-ship checklists, and reference cheatsheets — written for engineers who’d rather practice than memorize.
// all posts19
Latest Go Language Updates: What Engineers Should Know
Latest Go language updates cover generic methods, JSON v2, leak profiling, tooling changes, and practical upgrade risks.
Bun 1.4 Updates: Rust Runtime, Native APIs, and More
Bun updates in the latest release bring a Rust rewrite, native APIs, stronger Node.js compatibility, and new package tooling.
AI Tools for Interview Prep: A Practical Tool Stack
AI tools for interview prep can tighten your research, mock interviews, and answer review—if you use each tool for a defined job.
Model Context Protocol Update: Stateless MCP Is Here
Model Context Protocol’s latest update replaces session-bound transport with a stateless core, MRTR, routing headers, and sharper migration boundaries.
Server vs client components: a practical rule
When to reach for a React Server Component and when a page needs 'use client' — a simple rule based on data, interactivity, and where the code runs.
View all 19 posts
REST vs GraphQL: picking an API style
An honest, trade-off-first comparison of REST and GraphQL — over/under-fetching, caching, versioning, and the cost GraphQL adds — so you pick by project shape, not hype.
Why your React effect runs twice in dev
React StrictMode double-invokes effects in development on purpose. Here's why, what it's catching, and how to write effects that survive it — with proper cleanup.
How to review a React pull request
A shareable, team-facing checklist for reviewing React pull requests — correctness, hooks, state, performance, accessibility, and tests.
React performance: what to fix first
A saveable checklist for shipping fast React apps — cut wasted re-renders, trim bundles, fix data waterfalls, and measure what matters.
Getting Next.js SEO right
Everything to get right for Next.js SEO — the Metadata API, rendering mode, canonicals, sitemap and robots, Core Web Vitals, and structured data.
Every Mongoose query, one page
A bookmarkable Mongoose cheatsheet — finding, filtering, projection and sorting, pagination, updates, populate, and lean() for performance.
How to design a MongoDB schema
A reference for modelling decisions in MongoDB — embed vs reference, designing around queries, indexing, patterns, and the anti-patterns to avoid.
Shipping a MERN app to production
What to verify before your first real MERN deploy — environment config, security, database, performance, error handling, and observability.
How to prep for a frontend interview
A practical, framework-first plan to prepare for frontend engineering interviews — fundamentals, real features, and a four-week schedule.
How to paginate an API properly
Build a pagination contract that scales — page/limit vs cursor, a field whitelist for sorting, consistent page metadata, and the edge cases that break offset paging.
Why your Express async errors slip through
A rejected promise in an async route handler never reaches your Express error middleware. Here's why the default error handler misses it, and three ways to fix it.
Securing an Express API
Express security best practices as a pre-ship checklist — authentication, rate limiting, input validation, security headers, and secret handling.
How to handle API errors consistently
One error envelope, one middleware, one shape — a practical pattern for API error handling that clients can rely on, with status-code mapping and safe messages.
REST API design done right
The REST API checklist to run before you ship — resource naming, status codes, error shapes, pagination, versioning, and auth.

