Skip to content

Farhan Rangkuti

Data Scientist · Bogor, Indonesia

I work where the model meets the thing people actually use. A four-lens equity research desk, a scholarship crawler that may only record what it can quote, and an offline-first language tutor scheduled by a memory model — all three deployed, all three still running.

Day to day I'm a bioinformatics technician on oil palm genomics, building the ETL and the internal tools that carry genotype and phenotype data — including two AI systems that run entirely on our own server, with no external APIs. My thesis on graph neural networks for music recommendation took Best Paper at ICICyTA 2024.

The habit that runs through all of it is refusing to overstate a result. A blank field beats a plausible wrong one; a model that can't speak to a case should say so rather than return a number.

  • Three models running in production
  • Best Paper at ICICyTA 2024, indexed in Scopus
  • Graph neural networks, anomaly detection, valuation

ISelected work

All work
QuantDesk reading NVDA, verdict “Mixed signals”: Flow says Buying and Trend says Uptrend, while Value reports the price 82% above the cash-flow model and Quality flags 4 of 9 health checks passed. A line beneath notes that Flow and Trend both read price and volume while Value and Quality both read the filings — so the count is of data sources, not panels.

Fig. 1NVDA — the price lenses and the filings lenses disagree.

QuantDesk

Live2026

A quantitative equity research desk that runs four models reading four different datasets — order flow, price trend, intrinsic value and accounting quality — then reports where they agree, where they contradict each other, and what none of them can see. Covers US and Indonesian (IDX) listings.

Next.js 15React 19PythonFastAPIscikit-learnRecharts
ScholarTrack listing 43 fully-funded programmes. The filter rail states what each eligibility filter does and does not include; cards show coverage, verification date, and where funding is not itemised rather than leaving a blank.

Fig. 243 programmes, filtered by what actually disqualifies you.

ScholarTrack

Live2026

A zero-cost dashboard for finding, filtering and tracking fully-funded international scholarships. Programme details live in structured JSONB columns rather than prose, so questions a wall of text cannot answer become filters — and every extracted value is verified against a verbatim quote from the funder's own page before it is allowed into the database.

Next.js 16React 19SupabasePostgreSQLRLSClaude & Gemini
LinguaKu's progress view on a fresh install: vocabulary size, a distribution across word-frequency bands, retention, and a fourteen-day review forecast — every figure showing an explicit “not measured yet” state rather than a zero.

Fig. 3Progress, with every unmeasured figure saying so.

LinguaKu

Live · v1.11.12026

A PWA that teaches English and Japanese to Indonesian speakers — no account, no paywall, no ads, no engagement mechanics, and zero recurring cost. A learner on a cheap Android phone taps the icon and is answering a useful question in 108 ms, fully offline, because a memory model predicts they are about to forget it.

React 19TypeScriptViteDexieFSRSPWACloudflare

IIResearch

Read more

Comparative Evaluation of Graph Neural Network Algorithms for Music Recommendation Systems

2024 International Conference on Intelligent Cybernetics Technology & Applications (ICICyTA), IEEE, pp. 297–301

Best Paper and Best Presenter at ICICyTA 2024, published on IEEE Xplore and indexed in Scopus. It compares GraphSAGE against GCN on the Spotify Million Playlist Dataset and finds the split that matters: GraphSAGE takes precision, GCN takes recall — and GCN quietly drifts toward already-popular tracks.

System design diagram from the paper, showing the graph construction and evaluation pipeline.

IIIWriting

All writing

The ranking predicts nothing

August 2026 · Backtesting · multiple comparisons

QuantDesk sorts a universe of stocks by a seven-signal composite. I finally measured whether that order predicts anything. It does not — and the app now says so on the panel that produces it.

IVAnalysis & modelling

All analysis