Product engineering 2024
Legal One
A consultation platform that needs to keep private conversations separate while supporting different account permissions.
- My role
- Backend lead on a two-person team: data model, GraphQL API, authorization, and real-time messaging.
- Outcome
- A deployed workflow for finding a lawyer and exchanging consultation messages.
- Context
- Validated with 50+ lawyer profiles and 100+ client accounts in a seeded demo environment.

Problem
Connect clients with lawyers while giving administrators the tools to manage the platform. Each role needs different permissions, and private consultation messages must stay within the intended conversation.
My contribution
I led the backend on a two-person team. My work covered the Prisma data model, GraphQL schema and resolvers, authentication, role-based authorization, and real-time messaging. I also worked on frontend integration and deployment.
Technical decisions
Socket.IO conversations are isolated per session and encrypted in transit. Role-based checks distinguish client, lawyer, and administrator actions; administrative access does not include reading private consultation messages.
Prisma connects the MongoDB data model to an Apollo GraphQL API. Resolvers request the fields needed by each view, limiting the data returned for lawyer search and consultation history.
Results
The platform is deployed, with the consultation flow validated against a demo environment seeded with 50+ lawyer profiles and 100+ client accounts. Those counts describe test data, not active customers or production adoption.
More projects
- Local RAG App: Applied AI
- SW Habitation: Web development
- Drug Repurposing: Data & machine learning