I build software around messy workflows: state, tools, decisions, and the humans who still need control.
Per-session write locks prevent race conditions across concurrent users. A secondary LLM call handles context compaction when conversation history grows long. The model never touches raw SQL; 9 typed tool functions wrap all queries, eliminating prompt injection entirely.
Students juggle five Canvas pages to figure out what's due. The LMS has the data but won't surface it usefully. I built a multi-step tool-calling agent with 9 typed tools, parameterized SQL, and persistent memory via pgvector.
The model never generates SQL directly; each tool wraps a parameterized function, which eliminates prompt injection entirely.
Job applications turn into scattered state fast: roles, notes, materials, contacts, follow-ups, and decisions. I built a local-first cockpit where Hermes works through structured tools and SQLite state instead of loose chat history.
View on GitHub →The app records jobs, profile facts, proof points, tailoring requirements, materials, approval gates, contacts, and follow-ups. The public repo stays clean while private runtime state, generated PDFs, and local config stay out of git.
Config conflicts across a distributed broker architecture cost engineering teams hours. I built a production platform in C#/.NET and Azure centralizing service settings across messaging, event handling, and dispatch.
Auth proxy using Azure Workload Identity Federation for role-based access. REST APIs integrating with TMW Suite. Built and shipped to production, not a prototype.
Proposals took 2 days through a manual approval pipeline. I built a React/TypeScript frontend with serverless Azure Functions, integrated with SharePoint. Real-time dashboards for budget and team tracking.
I built a touch-first Flask + PostgreSQL system with barcode scanning, designed for someone holding a box with one hand. Serves 6 pantries, 40,000 people annually. Featured on News 12 NJ.
Movie recommendations ignore how you're feeling. On-device facial emotion detection mapped to genre preferences via hybrid scoring. 69 tests covering auth, SQL injection, and recommendation accuracy.
View on GitHub →When someone asks for "a happy movie about war," intent and content semantics disagree. Most systems optimize one signal. This work asks whether you can separate topical match from affective fit and resolve the conflict explicitly.
How: KRAG on MovieLens 25M: a heterogeneous knowledge graph with User, Movie, and Emotion nodes and weighted EVOKES edges. A Graph Transformer encoder is aligned to Sentence-BERT so graph and text scores fuse coherently; ranking uses semantic + graph relevance minus a tunable affective displacement penalty.
What we found: Dissonance (topic vs. emotion conflict) is the hard case, and where evidence concentrates: larger gains vs. baselines there than under agreement, including a large paired effect on affective displacement when the penalty is on (dz = −1.51). Edge-removal tests show emotion edges are causally necessary; necessity is ~2.3× higher under dissonance than agreement, so the graph matters most when signals clash.
Best Student Research at Ramapo TAS 2026. Presented at DMC Fair and Scholar’s Day too.
I grew up speaking three languages and moving between worlds. That shapes how I see problems: I'm always translating, always aware there's more than one way to frame something.
I came to computer science because software is one of the few tools that actually scales. At Ramapo I studied CS and Data Science, managed 17 resident assistants and a residential community of 200+ students, co-founded the CS club, led Math Club, and competed in ICPC.
My internships at Trimble and Novartis were about the same thing at different scales: taking something slow, manual, or fragile and replacing it with something that works. My research is the harder version: what happens when the system doesn't even know what you're asking for?
I care about software that is honest about what it does, fast, and designed for the person using it. Looking for full-time SWE / Data Engineer / AI Engineer roles.
Building Hermes JobApps while continuing data systems work around inventory, reporting, and reconciliation. Also cleaning up the public profile after graduation.
ARAG: finishing the research thread on ambiguous user intent and recommendation behavior. The useful part for me is the design problem: how to make systems handle messy human asks without pretending they are clean.
Agent workflows, data reconciliation patterns, and how failures propagate through systems. Photography. Trying to master vibe coding.
Full-time SWE / Data Engineer / AI Engineer roles. Recently graduated in May 2026.
Conversations. If you're working on messy workflows, data systems, or AI products and want to talk through it, reach out.