bash — ~/nafi
$whoami
Full-Stack Web Developer — Python / SQL backends, React & TypeScript frontends.
$cat profile.txt
2 years engineering end-to-end web solutions — from digital storefronts and dynamic
user platforms to mobile-first interfaces. Focused on pairing secure, high-performance
data processing with interactive frontend experiences.
Nafi Khan Chowdhury
Full-Stack Web Developer
~/skills $
ls -l
languages
Python (3y) · SQL (2y) · JavaScript (2y) · TypeScript (1y) · HTML5 · CSS3
frontend
React · Next.js
backend
Node.js · FastAPI · Flask · RESTful APIs
databases
PostgreSQL · SQLite · Relational DB design
tooling
Git/GitHub · Web Scraping · UI/UX Optimization · Mobile-First Design · Automation · Real-Time (SSE/WebSocket)
~/projects $
git log --oneline
#a3f9e21mainFull-Stack Developer
GAME TERMINAL — Digital Storefront Architecture
Next.js · React · Node.js · Stripe · Docker
- Architected a full-stack digital storefront for games and subscriptions — SSR product pages for SEO, static marketing pages, containerized Node.js backend for order processing and license key delivery.
- Enforced a mobile performance budget: LCP < 2.5s on simulated 3G, CLS < 0.1, critical CSS inlined per route. Lighthouse CI gate in PR pipeline blocks regressions before merge.
- Integrated Stripe Checkout + webhooks with idempotent fulfillment: UUID v4 license generation, transactional email delivery, dead-letter queue for failed events, and order status polling fallback.
- Embedded three support channels (Discord widget, WhatsApp deep-link, Messenger plugin) directly into the UI header and product pages — each fires custom attribution events, shifting 70% of support volume to chat.
- Deployed frontend on Vercel edge functions with preview deployments per PR; backend as multi-stage Docker containers on Railway with zero-downtime rolling updates via GitHub Environments.
- Mobile conversion rate exceeded desktop within 60 days of launch. Architecture scales horizontally — edge-cached frontend, stateless backend workers, no single point of failure.
#7c1b408backendBackend Developer
Real-Time Currency API & Automation Engine
Python · FastAPI · SQLite (WAL) · APScheduler · httpx
- Built an autonomous data pipeline: 4-source scraper with selector fallback chains, token-bucket rate limiting (1 req/sec/domain with jitter), and exponential backoff retries — runs on a 60-minute cron loop with zero manual intervention.
- Designed a normalized SQLite schema (currencies, rates, snapshots) with WAL mode for concurrent reads, composite index on (currency_id, fetched_at DESC) for O(log n) time-range queries, and weekly vacuum maintenance.
- Served via FastAPI with Pydantic v2 validation: GET /rates/latest (in-memory LRU cache, 30s TTL), GET /rates/history (cursor-based pagination, CSV export), auto-generated OpenAPI docs at /docs. p99 latency < 50ms on cold start.
- Added structured observability: structlog JSON output, Prometheus metrics endpoint (scrape_duration_seconds, scrape_success_total, rate_staleness_seconds), and a /healthz endpoint checking DB connectivity + last successful scrape age.
- Implemented a circuit breaker pattern for source failures — after 3 consecutive timeouts, source is skipped for 30 minutes with exponential re-check. Dead-letter queue captures malformed responses for manual inspection via CLI.
- Containerized with multi-stage Dockerfile (distroless Python runtime), deployed via GitHub Actions: lint → test → build → push to GHCR → deploy. systemd unit with restart=on-failure and journald log rotation.
#e4d0a17frontendFrontend Developer & Tool Maker
Web Platform UI/UX & Custom Tooling
React · CSS Modules · Python · OpenCV · Tesseract
- Led a full frontend migration from legacy jQuery to React + CSS Modules, delivering a WCAG 2.1 AA compliant, mobile-first redesign with a design token system (colors, spacing, typography) consumed via CSS custom properties.
- Reduced JS bundle by 38% through route-level code splitting, vendor chunk hashing, tree-shaking unused icon sets, and dynamic imports for heavy editors. Lighthouse CI budget: JS < 170KB gzipped — fails PR on regression.
- Designed a "glowing badge" component system for membership tiers (Free/Premium/VIP) — pure CSS with radial-gradient animations, prefers-reduced-motion safe, theme-aware via prefers-color-scheme. Increased premium tier click-through rate.
- Built Sleepy Stitcher: CLI that detects gutter margins via Sobel edge detection, stitches page spreads into single images, auto-crops whitespace, and exports WebP with configurable quality. Handles batch directories of 100+ scans.
- Built BubbleTagger: OCR-assisted speech bubble detector using Tesseract — outputs GeoJSON-like structure with bubble coordinates + extracted text for translation handoff. Both tools wrapped in Typer CLI with rich progress bars.
- Combined tooling cut the localization team's image processing pipeline by 47%. Manual testing with NVDA/VoiceOver ensured screen reader compatibility; axe-core integrated into CI for automated a11y regression checks.
#0f88c3dsystemsSystems Developer
arc_engine — Local AI Automation Architecture
Python · llama.cpp · IPEX-LLM · Intel Arc GPU · FastAPI
- Built a local-first automation framework running coding agents entirely on-device via llama.cpp + IPEX-LLM on Intel Arc GPU (Xe architecture) — zero cloud API dependencies, no rate limits, no data egress.
- Implemented smart model loading: auto-detects available VRAM via SYCL device enumeration, selects max context window that fits in memory, and falls back to GPU → CPU offload → pure CPU. Tested with CodeLlama-7B/13B, DeepSeek-Coder-6.7B, Phi-3-mini (all fit at Q4_K_M in 8-12GB VRAM).
- Designed an agent runtime: SQLite-backed persistent task queue, sandboxed exec environment (subprocess with resource limits), structured prompt templates (Jinja2), and a tool registry (file ops, shell, HTTP, Python REPL). Results stream via asyncio queues.
- Shipped a REST + WebSocket API (FastAPI): POST /tasks, GET /tasks/{id}, WS /tasks/{id}/stream for token-level streaming. JSON-RPC 2.0 compatible endpoint for IDE plugin integration. Optional API key auth with per-key rate limiting.
- Zero telemetry architecture — no outbound requests except explicit tool calls. Audit log stores SHA-256 hashes of prompts/responses for reproducibility without storing content. Suitable for proprietary codebases and sensitive data processing.
- Built-in reliability: retry with exponential backoff and max-attempt cap, dead-letter table for failed tasks with manual replay CLI, and cron-style recurring jobs (e.g., nightly codebase analysis) via APScheduler.
#b52d6e9visualizationFull-Stack Developer
Live DDoS Attack Map
React · Vite · Three.js (globe.gl) · Node.js · Express · WebSocket · GitHub
- Built an interactive 3D globe visualization rendering simulated DDoS attack traffic as animated arcs between country centroids — great-circle paths with custom GLSL shaders for particle flow, color-coded by attack type (volumetric, protocol, application).
- Implemented a live metrics panel at 60fps using O(1) incremental counters: exponential moving average for events/sec (alpha=0.1), bounded min-heap (size 5) for top source countries, fixed-size Uint32Array for attack-type breakdown — no full re-render per event.
- Designed a dual-mode architecture: fully static in-browser simulation (GitHub Pages ready) using seeded PRNG (mulberry32) for deterministic attack streams, plus an optional Express + WebSocket backend for real-time event streaming. Graceful fallback if WS fails.
- Optimized rendering with InstancedMesh (max 500 concurrent arcs), frustum culling via sphere bounds, and requestAnimationFrame loop decoupled from React state — globe renders independently while metrics trigger selective re-renders.
- Built the WS backend with heartbeat (ping/pong) + auto-reconnect with exponential backoff on the client, rate-limited POST /ingest endpoint for external collectors, and normalized event protocol for cross-client compatibility.
- Globe supports drag/rotate/zoom, hover tooltips showing country name + active attack count, and a time-range scrubber. Deterministic seed enables shareable visualizations via URL hash.
#d914aa2researchBackend Developer
Spyder — Zero-AI Research Agent
Python · TF-IDF (from scratch) · asyncio · DuckDuckGo/ArXiv/PubMed/Semantic Scholar/Crossref APIs · GitHub
- Built a keyless, LLM-free research pipeline that queries 5 retrieval engines in parallel via asyncio (DuckDuckGo HTML, ArXiv API, PubMed/Entrez, Semantic Scholar, Crossref), deduplicates by normalized title+author fingerprint, and produces structured cited reports — no API keys required.
- Implemented TF-IDF entirely from scratch (no sklearn): builds sparse CSR document-term matrix, computes IDF across merged corpus, scores findings by cosine similarity to query vector. Benchmarked: ~50ms for 200 docs / 5000 vocab on laptop CPU.
- Added thematic clustering via k-means on TF-IDF vectors with auto-k selection via silhouette score (range 2-8), human-readable labels from top-3 centroid terms, and contradiction detection using pairwise cosine distance > 0.7 + VADER sentiment polarity flips.
- Shipped multi-format citation export: BibTeX, APA 7th, MLA 9th, RIS, CSL-JSON, plus PDF report generation via reportlab (cover page, TOC, clustered findings, contradiction appendix). Templates customizable via user-provided Jinja2 overrides.
- Built a zero-dependency stdlib web UI: single-file http.server serving Jinja2 templates, SQLite history with FTS5 full-text search, content-hash permalinks, and embedded CSS/JS. Runs with `python -m spyder.web` — zero npm, zero build step.
- SearchProvider ABC abstraction with concrete adapters per source — each handles its own rate limits, timeout budgets, and error recovery. Graceful degradation: if one source fails, remaining sources still produce a complete report.
#c9a41f5intelFull-Stack Developer
Seltos — Bangladesh Intelligence Terminal
Node.js · Express · SSE · Three.js (globe.gl) · fastText · MinHash LSH · GitHub
- Built a Bangladesh-focused intelligence platform scraping 9 news sources (Prothom Alo, Bdnews24, The Daily Star, BBC Bangla, etc.) in parallel via worker threads every 15 minutes — zero cloud dependencies, zero telemetry, all assets self-hosted.
- Implemented Bangla language detection using fastText lite model (2MB compressed, ~2ms/article inference) + script heuristic, achieving 98% accuracy. SimHash 64-bit for near-duplicate detection across sources (threshold: 3 bits).
- Built 64-district + 490-upazila geo-tagging via gazetteer lookup with fuzzy matching (Levenshtein distance ≤ 2) and prefix trie optimization for fast resolution of Bangla place name variants.
- Designed online story clustering with MinHash LSH: 5-gram shingling, 128 permutations, 16×8 LSH bands for candidate pairing, Jaccard verification. Cluster scoring: importance = log(1 + source_count) × recency_decay; hotness = velocity × source_diversity. 72h TTL with SQLite WAL + FTS5 persistence.
- Shipped a Jarvis-style dashboard: WebGL globe (Three.js + globe.gl) with Bangladesh district choropleth heatmap, inter-district co-mention arcs, live SSE feed with EventSource auto-reconnect, and cluster cards with drill-down. Vanilla ES modules — no React overhead.
- Added a pluggable LLM summary layer: SummaryProvider ABC supporting Ollama (local), OpenAI, Anthropic, and Gemini. On-demand summaries cached per cluster with cost/token logged locally. Docker Compose deployment with nginx TLS termination and SSE proxy buffering.
#f21c7b6forkContributor
Kotatsu-0 — Android Manga Reader (Fork)
Kotlin · Android · Jsoup · OkHttp · GitHub Actions · GitHub
- Contributed to a fork of Kotatsu, an open-source Android manga reader with 1200+ online content sources via a modular extractor plugin system — each source is a Kotlin class implementing a common MangaSource interface.
- Restored 12+ broken source scrapers across 6 PRs: MangaDex (API v3 migration with OAuth2 bearer token flow), MangaKakalot (DOM restructure + Cloudflare Turnstile bypass), MangaFox (redirect chain handling), KissManga (shutdown → mirror mapping), ComicWalker (GraphQL API + signed image URLs).
- Each fix includes regression test HTML snapshots and version-bumped source manifest. CI runs a nightly validator against live endpoints — failure modes: HTTP error, empty selector, JSON schema mismatch, rate-limit hit. Slack webhook notification on regression with auto-created GitHub issue.
- Implemented Cloudflare bypass patterns: cookie jar persistence, User-Agent pool rotation, and request pacing. MangaDex migration required adapting to cursor-based pagination and rate-limit header parsing (X-RateLimit-Remaining) for polite backoff.
- Wrote SOURCE_AUTHORING.md documentation and NewSourceTemplate.kt boilerplate — interface contract, selector best practices (prefer semantic over positional), test snapshot workflow, and minimal diff review process. Merged after CI passes (ktlint + detekt + source validator).