Senior Data Scientist at RingCentral · Manila, Philippines
NLP foundation · Applied ML · GenAI · Data Engineering
I started in NLP, working with transformer models like BERT years before ChatGPT brought them into the mainstream. My early work covered language-model pretraining, text classification, conversational AI, and entity resolution. Since then, I've grown into a generalist working across machine learning, data engineering, and GenAI. The job is still the same: turn an unclear business problem into something people can use and trust.
For the past five years, I've been the only data scientist supporting my analytics organization at RingCentral. I own projects from the first conversation through deployment and support, working with data engineers and analysts along the way. Several of these systems feed reports and tools used by senior leaders, so I spend a lot of time on validation, safe failure modes, and the less glamorous work that keeps a bad input from becoming a confident answer.
I'm also completing an M.S. in Computer Science part-time at De La Salle University.
Most of my recent work lives in a private enterprise codebase. These summaries focus on the problem, the decisions behind the build, and what shipped.
Teams knew the business question they wanted to answer, but not which dashboard in a large catalog held the answer. I built a two-pass Claude system that interprets the question, retrieves a match through forced tool use, and verifies the result against the real catalog before returning it. On a held-out 40-query set, it returned the top result correctly 39 times (97.5% top-1) and never declined a query that had a valid answer.
I shipped a Streamlit assistant that lets people query Snowflake in plain English. It uses Claude with ChromaDB retrieval, blocks known invalid fields before generation, and checks the SQL again afterward. About 50 people use it, including executives and senior leaders. The application runs on Docker and Kubernetes, with query logging for review and feedback.
A partner's customers were moving onto our platform, and the two customer bases overlapped with no shared key between them. The matching is what decides who actually makes it through: a customer the pipeline misses is a customer who falls out of the migration, and the revenue goes with them. I combined TF-IDF and cosine similarity, fuzzy matching, and deterministic identifiers into a weighted confidence score, tuned strict and ranked so an analyst could review every candidate. It runs against an account base of roughly 5.6 million rows.
I built an LLM-assisted converter that parses Alteryx workflow graphs, traces schemas, and produces Hive/Impala SQL using Claude, LangChain, and sqlglot. It generated roughly 16,000 lines of SQL across 27 workflows, guarded by 25 automated correctness checks that are discovered from the workflows themselves rather than kept as a hardcoded list. A companion pipeline loads the underlying data into Snowflake and on-prem Hadoop.
I automated recurring Snowflake-to-Python reporting used by C-suite and VP leaders, and Claude writes the commentary on top of it: a one-line read on each deal, a narrative per risk bucket, a pipeline health summary, and a top-signal callout for the chat message. The rule that makes this safe to put in front of that audience is that the LLM writes the prose and never the numbers — every figure, bucket, and flag is computed deterministically in Python and handed to the model as fixed input, and the response has to satisfy a structured-JSON contract before anything is rendered.
The failure policy is tiered by what's at stake. Freshness checks stop a run before stale data reaches a report at all. The daily executive report refuses to send on a bad model response rather than send an invented story, while a softer weekly takeaway just falls back to neutral wording so the report still goes out. Delivery covers PDF, Excel, chat, and Google Drive on schedule, and a related set of 10 Tableau delivery pipelines distributes roughly 300 dashboards to leadership channels.
- ML and NLP: entity resolution, text classification, sentiment, CSAT and churn modeling, forecasting; XGBoost, Random Forest, SVM, and MLP models in scikit-learn and PyTorch
- GenAI: RAG, Text-to-SQL, prompt engineering, tool use, LangGraph, evaluation, and hallucination mitigation; Claude, LangChain, ChromaDB
- Data and deployment: Python, SQL, Snowflake, Hive/Impala, Docker, Kubernetes, Streamlit, Tableau, pytest
| Company | Role | Dates |
|---|---|---|
| RingCentral | Senior Data Scientist | Jul 2023 – Present |
| RingCentral | Data Scientist | May 2021 – Jul 2023 |
| Senti AI | AI Research Engineer | Sep 2019 – May 2021 |
My public repositories mostly reflect earlier research, coursework, and teaching. Two that still represent where I came from are my real-time sign-language-to-text thesis and a Python data structures workshop.
- CADS Sunrise Award — Top Data Scientist in ASEAN, 2022
- 2nd Place, AIM-MDM Hackathon
- Undergraduate thesis poster, Philippine Computing Science Congress 2019
I'm always happy to compare notes on applied ML, NLP, and practical GenAI.




