Joshua Joyson KustiadiJakarta, Indonesia

SYSTEMSPEOPLECAN TRUST

I work on machine learning

Portrait of Joshua Joyson Kustiadi
2025QuickBiteSmaTaniC. WijayaBridgeComPlasTech2026SkillSwapCareer PredictorMoral TrajectoryScam ShieldGanjil-Genap

What I work on

I build systems that read language for what it is really doing. Most of my work sits where natural language processing meets a question someone actually needs answered — whether a message is trying to manipulate you, which career a student is drifting toward, or how a moral frame shifts over the length of a conversation.

What that means in practice

01

Machine learning

  • Feature engineering where the features are the contribution
  • Six models compared before committing to one
  • Optuna search and stacked ensembles
  • Catching the data leak that flattered the first result
02

Language & vision

  • Manipulation tactics named, not just scored
  • Moral framing tracked across a text rather than averaged
  • YOLOv8 trained by transfer learning, not taken off a shelf
  • Indonesian text as the first case, not an afterthought
03

Design & user research

  • Figma prototypes carried through to a built interface
  • Usability tested on real respondents, not teammates
  • Revisions driven by where people actually got lost
  • Knowing when feedback does not justify a change
04

Shipping

  • Streamlit and Flutter apps with real databases behind them
  • Serverless APIs on Vercel
  • Firestore rules written as access control, not config
  • Deployed and reachable, not only demoed
05

Leading the work

  • Project manager and AI engineer on a three-person build
  • Research lead on a five-person conference submission
  • Owning one system inside a six-person team
  • Writing down the limitations before a reviewer finds them
0Projects completed
0Conference paper submitted
0Teammates led on research

Selected work

Things I've built and helped build.

012025UI / UX

QuickBite

A food ordering app prototype, designed in Figma and then tested on 25 real users before anyone defended a single screen.

Team of three for a Human-Computer Interaction course. We shipped the prototype as a Figma link with a survey attached, and the useful finding was not the praise - it was that search was the one screen people struggled to locate. We added a search bar to the homepage, enlarged the small type, and weighted the reward labels. We also chose not to change the colour palette: some respondents called it monotonous, but more said it was fine, and changing a design on a minority signal is how you end up designing for whoever answered last.

  • Figma
  • Prototyping
  • Usability testing
  • Google Forms
022025Product & business

SmaTani

An urban farming app for city dwellers who want to grow food but do not know where to start - and cannot sell what they grow.

Team of two. Started from the empathise stage rather than the feature list: we read urban farming communities to find the actual complaints, which turned out to be education, sourcing, and distribution rather than gardening technique. The prototype covers planting guidance tied to local weather, a marketplace, and courses. I also worked the business side - revenue model, cost structure, and a five-year NPV and IRR on a 150 million rupiah starting cost.

  • Figma
  • Design thinking
  • User personas
  • Financial modelling
032025Web & UI

Christian Wijaya

A luxury fashion house site, designed in Figma and then built - one sentence here on who it was for.

Luxury retail is a genre with strict conventions - restraint, enormous imagery, almost no interface - so the interesting question is what you kept from Chanel, LV and Hermes, and what you deliberately did differently. Also worth naming: what changed between the Figma file and the built site, and why.

  • Figma
  • HTML
  • CSS
  • JavaScript
042025Product

BridgeCom

A communication aid built for Samsung Solve for Tomorrow 2025 with team Mindsync Innovator.

Scoped, prototyped and pitched under competition deadline. The round where I learned that a clear problem statement beats a clever model - our first pitch led with architecture and lost the room.

  • Product design
  • Prototyping
052025Deep Learning

PlasTech

Plastic waste classification from a photo, wrapped in a Streamlit app anyone can open.

YOLOv8n for detection, Streamlit for the interface. Deployed rather than demoed - the model runs against images it has never seen, from phone cameras, in bad light. Accuracy on curated test images was never the interesting number.

  • YOLOv8n
  • Streamlit
  • Python
062026Mobile app

SkillSwap

A peer-to-peer skill barter app: you teach what you know to learn what you don't, and no money changes hands.

Built in a team of six for a software engineering course. Flutter on the client, Firebase as the whole backend - no custom server. I owned authentication: the sign-up and login screens, and the Firestore security rules. That second part turned out to be the real work. With no server in the middle, the rules are not a formality behind a login gate - they are the only thing standing between one user and another user's data, so every read and write path had to be written and tested as access control rather than as configuration.

  • Flutter
  • Dart
  • Firebase Auth
  • Cloud Firestore
072026Applied ML

Career Path Predictor

Suggests three plausible career directions for a CS student from their stated interests and skills.

The real work wasn't the accuracy - it was making the model explain itself. I added SHAP so a student can see which skills drove each suggestion, instead of trusting a black box.

  • scikit-learn
  • XGBoost
  • Streamlit
082026Research

Dynamic Moral Trajectory

Emotional manipulation detection that tracks how moral framing moves across a text, rather than scoring the text as one flat block.

Built on Moral Foundation Theory. Roughly 47 engineered features, nine of them trajectory features that are the actual contribution. A stacking ensemble over XGBoost and LightGBM reached 0.822 AUC-ROC. Submitted to ICIMTech as research lead of a five-person team.

  • Python
  • XGBoost
  • LightGBM
  • Optuna
  • MFT
092026Product

Scam Shield

Paste an Indonesian message and get back the specific manipulation tactic it uses - urgency, false authority, isolation - instead of a yes/no verdict.

React and Vite on the front, a Vercel serverless function calling the Gemini API on the back. The hard part was not detection but explanation: a score people cannot interpret changes nobody's behaviour.

  • React
  • Vite
  • Vercel Functions
  • Gemini API
102026Causal inference

Ganjil-Genap & Air Quality

Does Jakarta's odd-even vehicle restriction actually reduce NO2 pollution? Four causal designs later, the honest answer is: the data can't tell us.

Full pipeline from data collection - ISPU, Sentinel-5P TROPOMI satellite readings, Open-Meteo weather data, and Google Mobility - through four separate causal designs: difference-in-differences, interrupted time series, event study, and randomization inference. The result was null and inconclusive across all four. Rather than force a conclusion the data didn't support, I treated the null result itself as the finding: a demonstration of what rigorous identification looks like when a policy's effect is genuinely hard to isolate from weather, mobility, and seasonal confounds. Deployed as a Streamlit dashboard so the analysis is explorable, not just a static report.

  • Python
  • pandas
  • Causal inference
  • DiD
  • Streamlit

Toolkit

What I reach for.

Get in touch

Open to research collaborations and internships.

joyson.kustiadi@gmail.com