The interesting problems live in the systems around the model.
I build production LLM applications and the backends they run on. Right now that's coaching AI at NovumAI.
About
I'm a software engineer working on AI/LLM systems and the backends that run them. Did my MS in Computer Science at NYU, with about two years of internships and full-time work mixed in. Right now I'm the primary AI/ML engineer at NovumAI, where the AI work sits on top of a real backend — Salesforce integration, OAuth, the parts of the system that have to exist for the AI parts to ship.
I'm drawn to problems where building something well requires going deep across the stack — data, modeling, evaluation, deployment, and the unglamorous ops in between. The systems I'm proudest of started from a specific frustration with how things were being done, and exist because I wanted to see if a better version was possible.
What I build with
AI / LLM Engineering
- Bedrock
- SageMaker
- Hugging Face
- PEFT
- QLoRA
- SFT
- DPO
- Pinecone
- Gemini
- RAG
- ReAct agents
- LLM-as-Judge
- Prompt Engineering
- PyTorch
Backend & APIs
- Python
- TypeScript
- SQL
- FastAPI
- Node.js
- WebSockets
- OAuth 2.0
Cloud & Infrastructure
- AWS Lambda
- API Gateway
- SQS FIFO
- KMS
- S3
- CloudFormation
Data
- PostgreSQL
- Redis
- DynamoDB single-table design
DevOps & Observability
- Docker
- GitHub Actions
- CloudWatch
Selected Work
View All Projects →
Software Engineer · Nov 2025 – Present
NovumAI — Coaching AI for Sales Teams
NovumAI is the first AI system I've shipped that has to feel instant — coaching suggestions that fire while a sales agent is on a live call. It's also the kind of work I picked on purpose: small team, primary AI engineer, end to end. The hard part of real-time coaching isn't the model. It's knowing when the model is actually right.
- AWS Bedrock
- SageMaker
- Llama
- DynamoDB
- Redis
- LLM Evals
- PyTorch
Visit Site →

Claude Code marketplace plugin
Claude Professor
Claude Professor is a Claude Code plugin I built because I was the user it was for. I'd been using AI to write production code and catching myself writing things I didn't fully understand. The plugin is structural: it gates design sessions behind concept teaching using a state machine where the wrong path isn't possible, not just discouraged. The point is to leave the session understanding what you wrote, not just having written something.
- Node.js
- FSRS-5
- Claude API
View on GitHub →

Multi-tenant Slack volunteer onboarding bot
Sherpa
Sherpa started as an internal Slack bot I built at Changing The Present to onboard new interns. After it worked there, I generalized it into a distributable platform any nonprofit can install — multi-tenant, OAuth, per-workspace cost protection. It's a side project, not a startup, but production-grade engineering doesn't require production-grade scale to be worth doing. Most of what I learned about platform work came from building something usable that nobody is using.
- Gemini
- Pinecone
- RAG
- Slack API
- DynamoDB
View on GitHub →