Skip to content
View herui03's full-sized avatar
  • Nanyang Technological University
  • Singapore
  • LinkedIn in/heruidou

Block or report herui03

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
herui03/README.md

Hi, I'm Herui Dou

MSc Business Analytics student at Nanyang Technological University (Nanyang Business School), with a Bachelor of Business in Banking and Finance from NTU. I'm looking for a full-time data analyst, data scientist, business analyst, BI or AI transformation role in Singapore, and I can start immediately.

What I do well is the middle of the pipeline: take a business question from a risk, finance or operations team, get the data right (grain, joins, codeframes, censoring, the things that quietly break an analysis), build the model or dashboard, and explain the result to someone who has to make a decision with it. I work in SQL, Python and R, and I use AI coding tools heavily to build prototypes, agent workflows and internal tools quickly.

Before the MSc I did three data-focused internships in banking and fintech: treasury reconciliation and process automation at Tencent (Python and SQL matching rules across 8 overseas accounts and 30k+ monthly transactions; manual-review rate cut from about 20% to under 2%), retail-banking pricing analytics and UAT at Bank of China Singapore, and counterparty risk and KYC data work in BOC's FI reporting team.

Projects

Risk and financial crime analytics

Project What it is Stack
aml-transaction-monitoring Rule-based AML monitoring on a 9.5M-transaction benchmark, measured at a real analyst budget, then compared with a gradient-boosted model. The best rule catches 0.07% of laundering at the budget; the model catches 87%. SHAP reasons per alert, a leakage check, a calibration check, and five documented mistakes. Tableau Public dashboard SQL, DuckDB, Python, scikit-learn, SHAP, Tableau
credit-portfolio-risk Limits, concentration, early warning indicators and stress testing on 2.26M US consumer loans. The headline finding is a right-censoring bug: naive vintage default rates showed credit quality improving 90% while the book was actually deteriorating 57%. Every figure is re-derived by a mutation-tested verification script SQL, Python, Excel, Tableau
aml-monitoring-console Browser-based transaction monitoring console: typology rules, explainable alerts, STR narrative drafts. Live demo JavaScript, synthetic data
sme-risk-survey-panel Nine waves of an SME insurance survey harmonised into one panel. The same variable carried three different codeframes across the decade and the same code meant two different things; the harmonisation is the deliverable. Ships with a synthetic-data generator so the pipeline runs end to end R, ggplot2, logistic and count models

AI agents and automation

Project What it is Stack
ad-ops-multi-agent Multi-agent assistant for an advertising sales and operations team: an orchestrator plans and routes to six specialist agents, compliance review is grounded in a RAG corpus, and budget or compliance decisions pause for human approval before anything is finalised Python, LangGraph, FastAPI, React, Groq
pdf2audiobook Small tool that turns a PDF into an audiobook with free neural voices, with chapter splitting, a CLI and a web UI Python, Edge TTS, Gradio

An analytics-engineering project (dbt and DuckDB warehouse with 170 tests, lead scoring, and a causal-inference study on a 14M-row advertising RCT) is kept private for now; happy to walk through it.

Each analysis repo keeps a docs/ folder of things that went wrong, how they were caught, and what the fix cost. Those are usually the most useful part.

What I work with

  • Querying and data work: SQL (Postgres, MySQL, DuckDB), Python (pandas), R (dplyr, tidyr), Excel (Power Query, PivotTables)
  • Modelling: regression, tree ensembles, model comparison and explainability (SHAP), calibration, A/B and causal analysis
  • Pipelines and BI: dbt, DuckDB, Tableau, Power BI
  • LLM applications: LangGraph and LangChain agent workflows, RAG, prompt design with structured outputs, human-in-the-loop review
  • Domain: treasury operations and reconciliation, retail banking pricing, AML and KYC, credit portfolio monitoring, insurance survey research

Contact

LinkedIn, Singapore

Pinned Loading

  1. aml-transaction-monitoring aml-transaction-monitoring Public

    Rule-based AML monitoring on a 9.5M-transaction benchmark, measured at real analyst capacity, vs a gradient-boosted model with SHAP explanations. SQL, Python, scikit-learn, DuckDB, Tableau

    Python

  2. credit-portfolio-risk credit-portfolio-risk Public

    Exposure limits, concentration, early warning indicators and stress testing on 2.26M US consumer loans, including the right-censoring bug that made a deteriorating book look like it was improving. …

    Python

  3. ad-ops-multi-agent ad-ops-multi-agent Public

    LangGraph multi-agent assistant for an ad sales & operations team: orchestrator + 6 specialist agents, RAG-grounded compliance review, human-in-the-loop approvals, FastAPI + React

    Python

  4. aml-monitoring-console aml-monitoring-console Public

    Interactive AML transaction monitoring console: rule-based typology screening, explainable alerts and STR narrative drafting on synthetic payment data

    HTML

  5. sme-risk-survey-panel sme-risk-survey-panel Public

    Nine waves of an SME risk and insurance survey harmonised into one panel in R: three colliding codeframes, a synthetic-data generator that reproduces every defect, trend charts and regression models

    R

  6. pdf2audiobook pdf2audiobook Public

    Turn any PDF into an audiobook with free Edge neural voices: chapter splitting, multi-language, CLI and Gradio web UI

    Python