This project combined product usability with production concerns. The goal was not only to make an LLM chat interface work, but to make it secure, stateful, and useful for real internal knowledge tasks.
I worked across the stack, shaping backend APIs, data persistence, and the web experience so the system could handle authenticated users, uploaded files, and retrieval-backed conversations in one coherent flow.