- Monitored a portfolio of systemically important corporates to detect early signs of financial stress, engaging banks and corporates to prevent systemic spillovers
- Investigated financial events and traced transmission linkages threatening Thailand's financial stability, producing insights that informed supervisory and policy discussions up to the Deputy Governor (Financial Institutions Stability)
- Designed a suite of forward-looking risk indicators (liquidity, leverage, performance) using statistical and machine-learning methods, generating early-warning signals for senior management
- Re-engineered a multi-day manual reporting workflow into a one-click automated Python/Excel pipeline (LET, FILTER, VBA), cutting turnaround from days to a single batch run; won the Governor's Award for Innovation
I work at the intersection of finance, quantitative analysis, and data science, with a macro lens built inside a central bank. At the Bank of Thailand's Financial Stability Department, I learned to reason about how shocks transmit through the financial system and how policy responds — on analysis that reached senior decision-makers. My background in data science and analytics taught me to build models from messy, real-world data; and in my own projects, I build systematic trading and research systems end to end, turning financial hypotheses into tested, auditable research workflows and the infrastructure that runs them.
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 buildAn end-to-end pipeline: automated daily data refresh (broker feeds + point-in-time macro vintages), alpha/timing/risk models validated with walk-forward selection and transaction-cost stress tests, and an automated LLM "economist" review. Beyond backtesting, it continuously collects forward/live data to track out-of-sample behavior. Execution runs from human-reviewed decision support through to automatic execution via an MT5 Expert Advisor governed by fail-closed risk gates, per-trade stops, equity-floor new-risk blocking, and manual halt controls. It runs as a scheduled, always-on hosted service with monitoring, alerting, automated reconciliation, off-site backup, and private authenticated access to the dashboard.
EquityAssistant
🔒 Private buildA paper-only automation lab on Interactive Brokers — dry-run by default, with paper-account allowlisting, forward-only ledgers, and broker-validation snapshot tooling (no real capital). Includes a portfolio "lab" dashboard for allocation, rebalancing, turnover-cost modeling, and data-quality monitoring.
TradeAssistant — system architecture
- End-to-end systems engineering — from data and research through validation and gated execution.
- Research integrity — point-in-time data, walk-forward validation, and live out-of-sample tracking to guard against look-ahead bias and overfitting.
- Risk-first design — fail-closed risk gates, per-trade stops, equity-floor new-risk blocking, and manual halt controls.
- Human + AI workflow — LLM review augments the workflow; execution authority stays isolated to the gated EA path.
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
LLMs as research reviewers, not traders
There's a lot of noise about AI "making trades." I think that's the wrong job for it. In my own systems, the language model never sizes a position, never executes, and never promotes a strategy. It reviews.
What it's genuinely good at is the analyst's grunt work: reading a wall of central-bank language and data releases, summarizing what changed versus expectations, surfacing historical analogues, and flagging where my own reasoning is thin. It's a tireless research assistant that argues with me — not a decision-maker I outsource to.
Keeping the model on the research side of the line is deliberate. Execution authority lives in a separate, gated path with hard risk controls; the LLM can inform that path but has no power over it. That separation is the point: I get the speed and breadth of AI over messy, unstructured macro information, while judgment, sizing, and risk stay where they belong.
Used this way, AI widens what one person can monitor — without widening what can go wrong.
Fail-closed design in financial systems
In most software, when something breaks the default is to keep going and log the error. In a system that can move money, that instinct is backwards — the safe default is to stop.
I build my research and execution tooling to fail closed: if market data is stale, the account identity doesn't match, the model's context is incomplete, or reconciliation doesn't tie out, the system blocks new risk rather than guessing. Doing nothing is a valid — often the correct — action.
This inverts a lot of normal engineering habits. It means writing code that distrusts its own inputs, treats every upstream feed as guilty until proven current, and treats "I'm not sure" as a hard stop, not a warning. The hard part isn't the happy path; it's enumerating the failure modes and deciding, in advance, what "safe" means for each.
The payoff is a bounded worst case. A system that fails closed can miss an opportunity — but it's far harder for it to be catastrophically wrong about risk.
A research result is only as good as its negative controls
A backtest that looks good tells you almost nothing on its own. The question that matters is: how hard did you try to make it fail?
Most of my research time goes into negative controls, not positive results. Before I believe a pattern, I want it to survive walk-forward validation — choose parameters on the past, test on the untouched next slice — plus realistic transaction-cost stress and no-lookahead checks that confirm every decision used only what was knowable at the time. I also run controls designed to produce nothing: random-direction and opposite-signal versions. If those "work," my test is broken — I haven't found anything.
The discipline I value most is killing ideas cleanly. It's tempting to tweak until a result appears, but that's just overfitting with extra steps. A result I trust is one that kept working after I stopped helping it.
Most ideas don't survive that process. That's the system working, not failing.
Why point-in-time macro data matters
Most macro series are quietly revised after their first release. Backtest a strategy on today's final GDP or inflation prints and you let the model "see" numbers that didn't exist on the decision date — a subtle look-ahead bias that flatters the results.
The fix is point-in-time (vintage) data: store what was actually known as of each date, and reconstruct that as-of view for every decision. In my own research stack I keep FRED macro vintages and rebuild the information set per decision date. It's less convenient, and the backtests look worse — which is exactly the point. A strategy that only works on revised data isn't a strategy; it's hindsight.