PoolRM is an internal firm-initiative platform that matches open project staffing needs to consultant availability and skills. The process it replaces was manual and slow: leads hunting for who was free, who had the right skills, and which projects needed staffing, across spreadsheets and conversations. PoolRM turns that into a system. Roughly 300 people use it each week.
I'm the lead senior engineer. A principal engineer owns the business requirements, senior designers build the frontend AI-assisted, and I lead the backend and the AI-development workflow that keeps the whole team moving.
Built AI-first, from day one
PoolRM was built with Claude Code from the first commit. That's not a footnote, it changes how the team works. Designers who aren't career backend engineers are shipping real frontend code AI-assisted, and my job is to smooth the rough edges: git workflow, code review, and the guardrails that keep AI-generated code consistent and correct across a team.
The piece I'm proudest of is a cross-compatible context system for Claude Code and GitHub Copilot in a single codebase. The problem it solves: AI coding quality drifts when every developer has a different setup, and it drifts again between sessions and between tools. The context system gives everyone a uniform experience regardless of which machine they're on, which session they're in, or whether they reach for Claude Code or Copilot. The AI has the same project understanding every time, so its output quality stays high and consistent instead of degrading at the edges.
On top of that I introduced PRD-driven development, taking influence from BMAD while implementing my own approach to fit how this team actually works. Requirements become structured documents the AI and the engineers both work from, so the gap between "what was asked for" and "what got built" stays small.
The backend
I designed and built the backend: a NestJS API on AWS Fargate, sitting behind an Application Load Balancer, talking to an RDS PostgreSQL database. The whole stack is provisioned with AWS CDK (ECR for the container images, S3 and CloudFront for static delivery), so the infrastructure is code and reproducible.
The application layer uses Prisma for type-safe database access, Zod for validation at the boundaries, and TanStack Query on the client, all in an npm-workspaces monorepo so shared types flow cleanly between the API and the frontend. TypeScript end to end, tested with Jest and Vitest plus React Testing Library.
The outcome
PoolRM makes staffing legible. Leads can see what needs staffing and who fits, instead of reconstructing it by hand. It also improved data integrity in how charge codes map to projects, cleaning up a source of error in the old workflow. It's in weekly use across the practice.