Experience
Experience
Software and machine learning roles across production GenAI, platform engineering, and applied research, newest first.
Senior Machine Learning EngineerResMedFeb 2024 – Present
Feb 2024 – Present2.5 YOE
ResMedSenior Machine Learning Engineer
Full-timesummary
Machine learning and conversational AI for sleep health, from GenAI platform infrastructure to consumer products and clinical modeling.
key impact
1.5M+Dawn beta enquiriesPublicly reported product and team milestoneAgentsTool-use orchestrationLangGraph systems with specialized workflowsIaCProduction environmentsTerraform-managed AWS infrastructureEvalQuality gatesFine-tuning and evaluation pipelineskey responsibilities
- Founding engineer on ResMed's internal GenAI platform: retrieval-augmented generation infrastructure, agent architectures (LangGraph tool-use agents), Terraform-managed AWS environments, security hardening, and LLM fine-tuning and evaluation pipelines reused across downstream products.
- Built Dawn, ResMed's generative-AI sleep-health assistant, largely from the ground up: one backend powering both the myAir app and the web experience, and I built both surfaces. ResMed AI leadership later publicly named me among the Dawn team when the product crossed 1.5 million enquiries in beta.
- Built Dusk from the ground up, now publicly presented by ResMed as an AI-powered sleep coach with natural voice support, adaptive guidance, and personalized CBT-I plans. Pending IP covers the multi-agent CBT-I system (P2852US1).
- Currently leading COMISA (comorbid insomnia and sleep apnea) modeling: clinical ML research on polysomnography data with interpretable baselines and clinician-in-the-loop label validation.
- Code review and mentoring across the GenAI platform, including onboarding materials and contribution-process guidance.
tech stack
PythonRAGLangGraphTerraformAWSLLM Fine-tuningLLM EvaluationVoice AIFounding Machine Learning & Cloud EngineerRadicle Science2021 – 2024
2021 – 20243 YOERadicle Science
Founding Machine Learning & Cloud Engineer
Full-timesummary
I joined while finishing graduate school and stayed for the chance to see an entire clinical-research system at once: participant experience, study operations, data pipelines, analytics, and the cloud services holding them together. My job was to turn repeated manual work into software that let a small team run large, fully remote studies without losing the human at the other end.
key impact
Participant reportingSurvey normalizationStudy data pipelineskey responsibilities
- Built the personalized reporting pipeline that closed the loop for study participants: instead of disappearing into a dataset after the final survey, each person received a readable account of their own health journey and how it compared with the study population. Python services on AWS Lambda processed results and SES/SNS handled delivery and operational notifications.
- Built an NLP-assisted normalization tool for survey questions that had evolved independently across studies. Mapping those differently worded questions into a shared warehouse made cross-study analysis possible and reduced manual reconciliation.
- Designed data pipelines, automated metric tracking, and cloud-service architecture for large-scale virtual studies, giving research and operations teams a current view of enrollment, engagement, and study health instead of waiting on one-off analyses.
- Shipped retention and recommendation systems, plus a live trial-engagement experience for industry events. The useful lesson was that the model was only one part of the outcome; delivery timing, understandable feedback, and operational reliability mattered alongside it.
tech stack
PythonSQLAWS LambdaSES/SNSReactGraphQLElixirLangChainVector DatabasesDeep Learning ResearcherUC San Diego · Radiology (Thornton Hospital)2019 – 2021
2019 – 20212 YOEUC San Diego · Radiology (Thornton Hospital)
Deep Learning Researcher
Researchsummary
I worked alongside UCSD and VA radiology researchers who needed measurements they could trust, not a model demo. We turned labor-intensive MRI segmentation into a repeatable workflow for studying bone, cartilage, and treatment response—and kept the collaboration going long enough for the work to mature into peer-reviewed research.
key impact
2Peer-reviewed studiesShoulder and lumbar-spine segmentation0.99Mean DicennU-Net on discs and vertebral bodiesSharedLab workflowConcurrent Docker/Django research pipelinekey responsibilities
- Built U-Net-based MRI tissue segmentation for osteoarthritis and treatment-response studies, converting pixel-level predictions into quantitative tissue measurements researchers could compare across scans rather than tracing every structure manually.
- Wrapped the research pipeline in Docker and a Django scheduler so multiple researchers could submit work concurrently. That unglamorous systems layer made experiments reproducible, protected long-running jobs from one another, and moved the model from a notebook into a tool the lab could actually share.
- The collaboration continued beyond the formal role. A 2024 shoulder study compared DeepLab and U-Net for 3D bone morphology from zero-echo-time MRI, work aimed at making MRI more useful for pre-surgical planning without relying only on CT.
- For the 2025 lumbar-spine study, I contributed conceptualization, methodology, and software. The result was deliberately nuanced: zero-shot SAM/MedSAM adapted quickly, but the trained nnU-Net remained far more accurate (about 0.99 mean Dice for discs and vertebral bodies), a useful negative result for teams deciding when foundation models are—and are not—ready for clinical imaging workflows.
tech stack
PythonU-NetDeepLabnnU-NetSAM / MedSAMTensorFlow / KerasDockerDjangoImageJMATLABSoftware & ML ResearcherUC San Diego · Leichtag Biomedical Center2018 – 2020
2018 – 20202 YOEUC San Diego · Leichtag Biomedical Center
Software & ML Researcher
Researchsummary
This was my first sustained research problem: use computation to understand why two kidney transporters that looked broadly redundant behaved differently in living systems. I learned to move between biology and code—asking what a molecular feature meant, then testing whether it survived exhaustive search, resampling, and an external drug set.
key impact
480,700Feature sets testedEvery seven-feature combination from a pool of 257Interpretable featuresReduced from more than 60 molecular descriptors75–80%Metabolite accuracyOAT1 versus OAT3 classification≥75%Drug-set accuracySmall independent high-affinity-difference setkey responsibilities
- Built the Python machine-learning implementation behind the study: data preparation and visualization, Random Forest and Decision Tree baselines, exhaustive feature-combination search, and NEAT-based feature selection and engineering. The code tested all 480,700 seven-feature combinations available from a 25-feature pool and repeatedly resampled cross-validation to avoid promoting a lucky split.
- Helped reduce more than 60 structural and physicochemical descriptors to seven interpretable properties that classified unique OAT1 versus OAT3 metabolites at roughly 75–80% accuracy. The biology became legible: OAT3 tended toward larger, more complex molecules with more rings and chiral centers, while OAT1 favored smaller structures with different surface-area characteristics.
- Applied the metabolite-derived model to a small, independent set of drugs with strong transporter-affinity differences; at least 75% were classified correctly. We treated that as evidence of feasibility, not a production predictor—the drug set contained only 33 compounds and the paper explicitly discusses the risk of overdetermination.
- The outcome was a 2020 Journal of Biological Chemistry paper and an open implementation, but the more important result was conceptual: OAT1 and OAT3 were not simply interchangeable clearance routes, and interpretable ML could help connect knockout metabolomics to transporter physiology and future drug–metabolite questions.
tech stack
Pythonscikit-learnRandom ForestDecision TreesNEATOrangePandasMatplotlibSeabornSQLAlchemyJupyter