sola chat
A school psychologist's time splits in two: work that needs clinical judgment, and scripted work, including intake questionnaires and standardized behavioral assessments, that follows a fixed protocol. In schools with th…
A school psychologist's time splits in two: work that needs clinical judgment, and scripted work, including intake questionnaires and standardized behavioral assessments, that follows a fixed protocol. In schools with thin psychiatric staffing, the scripted half eats the schedule. sola chat is an AI agent that takes the scripted half, so clinician hours go where judgment is required. I co-founded the product and owned design and implementation end to end. It reached dozens of schools and thousands of students.
The agent can't freestyle in this domain. I built a knowledge-guided reasoning layer with LangChain and ChromaDB that retrieves domain-specific expertise, keeping responses anchored to clinician-style protocols rather than whatever the model improvises.
The workload is almost entirely I/O-bound, dominated by waiting on LLM and ML APIs, so the concurrency model is Redis + Celery with ThreadPool workers. Threads over processes was a deliberate choice: for I/O-bound tasks, threads deliver the concurrency without the memory overhead.
The defining constraint was deadline pressure. One feature, an agentic pipeline with async document processing and a cause-and-effect dashboard for psychiatrists, shipped in three days. The dashboard requirement arrived vague, so I scoped it myself: show which events (parent meetings, teacher actions, clinician notes) preceded changes in a student's assessment scores. The async queue design was past what I could confidently build in time, so I brought in a senior engineer for one focused session, then executed the design myself. Knowing when to buy expertise instead of grinding was the tradeoff that kept the deadline.
Running it in production meant the other half of the job: monitoring uptime and error rates, negotiating AWS rate limit increases as traffic grew, adding Redis caching, and configuring autoscaling.