Decisions under uncertainty, tested in practice.
These cases show how I build and test machine learning systems. They cover navigation, conflicting evidence, security detection, and deployed models. Together, they inform my research on when an agent should act, wait, or seek help.
Navigation, conflicting evidence, and security
ENCP tests action sets across whole navigation routes. Meanwhile, the multilingual and security studies test decisions when evidence conflicts or inputs change.
ENCP: Episode-Normalized Conformal Prediction for Vision-and-Language Navigation
ENCP uses whole routes to set a navigation agent’s threshold for asking for help.
- Problem
- Confident wrong moves can compound until a route fails. Therefore, an agent needs a tested rule for seeking help.
- Method
- I rescaled action scores and set a threshold using the largest score on each calibration route.
- Evidence
- Tests covered 4 navigation models, 3 scores, and 2 benchmarks. With help on flagged steps, route success rose from 71% to 91%.
- Limit / status
- The preprint requires exchangeability. Reordering calibration and test routes must leave their probabilities unchanged. Therefore, changed routes require checking this assumption.
Do Multilingual VLMs Abstain Under Cross-Modal Conflict in Low-Resource Languages?
Models can follow a false caption despite retaining internal evidence for the visual answer.
- Problem
- An image and its caption can contradict each other. However, tests in English may miss failures in other languages.
- Method
- We compared answers with and without false captions. Then we used internal model signals to guide models towards withholding answers.
- Evidence
- We ran 10,260 tests across 9 models and 3 languages. An internal classifier identified image-versus-text choices with 0.92 accuracy in Telugu.
- Limit / status
- For models able to withhold answers, steering reduced text overrides to zero in tested languages. However, transfer to more languages and guarantees on answer reliability remain open.
Goal Hijack Probe
Internal model signals can reveal attempts to override the user’s task, even when the answer stays unchanged.
- Problem
- Attackers add competing instructions to a prompt. However, checking only the answer misses attempts that fail to change it.
- Method
- I trained a classifier on internal model signals. Then I used harmless prompts to set a false-alarm threshold.
- Evidence
- The original threshold flagged 25.8% of harmless prompts in a new format. Adding representative calibration inputs reduced the overall rate to 4.5%.
- Limit / status
- These tests use 1 model family and template-based attacks. Moreover, a classifier using only prompt text nearly matched the internal detector.
All case studies
I update these case studies as the work develops. To help readers assess each case, I explain its problem, method, evidence, and limits.

Flood segmentation from multispectral satellite imagery (ProCANet)
I built flood maps within hours for a basin of 25 million people, achieving state-of-the-art results.

Mining footprint detection with multi-modal satellite data
We published the first use of a geospatial foundation model to map mining footprints at continental scale.

Aquaculture pond detection and change analysis
I built a system to flag possible illegal shrimp farms within hours of a satellite pass.

Flood policy evaluation, retention pond effectiveness in South Bandung
We used satellite maps and policy analysis to assess whether retention ponds reduce flooding.

Do Multilingual VLMs Abstain Under Cross-Modal Conflict in Low-Resource Languages?
Models can follow images in English yet false captions in Telugu. We tested this shift and guided models towards withholding answers.

Goal Hijack Probe
A classifier using internal model signals catches goal-hijack attempts even when the model’s answer stays unchanged.

SEA-VL: multicultural vision-language benchmark for Southeast Asia
We built SEA-VL, an ACL 2025 benchmark measuring GPT-4V’s failures on Southeast Asian culture.

GG-EZ: regional adaptation framework for vision-language models in SEA
I adapted image generation for Southeast Asia while retaining more than 98% of global benchmark quality.

CommonLID: language identification on noisy web data
Language identification scores above 95% on clean tests fall sharply on real Southeast Asian web data.

Share of Voice forecasting system, Fortune 500 APAC (Artefact)
I replaced media guesswork with forecasts and tested uncertainty ranges across 6 APAC markets for a Fortune 500 company.

Biometric authentication and alternative credit scoring at scale (GDP Labs)
The service handled more than 1 million daily inferences at 99.99% uptime. Moreover, credit scores covered borrowers with little formal history.

Real-time fraud detection pipeline (GDP Labs)
I designed 1 real-time pipeline to detect account takeover, synthetic identities, and merchant collusion.

Municipal waste logistics forecasting, Jakarta Smart City
I forecast Jakarta’s waste so collection routes could follow demand throughout the week.

Demand and audience forecasting for financial and media clients (Artefact)
I delivered 2 forecasting systems for Fortune 500 clients in 2-week consulting sprints.

HakkTaxi: ride-share demand prediction (Microsoft Azure APAC Hackathon)
I built a Jakarta ride-demand heatmap in 48 hours. Then the project won the Microsoft Azure APAC regional championship.

TeleHealthMonitor: Edge AI for remote patient monitoring (CamvsCovid)
We monitored COVID-19 vital signs over 2G while keeping video on the phone. Then the project placed in Cambridge’s global top 3.

Community IVR: Voice AI for offline communities (Cal Hacks 8.0)
I delivered health information by phone to Indonesians without smartphones or reliable internet.

Plastic bag ban, causal policy analysis using NLP and citizen data
I used more than 100,000 citizen complaints to measure the effect of Jakarta’s 2020 plastic bag ban.

Qwen VL Fine-tuning for AI City Challenge 2026 Track 2
I fine-tuned a vision-language model with 3 billion parameters on 1 GPU with 14 GB of memory.

ENCP: Episode-Normalized Conformal Prediction for Vision-and-Language Navigation
I rescaled navigation scores without learnt parameters to create a calibrated signal for asking for help.

Contributing to llm-d/inference-scheduler, Kubernetes LLM Inference Scheduling
I am preparing to contribute to the Kubernetes scheduler that routes language-model requests across GPU backends.

Batch-to-Streaming Energy Forecasting with Spark ML and Kafka
I trained a building-energy model in Spark, then used it to score a live Kafka weather stream.