Projects
Personal & Open-Source Work
Salesforce Development Skills for Claude Code
Three MCP skills that enable Claude Code to architect and deploy production-grade Salesforce solutions—Apex, Lightning Web Components, Experience Cloud sites, and Flows—from a single prompt.
What It Does
Each skill bundles structured reference knowledge—distilled from official Salesforce documentation, PDFs, and real-world project patterns—into a format Claude can consume at prompt time. The result: Claude produces code that respects governor limits, uses correct sharing models, follows deployment ordering, and handles the platform-specific edge cases that typically require senior-level experience.
The Experience Cloud skill one-shotted a complete LWR site with a custom Lightning theme configurable via Experience Builder, guest user access patterns, and proper deployment metadata—all in a single execution.
The Three Skills
- sf-apex-skill — Apex classes, triggers, Visualforce PDF generation, email automation, invocable methods, and solution architecture patterns. 44 reference docs covering governor limits, bulkification, and testing strategies.
- lwc-ec-skill — Lightning Web Components for Experience Cloud (LWR sites). Theme layouts, guest user security, CSS architecture, Custom Property Editors, and deployment ordering. Includes digital experience bundle templates.
- sf-flow-automation-skill — Record-Triggered Flows, Screen Flows, Scheduled Flows, Approval Processes, and Platform Event Flows. Before-save vs. after-save decision matrices, bulkification anti-patterns, and order of execution.
Research-to-Distillation Pipeline
- Web search and triage of Salesforce sources, scoring by relevance (official docs, deployment patterns, real-world pitfalls)
- Full-page content extraction and transformation into instruction-oriented reference format: rules, code examples, failure modes, and cross-references
- Gap-filling phase with parallel AI research agents targeting identified knowledge holes (PDFs, release notes, GitHub issues)
- All knowledge bundled locally—no external API calls during development. Exposed as tools via an MCP server with BM25 search.
Evolutionary Test-Suite-Driven Drug Discovery Pipeline
A computational framework that applies test-driven development to molecular design—defining drug candidates as test specifications, generating molecules to pass them, and optimizing across multiple pharmacological objectives using game theory.
The Idea
Most drug design optimizes a single objective. This pipeline reframes the problem as multi-objective optimization under strategic constraints: a drug is not a key fitting a lock—it’s a player in a multi-agent game against dozens of off-targets, metabolic pathways, and efflux pumps. Candidates are filtered through a cost-ordered elimination funnel that kills bad molecules cheaply (milliseconds) before spending CPU time on expensive docking simulations.
Architecture
- Tier 0 — Near-free filtering (milliseconds): chemical validity, Lipinski Rule of 5, Veber rules, PAINS detection, synthetic accessibility scoring via RDKit. Eliminates ~70–80% of candidates at near-zero cost.
- Tier 1 — Primary target docking (seconds): AutoDock Vina binding affinity against the target receptor, ADMET prediction, and mechanism-of-action classification from binding poses.
- Tier 2 — Off-target selectivity panel (minutes): docking against 50–100 critical off-target proteins (muscarinic M3, hERG, Nav1.5, SERT, etc.) to build a full selectivity profile matrix.
Key Results
- Validated the pipeline using diphenhydramine (dirty) vs. cetirizine (clean) as controls—correctly discriminating selectivity profiles across the off-target panel
- Generated 1,200+ novel scaffolds across antihistamines, opioids (G-protein biased agonism), NMDA antagonists, antibiotics, and anxiolytics
- Discovered carbazole-ketamine hybrids achieving −12.26 kcal/mol vs. ketamine’s −7.35 at the NMDA receptor with 2–3x better off-target selectivity
- Multi-objective welfare scoring across 5 therapeutic profiles (analgesic, antidepressant, anxiolytic, antibiotic, humanitarian) with Pareto frontier optimization
Stack
- Python, RDKit, AutoDock Vina, Meeko, Open Babel, NumPy/SciPy/Pandas, pytest
- Claude API for LLM-based SMILES generation; game theory framework for multi-objective scoring
- Runs entirely on an M3 Pro MacBook (CPU-only, no GPU required)
CPS Selective Enrollment Admissions Simulation
A Monte Carlo simulation modeling 22,000 students across all 11 Chicago selective enrollment high schools, built to help families from underserved communities understand their true competitive position.
The Problem
Chicago’s selective enrollment admissions process ranks students by composite score across four demographic tiers, but families have no way to estimate where they actually stand. Published cutoff scores are available, but the underlying population distributions are hidden—making it impossible to assess competitiveness without statistical recovery of those parameters.
The Approach
- Applied Maximum Likelihood Estimation to recover hidden population parameters (mean, variance) from published admissions cutoff data and acceptance counts
- Built a full Monte Carlo simulation in Python (NumPy, Pandas, Matplotlib) that models the entire admissions pipeline: score generation, tier assignment, rank-ordering, and seat allocation
- Validated the simulation against known historical outcomes to ensure statistical fidelity
- Published analytical essay “On the Weight of a Number” exploring equity, statistical methodology, and the human impact of admissions algorithms
Original Math & CS Curriculum for Middle School Students
University-level mathematics and computer science concepts adapted for 8th graders through scaffolded, design-based lesson plans that treat young students as serious thinkers.
Approach
Each lesson uses cross-linguistic transfer and concrete-to-abstract progression. Students start with something familiar and re-express it in a more constrained formal system, preserving behavior while changing representation. The curriculum builds representational fluency—the ability to see the same structure through different lenses—as a unifying skill across mathematics and programming.
Sample Lesson: Grade Calculator—Python to C
A real 8th-grade student completed this scaffolded translation exercise, converting a working Python program into C. The lesson teaches low-level computing concepts—memory as a physical resource, types as instructions for reading bytes at addresses, data vs. interpretation—without simplifying or condescending.
- Explains why a
charexists at the hardware level—that the ASCII table example where'A'prints as65orAdepending on the format specifier is teaching that data and interpretation are separate things - Every C concept introduced alongside its Python equivalent, with a side-by-side translation reference table
- Scaffolded
/* YOUR CODE HERE */blocks give structure but require the student to reason through the logic—Pólya’s method applied to programming - Deferred concepts named honestly—the
&inscanfis flagged as beyond scope and promised for a future lesson, never hand-waved
Curriculum Topics
- Logic gates and Boolean algebra
- Z₂ group isomorphisms—the same underlying structure read through different representations
- Matrix transformations and linear algebra
- Symbolic logic and proof structure
- Programming fundamentals via cross-linguistic transfer (Python → C)
- Discrete mathematics and set theory