Ubaidullah
  • Work
  • About
  • Now
  • Playground
  • Contact
CV
Let's build something that actually ships.

I take on a small number of product engineering engagements at a time. If you're building something AI-shaped and need someone who can own end-to-end, that's where I'm useful.

Start a conversation
Sitemap
  • Work
  • About
  • Now
  • Playground
  • Contact
Elsewhere
  • GitHub
  • LinkedIn
  • Instagram
  • Email
© 2026 Ubaidullah. Built in Pakistan.
Next.js · React 19 · Tailwind v4 · Vercel
Playground

Try to break my AI.

My whole thesis is that AI products are defined by their failure cases. So here's a live simulation of the resilience patterns I ship — and a chaos console to attack them with. Kill a provider mid-stream. Trigger a rate limit. Throttle the network. Watch the answer survive.

Exhibit 01 — The Failure Lab

A stream that refuses to die.

Everything below runs in your browser — a deterministic simulation of a production LLM pipeline, no API keys involved. The interesting part isn't the model; it's the state machine wrapped around it.

Resilient AI surface
what the end user sees
idle

Pick a question below. While the answer streams, use the chaos console to kill the provider serving it — then watch the stream fail over and resume mid-sentence.

Chaos console
what the engineer planned for
OpenAI
gpt-5.2
healthy
Anthropic
claude-sonnet-5
healthy
Google
gemini-3-flash
healthy
—
TTFT
—
tok/s
—
tokens
0
failovers
Event logthe state machine, thinking out loud
Checkpointed streams

Every token is committed as it arrives, so a failover resumes mid-sentence instead of restarting the answer.

Provider fallback chains

OpenAI → Anthropic → Google, with backoff between attempts. One vendor's bad day never becomes the user's.

Latency budgets

TTFT and throughput are measured live. When the budget blows, that's a signal — not a mystery.

Honest degradation

When everything is down, serve the cache and say so. A labeled stale answer beats an infinite spinner.

These aren't demo tricks — they're the patterns keeping Tututor.ai responsive for 17,000+ students and teachers while the AI behind it has a bad day.

Exhibit 02 — Where this runs in production

The system these patterns live in.

Tututor's real architecture, live. Play a scenario to watch a single request travel the system hop by hop — the AI path and the CRUD path never touch, which is the whole reason a slow model can't slow down the rest of the product. Drag any service to rearrange it.

Trace a request

Pick a scenario to watch it travel the system — or hover a service to see what it does.

ClientServiceAIDataExternal
Read the full Tututor case study