PROBLEM
Many clients, multiple rooms, shared state and connections that can disappear at any time. Real-time communication requires concurrency, presence and connection lifecycle to be handled as part of the system design.
APPROACH
Built a multi-room chat server in Go using goroutines and channels for client communication, mutex-protected room state, structured JSON messaging, presence and typing indicators, ping/pong keepalive and graceful shutdown. The React and TypeScript client consumes the server through WebSockets.
AI ASSISTANT
Integrated the NVIDIA NIM API with the Nemotron 3 Ultra 550B A55B model, allowing users to interact with an AI assistant directly from the chat using /ai commands.
ARCHITECTURE
React and TypeScript connect to the Go server through WebSockets. The backend separates connection handling, client read/write loops, room membership and broadcasting, and AI integration. Shared room state is protected with mutexes, while channels carry messages between connected clients.
DEMONSTRATES
Go concurrency, real-time systems, WebSocket lifecycle management, external API integration and testable backend design.