56,966 blogs · [ { "id": "01a08c6f-7534-72f7-8296-82fb386005b1", "title": "What Did a Waffle Iron Have to Do With the Birth of Nike?", "url": "https://www.amrishkhan.dev/blog/what-did-a-waffle-iron-have-to-do-with-the-birth-of-nike-26b2", "published_at": "2026-09-10T09:19:05+00:00" }, { "id": "01a08727-5dc7-703a-b6a0-216051a9d228", "title": "Sony Made a Tape Recorder That Couldn't Record. It Changed Music Forever.", "url": "https://www.amrishkhan.dev/blog/sony-made-a-tape-recorder-that-couldnt-record-it-changed-music-forever-398f", "published_at": "2026-09-09T08:18:35+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a742b73e9", "title": "200 Broken Watches Couldn't Solve It. A Bouncing Ball Did.", "url": "https://www.amrishkhan.dev/blog/200-broken-watches-couldnt-solve-it-a-bouncing-ball-did-2ae9", "published_at": "2026-09-05T07:58:15+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a74bbda20", "title": "Why Do Japanese Train Drivers Keep Pointing at Things?", "url": "https://www.amrishkhan.dev/blog/why-do-japanese-train-drivers-keep-pointing-at-things-272b", "published_at": "2026-09-05T05:05:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a75b3181a", "title": "What Did Heart Surgeons See in a Formula 1 Pit Stop?", "url": "https://www.amrishkhan.dev/blog/what-did-heart-surgeons-see-in-a-formula-1-pit-stop-4pf0", "published_at": "2026-09-04T06:11:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a76096f6c", "title": "The Shortest Route Is Sometimes the Slowest: What UPS Can Teach Software Engineers About Optimization", "url": "https://www.amrishkhan.dev/blog/the-shortest-route-is-sometimes-the-slowest-what-ups-can-teach-software-engineers-about-55fm", "published_at": "2026-09-03T06:10:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a764bbf2a", "title": "Sometimes the Fastest System Is the One Willing to Stop", "url": "https://www.amrishkhan.dev/blog/sometimes-the-fastest-system-is-the-one-willing-to-stop-5a6a", "published_at": "2026-09-02T07:12:22+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a76aa04ab", "title": "CocoIndex vs. code-review-graph: Semantic Search vs. Structural Code Intelligence", "url": "https://www.amrishkhan.dev/blog/cocoindex-vs-code-review-graph-semantic-search-vs-structural-code-intelligence-11bo", "published_at": "2026-08-26T09:31:41+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a76f3fad1", "title": "Ponytail: Teaching AI Coding Agents the Most Expensive Senior Engineering Skill — Restraint", "url": "https://www.amrishkhan.dev/blog/ponytail-teaching-ai-coding-agents-the-most-expensive-senior-engineering-skill-restraint-3p7", "published_at": "2026-08-26T06:19:41+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a7708e30f", "title": "Fix Next.js \"params should be awaited\" Error in Next.js 15+", "url": "https://www.amrishkhan.dev/blog/fix-nextjs-params-should-be-awaited-error-in-nextjs-15-273d", "published_at": "2026-08-20T06:16:41+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a775a1e80", "title": "Fix Next.js Middleware Redirect Loop: Why Your Login Page Keeps Redirecting", "url": "https://www.amrishkhan.dev/blog/fix-nextjs-middleware-redirect-loop-why-your-login-page-keeps-redirecting-3m8d", "published_at": "2026-08-19T07:14:44+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a77f064ae", "title": "The Next.js Hydration Error Everyone Hits and How to Actually Fix It", "url": "https://www.amrishkhan.dev/blog/the-nextjs-hydration-error-everyone-hits-and-how-to-actually-fix-it-35aa", "published_at": "2026-08-18T05:21:30+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a7877f4a2", "title": "The React Search Bug That Shows Old Results and How to Fix It", "url": "https://www.amrishkhan.dev/blog/the-react-search-bug-that-shows-old-results-and-how-to-fix-it-3oi7", "published_at": "2026-08-17T13:18:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a789ad35f", "title": "The Hidden Cost of Object Spread", "url": "https://www.amrishkhan.dev/blog/the-hidden-cost-of-object-spread-4jj3", "published_at": "2026-07-09T01:40:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a7918e48d", "title": "Why Functional Code Can Be Slower", "url": "https://www.amrishkhan.dev/blog/why-functional-code-can-be-slower-579b", "published_at": "2026-07-08T04:22:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a7929899c", "title": "When a `for...of` Loop Is Better Than `reduce()`", "url": "https://www.amrishkhan.dev/blog/when-a-forof-loop-is-better-than-reduce-1f3j", "published_at": "2026-07-08T01:28:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a7930e8a1", "title": "Composability Is The Real Superpower", "url": "https://www.amrishkhan.dev/blog/composability-is-the-real-superpower-272o", "published_at": "2026-06-25T04:45:00+00:00" }, { "id": "01a08727-5dc8-7350-9ccb-3f9a795f4ac3", "title": "Why Retry Is One Of The Most Dangerous Keywords In Software", "url": "https://www.amrishkhan.dev/blog/why-retry-is-one-of-the-most-dangerous-keywords-in-software-1m43", "published_at": "2026-06-13T06:27:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae76e30d8", "title": "Idempotency Is More Important Than You Think", "url": "https://www.amrishkhan.dev/blog/idempotency-is-more-important-than-you-think-32ka", "published_at": "2026-06-13T06:21:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae772f410", "title": "Why Abstractions Leak", "url": "https://www.amrishkhan.dev/blog/why-abstractions-leak-8ba", "published_at": "2026-06-12T05:16:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae7b398fe", "title": "Building Your Own Functional Utility Library", "url": "https://www.amrishkhan.dev/blog/building-your-own-functional-utility-library-47ne", "published_at": "2026-06-11T04:51:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae7c49fa4", "title": "Event Sourcing Is Just Reduce Over Time", "url": "https://www.amrishkhan.dev/blog/event-sourcing-is-just-reduce-over-time-4j4b", "published_at": "2026-06-07T04:20:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae86bda85", "title": "scan() Is Reduce For Infinite Data", "url": "https://www.amrishkhan.dev/blog/scan-is-reduce-for-infinite-data-5bck", "published_at": "2026-06-06T04:11:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae8bb3805", "title": "RxJS Is Just Arrays Over Time", "url": "https://www.amrishkhan.dev/blog/rxjs-is-just-arrays-over-time-3hc2", "published_at": "2026-06-05T04:06:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116ae9a8282e", "title": "You've Been Using Monads Without Realizing It", "url": "https://www.amrishkhan.dev/blog/youve-been-using-monads-without-realizing-it-1eg7", "published_at": "2026-06-04T04:01:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aea1e750c", "title": "FlatMap Is More Important Than You Think", "url": "https://www.amrishkhan.dev/blog/-flatmap-is-more-important-than-you-think-3ma1", "published_at": "2026-06-03T04:51:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aea1fef95", "title": "You've Been Using Functors For Years", "url": "https://www.amrishkhan.dev/blog/-youve-been-using-functors-for-years-3179", "published_at": "2026-06-02T04:30:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aea7af4d2", "title": "Why `map()` Exists Everywhere", "url": "https://www.amrishkhan.dev/blog/why-map-exists-everywhere-1d1", "published_at": "2026-06-01T04:30:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aeb05004d", "title": "The Myth Of Stateless Systems", "url": "https://www.amrishkhan.dev/blog/the-myth-of-stateless-systems-3blg", "published_at": "2026-05-30T18:47:23+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aeb608fd5", "title": "Reduce Has Nothing To Do With Arrays", "url": "https://www.amrishkhan.dev/blog/reduce-has-nothing-to-do-with-arrays-1he6", "published_at": "2026-05-30T11:22:59+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aeb7f0ac0", "title": "Transducers in JavaScript: When `reduce()` Is Not the End of the Story", "url": "https://www.amrishkhan.dev/blog/transducers-in-javascript-when-reduce-is-not-the-end-of-the-story-3h6j", "published_at": "2026-05-30T10:35:42+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aeb938336", "title": "Promise.all() Is Not Parallelism — And It Can Break Your System", "url": "https://www.amrishkhan.dev/blog/promiseall-is-not-parallelism-and-it-can-break-your-system-43ec", "published_at": "2026-05-09T06:56:00+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aebbd2436", "title": "Why I’m Building Local-First Developer Tools", "url": "https://www.amrishkhan.dev/blog/why-im-building-local-first-developer-tools-5a8l", "published_at": "2026-05-08T15:26:21+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aec03d0bc", "title": "The Most Underestimated Function in JavaScript: `reduce()`", "url": "https://www.amrishkhan.dev/blog/the-most-underestimated-function-in-javascript-reduce-2o8e", "published_at": "2026-05-08T06:01:54+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aec133387", "title": "Why I Built Aruvix — One Local-First Toolkit for Every Developer Workflow", "url": "https://www.amrishkhan.dev/blog/aruvix-the-ultimate-offline-first-developer-toolkit-e0i", "published_at": "2026-05-07T07:08:08+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aecc63132", "title": "Unlocking the Power of the Browser Console: A Developer's Guide", "url": "https://www.amrishkhan.dev/blog/unlocking-the-power-of-the-browser-console-a-developers-guide-4n7k", "published_at": "2025-10-17T11:25:49+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aed751a01", "title": "Demystifying SOLID: 5 Principles for Building Robust and Maintainable Software", "url": "https://www.amrishkhan.dev/blog/demystifying-solid-5-principles-for-building-robust-and-maintainable-software-2c9j", "published_at": "2025-10-14T11:25:16+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aee381b52", "title": "GitHub Code Setup: Choosing Your Workflow (HTTPS, SSH, Terminal, & Desktop)", "url": "https://www.amrishkhan.dev/blog/github-code-setup-choosing-your-workflow-https-ssh-terminal-desktop-7op", "published_at": "2025-10-08T14:38:01+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aeecf240c", "title": "Level Up Your Workflow: Mastering Bulk Actions in Postman", "url": "https://www.amrishkhan.dev/blog/level-up-your-workflow-mastering-bulk-actions-in-postman-2489", "published_at": "2025-10-08T08:45:23+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aefa3e90b", "title": "Unraveling the JavaScript Event Loop: A Deep Dive for Developers", "url": "https://www.amrishkhan.dev/blog/unraveling-the-javascript-event-loop-a-deep-dive-for-developers-50fg", "published_at": "2025-10-07T05:24:08+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116aefc942d4", "title": "A Developer's Guide to API Types: Architectures, Use Cases, and Code Examples", "url": "https://www.amrishkhan.dev/blog/a-developers-guide-to-api-types-architectures-use-cases-and-code-examples-3kbm", "published_at": "2025-10-06T11:56:29+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116af080fcab", "title": "npm vs. Yarn vs. pnpm: A Developer's Guide to Choosing the Right Package Manager", "url": "https://www.amrishkhan.dev/blog/npm-vs-yarn-vs-pnpm-a-developers-guide-to-choosing-the-right-package-manager-285f", "published_at": "2025-10-06T11:47:30+00:00" }, { "id": "01a08727-5dc9-71ea-ab39-116af169ed77", "title": "The Postman Alternative Guide: Which API Client is Right for You in 2025?", "url": "https://www.amrishkhan.dev/blog/the-postman-alternative-guide-which-api-client-is-right-for-you-in-2025-2p0b", "published_at": "2025-10-06T11:44:59+00:00" } ] posts Claim your blog
Back to amrishkhan.dev
Blog · corpus.blog/blogs/amrishkhan.dev/posts

amrishkhan.dev

amrishkhan.dev

2026

2025