Career Change · Rust AI Backend

Shamsher Singh

Java and Guidewire · Axum · OpenAI streaming · persistent documents

“The project gave my Java background a real Rust architecture to explain and defend.”

Shamsher brought enterprise software experience from Java and Guidewire. The engagement focused that background into Crust AI, a Rust chat platform with authentication, persistent documents, OpenAI streaming, and a backend architecture that can be discussed line by line.

The goal was not to hide behind an AI API call. It was to build the boundaries around that call: who can access chat, how replies stream, where documents live, and which constraints keep the system predictable.

Java
Enterprise software background
Axum
Rust backend and auth foundation
SSE
OpenAI response streaming
Postgres
Persistent documents, users, and chats
Foundations

Enterprise experience, reframed as Rust backend ownership

Shamsher came in with Java and Guidewire experience. We used that domain depth as an advantage, then moved the proof into an Axum application with explicit users, sessions, routes, and protected boundaries.

  • ✓Axum backend with a clear route and domain boundary
  • ✓User and session flow designed as application behavior, not a tutorial stub
  • ✓Rust ownership and async concepts attached to a system he could explain
Security boundary

The chat starts behind an auth gate

User

email + password

JWT cookie

session boundary

Protected chat

user-owned data

Postgres

users, sessions, chats

Reply limiter

30 replies / hour / user

server-side checksowned chatspaid API protected
Deep dive

Streaming AI replies without hiding the hard parts

The interesting system behavior sits between a user prompt and a streamed assistant reply. The backend owns the OpenAI call, forwards deltas through SSE, and keeps the response bounded and observable.

  • ✓Prompt enters through an authenticated chat boundary
  • ✓OpenAI output becomes a controlled stream of delta events
  • ✓Partial replies can be stopped without losing the system state
Async delivery

The reply arrives as a live stream

Prompt

persisted user message

OpenAI

token stream

SSE

delta events

Stop without losing streamed text

The frontend can abort the stream, persist the partial assistant reply, retry a failed send, and keep chat history consistent.

Proof

Documents and chat context make the project feel real

Crust AI is more than a streaming demo. Persistent documents, recent messages, upload limits, and explicit document lifecycle create a system with real product constraints to reason about.

  • ✓Documents stored and attached to future chat context
  • ✓Bounded input surface with explicit upload limits
  • ✓Remove and attach behavior modeled as deliberate domain actions
Document context

Files become chat context before the request

Drop file

text or image

Postgres

draft document

Chat context

recent docs + messages

Bounded input

5 MB upload limit

Remove or attach

explicit document lifecycle

drag and droptyped DTOscontext assembled server-side

The journey

One clear path through the build

Drag to explore · Select a milestone to read the full story

Mentor perspective

Shamsher did not need another generic CRUD tutorial. He needed a project where authentication, streaming, persistence, and product boundaries forced the Rust concepts to become decisions. Crust AI gave him that system to build and defend.

Max Wells

Want a Rust AI backend story like Shamsher's?

Max WellsAvailable for calls

Max Wells

Founder · Rustify

Book your Rust career diagnostic

30 minutes, 1:1 with Max. An honest read on where you are and whether Bootcamp or Mentorship fits, before you apply.

Only a few diagnostic slots left this week.

Applications are reviewed carefully.

← Back to case studies

More client journeys

See another path into Rust

Ready to Land a $80k+ Rust Job in the US or Europe?