- Monitored a portfolio of systemically important corporates to detect early signs of financial stress, engaging banks and corporates to prevent systemic spillovers
- Traced transmission linkages threatening Thailand's financial stability, producing insights that informed supervisory and policy discussions up to the Deputy Governor (Financial Institutions Stability)
- Contributed to the writing team for the Bank of Thailand's Financial Stability Report (2024) and Financial Stability Review (2024, 2025), and served on the English translation team for all three editions
- Designed a suite of forward-looking risk indicators (liquidity, leverage, performance) using statistical and machine-learning methods, generating early-warning signals for senior management
- Automated the team's bi-weekly credit-rating surveillance reporting (collection, processing, visualization) into a one-click Python/Excel pipeline, cutting ~8 hours of manual work to under 10 minutes per cycle; won the Governor's Award for Innovation
Nearly three years at the Bank of Thailand's Financial Stability Department taught me how a shock moves through a financial system, and how to turn that into analysis policymakers could actually use. At NUS, I've leaned into the quantitative and financial-engineering side of the degree — econometrics, machine learning, term-structure and derivatives coursework. That's the toolkit I build on in my own time, running systematic FX and gold research tools where every idea gets tested before I trust it, not after.
Experience
- Applied NLP to product-review data to analyze cognitive processes, contributing insights on consumer behavior toward cultural-product evaluation
- Built data crawlers across 11 platforms to assemble a comprehensive user-and-product dataset, expanding the group's research capabilities
- Developed a CNN computer-vision model to classify food images, doubling the number of classes and lifting F1-score 5% over the incumbent model
- Built a collaborative-filtering recommender for restaurant recommendations that outperformed the existing model and was deployed to production
- Researched Thai Baht outperformance vs. regional currencies with multiple regression, finding evidence of safe-haven characteristics that supported capital-flow management policy
Projects
TradeAssistant
Private buildA systematic FX & gold research operation I designed and run end to end: data, decision sheet, and risk-capped order plan are generated automatically, with a parallel AI review adding context before I ever see it. Since May 2026 I've pre-registered and tested more than 20 ideas, including sizing rules, cost models, and macro overlays, using deflated Sharpe ratios and bootstrap resampling to correct for how many I tried; most were rejected or not promoted under frozen criteria. Right now the whole pipeline, data through to execution, is being proven out end to end on a demo account before any real capital touches it.
EquityAssistant
Private buildA long/short equity research lab in development for an IBKR paper account. I'm designing the allocation, rebalancing, and overlay logic; automation will handle price refreshes, ledger bookkeeping, and data-quality checks once paper trading starts. No real capital will be involved.
TradeAssistant system architecture
market-data feeds + point-in-time macro vintages
daily candidate sheet from price and structure, frozen early
deterministic order-plan contract · total-risk and exposure caps
LLM-assisted economist context · informs me, doesn't gate the order
demo-gated terminal · hard risk caps · kill switch
daily digest · heartbeat · reconciliation checks
Education
Skills & Certifications
Technical: Financial Analysis · Risk Management · Quantitative & Portfolio Analysis · Econometrics · Python · R · SQL/PSQL · VBA · Tableau · MongoDB · AWS · GCP · Git
Certifications: Financial Risk Manager (FRM): Part I passed; Part II candidate (Aug 2026)
Recognition: Liaison Officer to Governor Kazuo Ueda (Bank of Japan), 30th EMEAP Governors' Meeting, Jul 2025 (1 of 15 appointed) · Finalist, 2020 Microsoft Azure / UNDP Hackathon
Languages: Thai (Native), English (Fluent), Japanese (Conversational)
Notes
The Sharpe ratio problem nobody mentions
My coursework teaches the Sharpe ratio as the standard way to judge a strategy: mean excess return divided by volatility. It's a fine number for one backtest. It says nothing about how many backtests you ran to find it.
I test a lot of ideas, more than 20 pre-registered hypotheses since May 2026: sizing rules, cost models, macro overlays. If I just report the best Sharpe out of that pile, I've quietly run a multiple-hypothesis test and hidden it. The more variants you try, the more likely one of them looks good by chance alone. A plain Sharpe ratio can't tell "genuinely good" from "got lucky across 20 tries."
So the number that actually gates whether a strategy is allowed near real capital isn't the raw Sharpe. It's the deflated Sharpe ratio (Bailey & López de Prado): it discounts the observed Sharpe for how many variants I tried, how correlated those trials were, and how far the return distribution sits from the clean, symmetric shape Sharpe assumes. I pair it with bootstrap resampling to get a confidence interval around that number, instead of trusting one point estimate off one sample path.
For that confidence interval, I resample whole decision days, not individual trades, and read a 95% band. Trades placed on the same day share the same macro shocks, so treating them as independent draws would understate the true uncertainty and manufacture significance that isn't really there. When a practitioner mentioned in conversation that their desk uses Newey-West (HAC) standard errors instead, I ran the comparison myself. HAC actually came out more favorable on my data. I kept the block-bootstrap approach anyway: switching methods only when one happens to flatter the result defeats the point of having one at all.
It's a less flattering number than the one my lecture slides would compute on the same data. That's the point: it's supposed to survive me trying to fool myself.
Killing my own good idea
I came across an idea in outside research: a simple weighted scorecard, 0 to 100, for deciding whether a new strategy is worth greenlighting. It looked clean and appealingly objective, so before adopting it I ran it through the same adversarial review I use on my actual trading ideas.
It failed the first round. The scorecard quietly dropped any correction for multiple testing: score enough candidates and something clears a high bar by chance alone, the exact mistake the deflated Sharpe ratio exists to catch. Worse, its admission criteria matched the profile of two ideas I'd already tested and found to be false positives; the scorecard would have waved both of them through.
One piece of it survived a second look and made it into my process. The rest didn't. I only found out because I was willing to attack my own preferred idea as hard as I'd attack anyone else's.
The easiest strategy to approve is always the one you didn't try to break.
My AI research assistant
People assume that when I say "AI-assisted trading system," the AI is the one placing trades. It isn't. In my setup, a language model never sizes a position, never decides whether to send an order, and never picks a strategy. Those decisions are mine: made and signed off before a trade ever happens, not approved in the moment.
What I actually use it for is the grunt work I'd otherwise do myself every morning: reading through central-bank statements and data releases, summarizing what changed versus expectations, pulling up historical analogues, and pushing back when my own reasoning looks thin. Some mornings it disagrees with me, which is usually more useful than if it just agreed.
It does flag risk as part of that review: concentration, competing macro drivers, event risk, things worth watching. What it doesn't have is authority: nothing trades that I haven't pre-registered and signed off as a strategy, every order passes hard risk caps I set in advance, and the model has no path to change any of that. It can tell me something looks risky. It can't act on it.
That's the whole design: I get through far more research than I could alone, and I still make every call that matters.
Why point-in-time macro data matters
Most macro data gets revised after it's first released (GDP, inflation, the numbers everyone quotes). If you backtest against today's final, revised figures, your model is quietly using information that didn't exist yet on the day it was supposedly deciding. That's look-ahead bias, and it makes results look better than they'd have actually been.
So I store point-in-time data instead: what was actually known on each date, not what we know now with hindsight. I keep FRED's vintage releases and rebuild the information set as of each decision date. It's more work, and honestly my backtests got worse the day I switched to it. But that's the number I trust. The other one was measuring how good I am at using information from the future.