Full-stack developer. I build internal tools, data pipelines and the infrastructure under them.
Repositories · makan.midyaty@gmail.com
Mostly TypeScript and Python, with Go for when performance really matters. Web applications, backend services, automation, and the Linux infrastructure they run on.
Day to day that means Next.js or Astro on the front, Node behind it, PostgreSQL underneath, and Docker on Linux hosts I run myself — plus Playwright and n8n where the work is automation rather than product.
Most of my work is in private repositories — what's public is below.
instadata — Async Instagram media scraper, on PyPI. HTTP-first: a plain anonymous request is the default path, and the expensive tiers (impersonated TLS, authenticated sessions, a headless browser) only wake up when the cheap one stops working. Resumable per page, so an interrupted 8,000-post account restarts where it stopped instead of re-spending the rate-limit budget. Python 3.13, fully typed.
image-proxy — Stateless streaming image proxy in Go. Streams the origin response without ever buffering it — no cache, no storage, no processing. SSRF-hardened (private, loopback, link-local and CGNAT ranges blocked, redirect targets checked), per-IP rate limiting, load shedding, host allowlist. Static binaries for linux and darwin on amd64 and arm64.
mcp-browser — MCP server that gives Claude Code a headless browser: navigation, DOM interaction, screenshots, and full request/response traffic capture with aggregated summaries. TypeScript, Playwright over CDP, Streamable HTTP transport with session management, deployed behind Caddy via Docker Compose.
kclaude — KDE Plasma 6 panel widget that surfaces Claude Code usage limits (5-hour, weekly, monthly) with colour-coded thresholds and reset countdowns. QML + Python, zero runtime dependencies beyond Plasma 6. Unofficial.
in the works: claude-opencode-proxy



