Curious by default
I want to understand why a system behaves the way it does, not only whether a metric moved.
Machine Learning, NLP, and Applied AI. A new portfolio experience is currently being built.
About / Approach
Based in Chicago, I’m a machine-learning engineer and software builder interested in language, healthcare, and applied AI.
I work across the full path from messy data and experiments to reliable pipelines, APIs, and user-facing products.
What I enjoy most is taking an ambiguous problem and making it concrete: understanding what the data can support, choosing the right technical approach, and building something other people can inspect, use, and improve.
I want to understand why a system behaves the way it does, not only whether a metric moved.
I’m comfortable moving from data and models to backend services, databases, deployment, and product interfaces.
Clear assumptions, reproducible work, thoughtful evaluation, and maintainable software matter as much as the first demo.
Selected work
Product-focused engineering in progress, followed by selected research and published work.
Product thesis / Working title: SignalBrief
The first use case is job-search inbox intelligence: surface recruiter outreach, interviews, assessments, deadlines, application changes, and follow-up opportunities without asking the user to scan another chronological feed. The same architecture can later support university, work, and personal mail.
Pydantic separates provider facts, extractor claims, user state, and historical briefing context—and rejects invalid or unsupported states.
Hard gates remove resolved, dismissed, archived, or not-yet-arrived messages before explicit inclusion reasons are assigned.
Priority, deadlines, recency, and stable tie-breaking create a transparent benchmark for future learned rankers.
The pipeline assembles attention, update, and activity sections and renders the same typed result as human-readable text or JSON.
Chronological groups produce ranking metrics while PostgreSQL preserves exact briefing lineage for later historical reconstruction.
Learn the order of each morning list rather than classifying emails independently, then compare it with the deterministic baseline and a zero-shot LLM reference.
Future action and deadline claims must point back to supporting text, with abstention when evidence is weak instead of invented certainty.
Future feedback will separate immediate interactions from later outcomes while preserving point-in-time features and avoiding training-serving leakage.
Immutable briefing runs and items retain the exact snapshot, analysis version, ranking decision, and workflow values required to reconstruct historical output.
04 / Reliability foundation
The persistence layer now stores immutable briefing runs and ordered items linked to exact message snapshots and analysis versions. A historical brief can be reconstructed from PostgreSQL without reading future mailbox or workflow state; full champion-versus-candidate replay remains a later MLOps stage.
The deterministic vertical slice now runs through a Dockerized PostgreSQL persistence layer with schema migrations, repository and service boundaries, append-only feedback history, immutable briefing lineage, and verified historical reconstruction. FastAPI, Outlook synchronization, learned ranking, grounded extraction, cloud deployment, monitoring, and the iOS client remain next.
Research
Multimodal clinical AI, published predictive modeling, and explainable NLP for healthcare policy research.
Simplified system architecture
Explore whether complementary speech and language signals can support earlier MCI detection when clinical datasets are small and imbalanced.
Keep the speech and language backbones frozen while training cross-modal projections, soft-prompt adapters, and lightweight classification layers.
Compare model scale, task type, transfer strategy, and imbalance handling across PROCESS-2 and ADReSS picture-description and verbal-fluency tasks.
Status: ongoing research. Performance findings are intentionally omitted until the experiments are validated and ready to share.
Final cross-validated performance
Built the preprocessing, feature-engineering, imbalance-handling, model-validation, and benchmark workflows used to develop and assess the neural network.
Combined ReLU hidden layers, L2 regularization, batch normalization, sigmoid output, binary cross-entropy, early stopping, and model checkpointing.
Addressed an 85/15 class split with SMOTE, evaluated with five-fold cross-validation, and benchmarked against random-forest and decision-tree baselines.
Two-stage prediction and explanation system
Restructured respondent-level survey data into linked scenario- and participant-level tables, preserving repeated decisions, original open-ended answers, codebook context, and model outputs without inventing outcomes for incomplete respondents.
Built an ablation study spanning reimbursement representations, respondent characteristics, human-coded themes, and sentence embeddings. A transparent structured model remains the benchmark while the strongest provisional text-augmented candidate is frozen for explanation work.
Kept every scenario from the same respondent inside one fold, fitted preprocessing only on training data, and selected classification thresholds inside nested training folds before generating out-of-fold predictions and targeted error cases.
Status: active pilot and feasibility research. Results are intentionally withheld while validation continues. Predictions describe model-supported associations—not causal reasons, clinical recommendations, or deployment readiness.
Continue exploring