mcp server
portfolio
Senior Platform Engineer → Forward Deployed Engineer. Production portfolio with CI/CD, observability, MCP server, RAG, agent evals, and a public roadmap.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 23, 2026Raihan Khan — Senior Platform Engineer → Forward Deployed Engineer
TL;DR — This is the working portfolio of a senior platform engineer pivoting toward a Forward Deployed Engineer (FDE) role. The site is shipped as a production product — with real CI/CD, observability, an MCP server, RAG, agent evals, and a public roadmap.
👉 Live site: raihankhan.dev (or GitHub Pages) 👉 Public roadmap: Platform & FDE Roadmap 👉 Hiring manager summary: /hiring-managers
🧭 What's in this repo
| What | Where |
|---|---|
| Source of the portfolio site | /app, /components, /lib |
| Content (blog, notes, ADRs) | /content |
| Project with 8 milestones | Platform & FDE Roadmap |
| Issues (52 strategic items) | Issue tracker |
| Discussions (community channel) | Discussions |
| Docs | /docs |
| CI/CD | /.github/workflows |
| Governance (CODEOWNERS, templates, security policy) | /.github |
🚀 Quick start
git clone https://github.com/raihankhan/portfolio.git
cd portfolio
pnpm install
pnpm dev
Open http://localhost:3000.
🏗️ Tech stack
| Layer | Choice | Why |
|---|---|---|
| Framework | Next.js 16 (App Router) | RSC + streaming + edge-native |
| Language | TypeScript 5 (strict) | Type safety = senior hygiene |
| Styling | Tailwind v4 + OKLCH | Semantic tokens, theme-able |
| Components | shadcn/ui + Radix | Accessible, composable, owned |
| Animation | Framer Motion | Physics-based, reduced-motion aware |
| Charts | Recharts | Declarative, theme-aware |
| Hosting | Vercel | Preview deploys on every PR |
| Edge | Cloudflare Workers | MCP server, RAG, OG images |
| CI | GitHub Actions | The bar |
| Observability | OpenTelemetry + Sentry (planned) | Telemetry before features |
🎯 The FDE playbook
This repo is intentionally structured to demonstrate FDE-readiness in public:
| FDE competency | Where it's demonstrated |
|---|---|
| Ship production software | The site itself, with CI/CD, observability, SLOs |
| AI / agent engineering | MCP server, RAG, multi-step agent, eval harness |
| Customer-facing work | "Ask my portfolio" widget, "Tailor my pitch" tool |
| Multi-tenant systems | MCP resource/tool model, tenant isolation patterns |
| Operational excellence | Public roadmap, SLOs, status page, incident templates |
| Communication | ADRs, system design writeups, blog posts, talks |
| Eval-driven iteration | Public agent eval dashboard |
| Telemetry-driven decisions | Web Vitals, OpenTelemetry, structured logs |
🤖 AI / Agent engineering
This is the FDE pivot — and the differentiator.
- 🧩 MCP server (in progress) — exposes the portfolio to any AI assistant
- 🔍 RAG pipeline — semantic + keyword hybrid search across all content
- 🤖 Multi-step agent — "tailor my pitch for this JD" with eval harness
- 📊 Public eval dashboard — every run published, regressions surfaced
- 🛠️ Agent observability — Langfuse / OpenLLMetry traces
- 🧪 Eval harness — recall@k, MRR, latency, cost-per-query
See issues #8, #9, #28, #39, #50.
🛠️ Platform engineering showcase
| Project | Highlight |
|---|---|
| Enterprise Kubernetes Platform | Multi-tenant GitOps at 50+ teams |
| Self-Service CI/CD | 90% reduction in deploy tickets |
| Multi-Cloud IaC Framework | 40% cost reduction, zero violations |
| K8s Operator in Go | Custom controllers in production |
| Unified Observability Platform | MTTR 4h → 30m |
See issue #2 for the long-form case studies.
📚 Knowledge sharing
- 📝 Blog — 10+ deep posts on platform / FDE topics
- 📓 Notes — Quick references for daily ops
- 📐 Decisions — Architecture Decision Records
- 🎤 Talks — Conference abstracts + slide decks
- 📞 For hiring managers — One-pager
🎮 Bonus: The Kubernetes arcade
Because managing clusters is serious business, but sometimes you just need to play.
| Game | What it teaches |
|---|---|
| Snake | Pod lifecycle, eviction |
| Flappy Bird | Load balancing, throughput |
| Pod Eviction Survival | Disruption budgets |
| Cluster Autoscaler Rampage | Capacity planning |
| Node Drain Rush | Graceful shutdown |
| DevOps Adventure: GitOps | End-to-end deployment |
📁 Project structure
portfolio/
├── app/ # Next.js App Router
│ ├── page.tsx # Home / Hero
│ ├── projects/ # Project portfolio
│ ├── blog/ # Blog posts
│ ├── notes/ # Quick references
│ ├── decisions/ # ADRs
│ ├── experience/ # Timeline
│ ├── hiring-managers/ # One-pager
│ ├── contact/ # Contact form
│ └── arcade/ # 🎮 Kubernetes games
├── components/ # React components
│ ├── ui/ # shadcn primitives
│ ├── game-console/ # Arcade launcher
│ └── ... # Section components
├── content/ # MDX content
│ ├── blog/
│ ├── notes/
│ └── decisions/
├── lib/ # Utilities + data
├── hooks/ # Custom React hooks
├── public/ # Static assets
├── styles/ # Global styles
├── infra/ # Terraform / IaC
├── docs/ # Repo documentation
├── tests/ # E2E + visual regression
└── .github/ # CI/CD + governance
├── workflows/
├── ISSUE_TEMPLATE/
├── CODEOWNERS
├── dependabot.yml
├── pull_request_template.md
└── stale.yml
🤝 Contributing
This repo is open to contributions — content suggestions, bug fixes, ideas.
👉 See CONTRIBUTING.md for the full guide.
Quick paths:
- 🐛 Report a bug
- ✨ Propose a feature
- 📝 Suggest content
- 💬 Join the discussion
- 🔒 Report a security issue
📄 License
GNU GPL v3 — see LICENSE.