# syedmoinuddin.com

> A minimal, pixel-perfect dev portfolio and blog showcasing my work as a Full Stack Engineer.

- [About](https://syedmoinuddin.com/about.md): A quick intro to me, my tech stack, and how to connect.
- [Experience](https://syedmoinuddin.com/experience.md): Highlights from my career and key roles I've taken on.
- [Projects](https://syedmoinuddin.com/projects.md): Selected projects that show my skills and creativity.
- [Awards](https://syedmoinuddin.com/awards.md): My key awards and honors.
- [Certifications](https://syedmoinuddin.com/certifications.md): Certifications and credentials I've earned.

## Research

- [VeRDiCT: Verifying Real Docket Citations in Tiers](https://syedmoinuddin.com/research/verdict.mdx): VeRDiCT checks case citations in AI-drafted court filings with deterministic tiers over open legal data, before any model reads them. It reaches 62.5 precision at 90 ms per excerpt with no model calls and flags 46.6% of the fabrications documented by US courts.

## Blog

- [The Brief and the Inventory: What I Learned Researching DESIGN.md and Design-System MCP Servers](https://syedmoinuddin.com/blog/design-md-mcp-design-systems-2026.mdx): DESIGN.md tells an agent what your brand means. It cannot say which components exist today or which props are real; MCP servers do. I linted 74 community files, read the Figma, Storybook and shadcn docs, and found the client's seat now decides what a freelancer's agent can do.
- [One Flag Away From Root: What I Learned Researching the LMCache Pickle RCE](https://syedmoinuddin.com/blog/lmcache-pickle-rce-cve-2026-105192.mdx): CVE-2026-105192 lets one unauthenticated ZeroMQ message run code on an LMCache multiprocess server, and no fixed version exists. The default bind is safe; LMCache's own Kubernetes example is not. Who can reach the port, why this bug keeps recurring, and four checks to run today.
- [16.3.7 Is Not the Patch: What I Learned Researching the Next.js September Security Release](https://syedmoinuddin.com/blog/nextjs-16-3-7-is-not-the-patch.mdx): The September notice named 16.3.7. It shipped as a bug fix, and the seven fixes landed in 16.3.8. Five days later npm audit still called 16.3.7 clean, and a release cooldown installed it on its own. What applies to your app, and the five places an old Next.js keeps running.
- [You Already Gave It the Keys: What I Learned Researching Apple's Full Disk Access Crackdown on AI Agents](https://syedmoinuddin.com/blog/apple-full-disk-access-ai-agents.mdx): On October 2, Apple said macOS Full Disk Access will need very explicit user action because of AI agents. The bigger finding: if your terminal has it, every coding agent you start there inherits it. What it exposes, who asks for it, and a 10-minute audit, with 12 sources.
- [The Fix Shipped 27 Days Early: What I Learned Researching the keyv Shai-Hulud npm Worm](https://syedmoinuddin.com/blog/keyv-shai-hulud-npm-worm-check.mdx): npm 12 turned dependency install scripts off on July 8. On August 4 a hijacked keyv release used a preinstall hook to spread to hundreds of packages. Here is the 10-minute check, the cleanup order, and the two lines of .npmrc that close the gap.
- [One Million Tokens Out: What Gemini 4 Argon's Output Cap Changes for the People Who Have to Run It](https://syedmoinuddin.com/blog/one-million-tokens-out.mdx): Argon raises the single-response ceiling from 64K to 1M tokens. The number is a trajectory, not an answer. What it does to the clock, the bill, the retry and the review, with 24 sources.
- [Everyone Removed the Off Switch: What I Learned Reading the GPT-6.1 Sol, Sonnet 5.5 and Gemini 3.8 Flash Migration Guides](https://syedmoinuddin.com/blog/everyone-removed-the-off-switch.mdx): Three vendors deleted the same three knobs in one month: thinking off, sampling parameters, and forcing the model's hand. What 27 sources say about building one request for all of them, and what the cache line costs on each.
- [Not a Ladder, a Fork: What I Learned Researching Claude Sonnet 5.5 vs Opus 5.5](https://syedmoinuddin.com/blog/claude-sonnet-5-5-vs-opus-5-5.mdx): Sonnet 5.5 is half the price per token, not half the price per task, and neither model can read the other's reasoning. What 27 sources and a day of engineer reports show.
- [Not a Winner, a Routing Rule: What I Learned Researching Claude Opus 5.5 vs Fable 5.1](https://syedmoinuddin.com/blog/claude-opus-5-5-vs-fable-5-1.mdx): Opus 5.5 is the default, Fable 5.1 is the escalation, and the API only lets reasoning travel one way. What 23 sources and a week of engineer reports show.
- [Polydact: A Wearable Robotic Sixth Finger That Coils Like a Tentacle, and the One Spiral Behind Its Grasp](https://syedmoinuddin.com/blog/polydact-wearable-robotic-sixth-finger.mdx): I fell down a rabbit hole into Polydact, a 3D-printed supernumerary finger controlled by a hand-sewn flex-sensor glove, and one piece of octopus-inspired math explains almost everything clever about it.
- [Claude Sonnet 5 in Production: What I Liked, What Bit Me, and the Token Tax Behind the Matching Price](https://syedmoinuddin.com/blog/claude-sonnet-5-in-production.mdx): A first-person migration log from swapping a real agentic stack (crawler, MCP servers, Claude Code) from Sonnet 4.6 to Sonnet 5, including the operational gotchas no benchmark chart warns you about.
- [What a Turborepo Monorepo Taught Me About Code Quality: The File Tree Mattered More Than the Linter](https://syedmoinuddin.com/blog/turborepo-monorepo-code-quality.mdx): A first-person account of what a real company monorepo taught me: that code quality came from the file structure and a single source of truth for our models, not from lint rules. Where the apps and packages go, where the backend models live, and what I would do differently.
- [Scaling React in 2026: 7 Decisions That Mattered, and Why None of Them Were useMemo](https://syedmoinuddin.com/blog/scaling-react-2026.mdx): Scaling a React app in 2026 had almost nothing to do with re-renders. The React Compiler deleted the hand-memoization busywork; the decisions that actually scaled were about where state lives, how data is fetched, and how much JavaScript you ship.
- [Chain of Thought](https://syedmoinuddin.com/blog/chain-of-thought.mdx): Collapsible reasoning steps for AI thinking interfaces.
- [Timeline](https://syedmoinuddin.com/blog/timeline.mdx): A vertical or horizontal timeline with steps, dates, and indicators.
- [Scaling RAG to 10M Documents: The Hallucination Fixes That Worked Were the Boring Ones](https://syedmoinuddin.com/blog/scaling-rag-10m-documents.mdx): Hallucination is a retrieval problem wearing a generation costume. Scaling a RAG pipeline past 10M documents, the fixes that actually moved the fabrication rate were the unglamorous ones: dedup, an abstention gate, and post-hoc grounding checks.
- [The Same Context, Billed on Every Turn: How to Cut Agentic AI Token Costs](https://syedmoinuddin.com/blog/cut-agentic-ai-token-costs.mdx): An LLM is stateless, so every turn re-sends the entire context as fresh input tokens. Here are five stacking techniques (caching, lazy-loading, routing, and compaction) that cut agentic token bills by 60–90% with no quality loss.
- [You Don't Import It, You Own It: Why shadcn/ui Beats Every Other Component Library](https://syedmoinuddin.com/blog/shadcn-ui-you-own-it.mdx): Most UI libraries hand you a black box and hope you never look inside. shadcn/ui hands you the source, and that one decision changes everything downstream.
- [The 12 AI Books That Actually Make You Better at Building (2026)](https://syedmoinuddin.com/blog/12-ai-books-that-make-you-better-at-building-2026.mdx): A pillar-by-pillar reading guide for engineers shipping agents, LLM systems, RAG, evals, and reliable production AI, organized by what you build, not by hype.
- [The Claude Workflow That Replaced 200 Words of Context With Two Sentences](https://syedmoinuddin.com/blog/claude-workflow-replaced-200-words-with-two-sentences.mdx): How stacking four Claude features lets you stop re-explaining yourself at the start of every chat, and just ask for the thing. Preferences, Styles, Projects, and Memory do the carrying.
- [The Scanner That Refuses to Run Your Code: Inside Perplexity's Bumblebee](https://syedmoinuddin.com/blog/perplexity-bumblebee-read-only-scanner.mdx): Most supply-chain scanners run your package manager to check for poison, which is exactly how poison spreads. Perplexity's open-source Bumblebee takes the opposite bet: it never runs anything.
- [The Invisible Box Around Your Text, and How to Finally Trim It](https://syedmoinuddin.com/blog/text-box-trim-css.mdx): Remove the empty space CSS bakes around text. A one-line, optical fix using text-box-trim and text-box-edge, with progressive enhancement for browser support.
- [The Scraper That Doesn't Get Banned: Building a Scalable Web Scraping Pipeline in Go](https://syedmoinuddin.com/blog/scalable-web-scraping-pipeline-go.mdx): A Go web scraping pipeline that survives at scale: rate limits per domain, rotating proxies, retries, and the layered architecture that keeps you from getting banned.
- [Boring on Purpose: Go Basics for People Who Want to Ship](https://syedmoinuddin.com/blog/boring-on-purpose-go-basics.mdx): Go's whole pitch is that the basics are enough. A pragmatic tour of the small toolset (structs, slices, errors, goroutines, interfaces) that ships real systems.
- [I Spent 6 Months Tuning Claude Code. Here's the Exact Setup That Finally Worked.](https://syedmoinuddin.com/blog/claude-code-setup-6-months.mdx): The exact Claude Code setup after six months: a lean CLAUDE.md, lazy-loaded skills, subagents, hooks, git worktrees, and the five MCP servers that earn their place.
- [The Bluffing Problem: What Claude Opus 4.8 Changes About Trusting AI Code](https://syedmoinuddin.com/blog/claude-opus-4-8-bluffing-problem.mdx): Claude Opus 4.8's real upgrade isn't raw capability, it's honesty. A model ~4x less likely to let its own code flaws slip by silently, and what that means for agentic AI.
- [Feature Bento](https://syedmoinuddin.com/blog/feature-bento.mdx): A bento-style feature grid with corner-decorator cards and a circular UI showcase.
- [Hero Pillars](https://syedmoinuddin.com/blog/hero-pillars.mdx): A hero section with a headline, illustration, and four supporting feature pillars.
- [Spotlight Grid](https://syedmoinuddin.com/blog/spotlight-grid.mdx): A 3-card spotlight grid with radial-masked icon decorators.
- [Sync Showcase](https://syedmoinuddin.com/blog/sync-showcase.mdx): An accordion synced with an animated preview pane, perfect for product showcases.
- [Dot Grid Spotlight](https://syedmoinuddin.com/blog/dot-grid-spotlight.mdx): Interactive dot grid with a cursor-tracking spotlight effect.
- [Icon Swap](https://syedmoinuddin.com/blog/icon-swap.mdx): Animate icon swaps with scale, blur, and fade transitions.
- [Brand Assets Menu](https://syedmoinuddin.com/blog/brand-assets-menu.mdx): Context menu for copying brand SVGs and opening asset links.
- [TOC Minimap](https://syedmoinuddin.com/blog/toc-minimap.mdx): Navigate page sections with a compact, hoverable TOC minimap.
- [GitHub Contributions](https://syedmoinuddin.com/blog/github-contributions.mdx): Visualize year-long GitHub contribution activity with daily counts, tooltips, and a profile link.
- [Theme Toggle Effect](https://syedmoinuddin.com/blog/theme-toggle-effect.mdx): Animated transitions when switching between light and dark themes.
- [Middle Truncation](https://syedmoinuddin.com/blog/middle-truncation.mdx): Truncate text in the middle while preserving start and end.
- [Testimonial Spotlight](https://syedmoinuddin.com/blog/testimonial-spotlight.mdx): Testimonial card with spotlight effect on hover.
- [Text Flip](https://syedmoinuddin.com/blog/text-flip.mdx): Animated text that cycles through items with a smooth flip transition.
- [Copy Button](https://syedmoinuddin.com/blog/copy-button.mdx): Copy text to clipboard with visual, haptic, and audio feedback.
- [Code Block Command](https://syedmoinuddin.com/blog/code-block-command.mdx): Display install commands with package manager switcher and copy button.
- [Testimonial](https://syedmoinuddin.com/blog/testimonial.mdx): Display user feedback with author info, avatar, and verified badge.
- [Scroll Fade Effect](https://syedmoinuddin.com/blog/scroll-fade-effect.mdx): Fade content edges as you scroll, for both vertical and horizontal layouts.
- [GitHub Stars](https://syedmoinuddin.com/blog/github-stars.mdx): Display GitHub repo star count with formatted numbers and full-count tooltip.
- [Shimmering Text](https://syedmoinuddin.com/blog/shimmering-text.mdx): Smooth, light-sweeping shimmer animation for text.
- [Testimonials Marquee](https://syedmoinuddin.com/blog/testimonials-marquee.mdx): Scrolling marquee to showcase user testimonials.
- [Slide to Unlock](https://syedmoinuddin.com/blog/slide-to-unlock.mdx): Interactive slider inspired by the classic iPhone “slide to unlock” gesture.
- [Work Experience](https://syedmoinuddin.com/blog/work-experience-component.mdx): Display work experiences with role details, company logos, and durations.
- [Theme Switcher](https://syedmoinuddin.com/blog/theme-switcher.mdx): Toggle between system, light, and dark themes in Next.js apps.
