Six projects. Every repo below is public, and the line counts and test counts are what's actually in them.
Personal project · Graph systems27k lines · 381 tests · MIT
Blast Radius
Works out which packages an npm compromise actually reaches.
The awkward part is that a reverse-dependency closure runs about five hops deep over tens of millions of versioned nodes, and similarity search can't answer that at all. So the graph gets stored twice: a collapsed Package→Package layer that keeps traversal flat as depth grows, and a version-precise Release→Package layer underneath for the forensic questions.
Three operations cover the workflow: traversal, semver resolution, OSV correlation
Vulnerability lookups hit osv.dev live, so there's no crawl coverage to maintain
381 passing tests, plus deployed monitoring and an API with signed webhooks
Built solo over a hackathon weekend for Hack Hydra
Personal project · Agent safety347 tests · zero write-tools
Airlock
A change-control console that proves a production change before anyone approves it.
Every proposal runs against a shadow copy of the database first. Checksums get verified, rollback is prepared, and approval stays blocked until the proof passes. Agents never hold a tool that can write to production.
347 documented passing tests
Zero production-write tools exposed to agents
Policy gates and tamper-evident ledgers on every proposal
CodeQL runs in CI, and there's an MCP tool layer for agent integration
Pulls six civic sources into one place for Fremont residents: records, news, incidents, places, community posts, and issue voting. Retrieval is source-grounded and citations get verified, so every answer points back at the record it came from and you can go check it yourself.
Exact-match caches almost never hit on LLM traffic, because nobody phrases a prompt the same way twice. This one embeds each output and serves it once cosine similarity clears a threshold, with SHA-256 identity alongside it. Only key hashes get stored. JS and Python SDKs, and the threat model is in the repo.
A desktop assistant that watches what you're working on and suggests the next action before you ask for it. Memory sits in five tiers rather than one vector DB: RAM, SQLite, patterns, vector, long-term. Native desktop control, an MCP tool layer, streaming voice, and connectors for Gmail, Slack, Notion, and GitHub. The MVP took three weeks and got us into Founder Institute Silicon Valley and the NVIDIA Inception Program.
A financial terminal with fifteen views, options priced with Black-Scholes, and tax lots tracked one at a time instead of by average basis. Average cost basis quietly breaks harvesting advice, which is the whole reason for the extra bookkeeping. Market data is simulated on purpose, so it runs with no API key and the live feed swaps at one function.
Research, an externship, one company, and the IT jobs I had before any of it.
In progress
Extern Wayfair · n8n AI Agent Engineering Externship
Building AI agent workflows in n8n against a real Wayfair brief, as part of a cohort programme.
n8nAI agentsWorkflow design
Ongoing
Undergraduate Researcher AWS Trainium & Neuron Research
Writing the neural-network code in C++ and training CNNs in Python, for an image model that predicts outcomes from user inputs. My work covers model design, experiments, training runs, and evaluation.
Alongside that I'm looking at how AWS Trainium and Neuron handle the training workloads.
C++PythonCNNsTrainium / Neuron
Founder
Founder & Product Lead Vivedly Labs Inc.
Built the MVP of an AI desktop coworker in three weeks. It got us into Founder Institute Silicon Valley and the NVIDIA Inception Program.
ProductElectronAgent systems
Internship
Software Engineer Intern The Clarion
Kept the student newspaper's systems running: troubleshooting, access control, and the web infrastructure behind publishing.
Earlier
IT Assistant Dominion Academy of Dayton
Day-to-day IT for the school: devices, operating systems, the network, and security.
San Francisco Bay University
B.S. Computer Science · Present
Data structures and algorithms, systems design, software engineering, AI infrastructure, and security.
4.0GPA
How I work
Four habits, and what each one looks like in the repos above.
One
No mocked data
Every number on screen came back from a query that actually ran, empty states included. A demo that lies is worse than no demo.
Two
A number next to the claim
Each panel in Blast Radius shows the latency of the query that filled it, so "fast" isn't something you have to take my word for.
Three
Secrets are a design problem
That .gitignore uses a glob on purpose. The explicit list had already missed .env.production once, which is the exact thing the glob prevents.
Four
Commits explain the change
Not the diff. Answer the lockfile question from the lockfile. You can read the history and follow what happened.
Skills
What I reach for, and what I've actually shipped with.
Languages
C++PythonTypeScriptJavaScriptSQLOpenCypher
C++ is where the research work lives, so it's the one I'm in most days.