# Projects

Independent projects first, with source linked as it is published. Work at Zoho Payments is described at the level I can share in public.

- **sheet**: 3 / 6
- **records**: 8

## Independent

### [Alfred](https://0xshriram.dev/projects/alfred.md) (complete)

An orchestrator for AI coding-agent sessions: Claude Code, OpenCode and Codex, driven through custom MCP servers and tool adapters.

- **stack**: Python, MCP, Git, tmux
- **source**: Being prepared for release
- **more**: [Case note](https://0xshriram.dev/projects/alfred.md)

### [Guardian](https://0xshriram.dev/projects/guardian.md) (in progress)

A guardrail middleware between a running agent and the services a business runs on (social, mail, payments, GitHub, Vercel), with task classification, approval flows and Telegram notifications.

- **stack**: Python, FastAPI, PostgreSQL, Redis, Docker
- **source**: Being prepared for release
- **more**: [Case note](https://0xshriram.dev/projects/guardian.md)

### Verification Orchestration Service (in progress)

A multi-tenant identity verification platform, with PAN verification as the walking skeleton.

- **stack**: Java, Spring Boot, PostgreSQL, Redis, Docker Compose
- **design**: Mutable state tables kept apart from append-only logs (attempts, HTTP calls, modifications, manual review); `org_id` on every row; optimistic locking for edits that race an in-flight provider call; pluggable provider adapters

## At work

1. [Failover routing across providers](https://0xshriram.dev/projects/failover-router.md) (production) — A generic router that picks the provider for each request with round-robin, weighted and circuit-breaker strategies, and stops sending traffic to one that is failing. Automatic failover and cost-aware routing.
2. One engine, many products (production) — Decoupled an engine built for payments so a lending product could use it. Request types, statuses and field-visibility rules moved into the database, and the new vertical onboarded with zero core rewrites.
3. [A ten-table join, from minutes to seconds](https://0xshriram.dev/blog/grouped-queries.md) (production) — A join producing Cartesian row counts, restructured into grouped queries merged in memory. Review API latency went from minutes to seconds, and 46 redundant database calls came out of each job run.
4. Runtime configuration over Kafka (in progress) — Static JSON configuration replaced by database-driven updates that reach every instance at runtime, with thread-safe in-memory caching and consumer groups that survive restarts.

## Earlier

1. CRM web application (college) — Contacts, deal pipeline and tasks. Django and SQLite.

---
Canonical: https://0xshriram.dev/projects.html
