Practical engineering. Learned by building.
JARS DEMO is an independent collection of open-source workshops, developer tools, and hands-on engineering labs.
Explore modern technologies through working implementations, guided experiments, and practical demonstrations. Every project is designed to help developers go beyond documentation and understand how things work in practice.
Hands-on explorations of open-source technologies, with practical examples and reproducible setups.
| Project | What you'll explore |
|---|---|
| Local AI Demo | Full-stack AI assistant with Next.js, FastAPI, PostgreSQL, and Ollama fully offline, zero external APIs |
| OTEL Demo | Distributed tracing, observability, and incident investigation with OpenTelemetry |
| gRPC Demo | HTTP, HTTPS, TLS, HTTP/2, and gRPC — build a real service, secure it with TLS and mutual TLS, and debug real certificate failures |
| PyArmor Demo | Python application protection, Docker deployment, and the real security boundary of obfuscated code |
| DataHub Demo | Metadata management, data discovery, and the context platform for data and AI stacks |
| FalkorDB Demo | Graph databases and graph-powered applications |
| Cognee Demo | AI memory, knowledge graphs, and retrieval workflows |
| MCP vs API Demo | MCP and traditional API integration patterns, side by side |
| Companion Kit | Playful, accessible website companions: a copy-in React kit, six ready characters and a ten-chapter workshop to draw your own. Live at companion.jishanahmed.in |
| FastAPI Workshop | Build Shelf, a production-shaped reading-list API, in twelve short chapters: validation, SQLAlchemy, auth, tests, logs and Docker. Site at fastapi.jishanahmed.in |
| TypeScript Workshop | Build Streak, a typed habit tracker and CLI, in ten short chapters: unions, generics, safe parsing, errors as values and tests. Site at typescript.jishanahmed.in |
| GitHub Actions: CI/CD from zero | Take a small app from no automation to tested, released, containerised and deployed on every push, in twelve chapters with real, running workflows. Site at githubactions.jishanahmed.in |
| Evals, not vibes | A short AI engineering workshop: build a tiny eval harness in plain Python and compare prompts and models with numbers instead of opinions. Site at evals.jishanahmed.in |
| Build Your Own MCP | Build Jotter, a real MCP server in TypeScript, in eleven short chapters: tools, resources, prompts, validation, in-memory tests, stdio and Streamable HTTP, and connecting to Claude Code, Cursor and VS Code. Site at buildyourmcp.jishanahmed.in |
| Rate limits from scratch | Build fixed window, sliding log and token bucket limiters in plain Python, put them in front of a real HTTP server, and write a client that backs off politely. Site at ratelimit.jishanahmed.in |
| Make the slow query fast | Read query plans, choose the right index, fix N+1 queries, page without OFFSET and guard plans in CI, on a 200,000 order SQLite shop. Site at slowquery.jishanahmed.in |
| Enterprise auth, hands on | Run an OIDC single sign-on flow with PKCE, verify ID tokens, read SAML, map roles to permissions, find a cross-tenant leak and stop it with Postgres row-level security. Site at enterpriseauth.jishanahmed.in |
| Ship it to the island | Deploy an app into a network with no internet: catch the calls it makes home, pack a sealed reproducible crate, beat the pirates, carry its wheels, run it in a container with no network and roll it back. Site at airgap.jishanahmed.in |
| Pull the plug | Build a key-value database from scratch, then crash it at every byte: an append-only log, an index, checksums, fsync, group commit and compaction. Site at database.jishanahmed.in |
| Git good | Learn git by fixing real repositories with HEAD the cat: twelve quests from your first commit to merge conflicts, rebase, bisect, the reflog and working with AI agents. Site at git.jishanahmed.in |
| Debug like a detective | Eight real bugs in a tiny bakery app, solved with tracebacks, failing tests, logging, pdb, divide and conquer, profiling and written-down assumptions. Site at debugging.jishanahmed.in |
| Concurrency, from first principles | Eight real concurrency bugs in one busy kitchen: threads and the GIL, race conditions, lock scope, deadlock, queues, the event loop, semaphores, timeouts and cancellation. Site at concurrency.jishanahmed.in |
| Caching, from first principles | Eight real caching bugs in one small bookshop: cache keys, invalidation, private answers, TTLs, stampedes, eviction policies, negative caching and HTTP ETags. Site at caching.jishanahmed.in |
| Docker, from first container to production | Twelve exercises on real Docker, from what a container is to releases pinned by digest: the build cache, secrets, networking, volumes, Compose, multi-stage builds, signals, health checks and cgroup limits. Site at docker.jishanahmed.in |
| Once, in order, on time | Ten real bugs in a notification service: the transactional outbox, idempotency keys, permanent failures, backoff and jitter, ordering, consent, quiet hours, digests, priority lanes and signed webhooks. Site at notifications.jishanahmed.in |
| How systems talk | Stage 1 of a hands-on security series: eight local lab cases on DNS, HTTP framing, TLS, cookies, sessions, security headers and access logs, each with a fix and a check. Site at howsystemstalk.jishanahmed.in |
| Every row, exactly once | Eight real pagination bugs in one small record shop: offsets, limits, a stable order, keyset cursors, ties, opaque cursors, knowing when to stop and syncing changes. Site at pagination.jishanahmed.in |
Reusable engineering tools designed to extend beyond a single workshop.
- Receipts - Voice-first receipts for AI coding agents. Say what you want, send the receipt to Claude Code, Codex or Cursor, then check the work against what you said, with the exact lines as proof. Live at wispr.jishanahmed.in, built for No Hands: The Wispr Challenge.
- MailingKit - A provider-agnostic Python email layer with a consistent typed API for SMTP, Resend, or your own provider — with templates, retries, and idempotency.
Focused, reusable instructions and workflows for AI-assisted development.
- JARS Skills - 37+ practical agent skills and engineering playbooks for Claude Code, Cursor, Copilot, Codex, and more.
- Learn by doing. Working code over theory alone.
- Reproducible by design. Clear setup instructions and verifiable results.
- Understand the trade-offs. Explore limitations, failure modes, and implementation choices.
- Independent by default. Each project maintains its own scope, dependencies, and lifecycle.
- Open to collaboration. Contributions, feedback, and thoughtful experimentation are welcome.
Choose a project, follow its setup instructions, experiment with the implementation, and explore the underlying technology.
Found an issue or have an idea? Open an issue or contribute directly to the relevant repository.
JARS DEMO - Created and Maintained by Jishanahmed AR Shaikh (JARS)