Hi, I’m Fadhil 👋
I'm an ML engineer at in Stockholm, working on , , and . Before that, I spent almost five years at in Jakarta building and . I'm originally from Indonesia. Outside work I take photos, make music, and treat coffee and cooking as small experiments.
profile.json1 item{
"name": "Fadhil Mochammad",
"location": "Stockholm, Sweden",
"now": {
"building": "Agentic chatbot and personal assistant",
"learning": "Agent loop and harness engineering",
"reading": "The Book You Wish Your Parents Had Read",
"listening": "Tom Misch",
"brewing": "AeroPress"
}
}
Electrical engineering at ITB in Bandung, then a master’s in machine learning at KTH in Stockholm.
- 2018 — 2020
- M.Sc. Machine Learning
- 2012 — 2016
- B.Sc. Electrical Engineering
edu.json2 items[
{
"degree": "M.Sc. Machine Learning",
"school": "KTH Royal Institute of Technology",
"country": "Sweden",
"years": "2018 — 2020"
},
{
"degree": "B.Sc. Electrical Engineering",
"school": "Institut Teknologi Bandung",
"country": "Indonesia",
"years": "2012 — 2016"
}
]
From a robotics lab in Bandung to machine learning work in Stockholm.
- Sep 2025 — Now
- Machine Learning EngineerAgentic internal knowledge assistant: evaluation architecture, retrieval flow, feedback-triage agent. MLOps for a supply-chain optimization system.
- Dec 2020 — Sep 2025
- Sr. Machine Learning and Experimentation Platform EngineerTechnical lead for the experimentation platform. Built an ML serving engine and SDK, a Kubeflow training platform, and ranking and bandit systems.
- Jun 2020 — Oct 2020
- Machine Learning Engineer InternWorked on a multi-armed bandit for notification optimization: policy, reward definition and offline analysis.
- Dec 2019 — Jun 2020
- Data Scientist InternCompared Bayesian and frequentist models for sales-demand forecasting, on Databricks with PySpark.
- Apr 2019 — Aug 2019
- Data Scientist InternBuilt a recommendation pipeline for maintenance actions on truck diagnostic trouble codes.
- Oct 2018 — Aug 2019
- Full-Stack Web DeveloperBuilt a real-time interactive presentation app for an Ericsson collaboration.
- Apr 2018 — Apr 2019
- AI EngineerLed engineers who built a FaceNet-based face-recognition system and took it to production.
- Aug 2016 — Dec 2017
- Research AssistantDesigned data acquisition for coordinated UAV and ground-robot reconnaissance, integrated with ROS.
exp.json8 items[
{
"role": "Machine Learning Engineer",
"org": "Electrolux",
"place": "Stockholm",
"years": "Sep 2025 — Now"
},
{
"role": "Sr. Machine Learning and Experimentation Platform Engineer",
"org": "Traveloka",
"place": "Jakarta",
"years": "Dec 2020 — Sep 2025"
},
{
"role": "Machine Learning Engineer Intern",
"org": "Spotify",
"place": "Stockholm",
"years": "Jun 2020 — Oct 2020"
},
{
"role": "Data Scientist Intern",
"org": "Electrolux",
"place": "Stockholm",
"years": "Dec 2019 — Jun 2020"
},
{
"role": "Data Scientist Intern",
"org": "Scania",
"place": "Stockholm",
"years": "Apr 2019 — Aug 2019"
},
{
"role": "Full-Stack Web Developer",
"org": "OnTel AB",
"place": "Stockholm",
"years": "Oct 2018 — Aug 2019"
},
{
"role": "AI Engineer",
"org": "Riset.ai",
"place": "Bandung",
"years": "Apr 2018 — Apr 2019"
},
{
"role": "Research Assistant",
"org": "ITB Advanced Robotics Lab",
"place": "Bandung",
"years": "Aug 2016 — Dec 2017"
}
]
Mostly from building the agentic knowledge assistant at Electrolux, plus an LLM experimentation pipeline at Traveloka.
- Selected work
- The agentic assistant serves 6,000 employees a month; I own its evaluation architecture.
- Electrolux
- Traveloka
tool-llms.json1 item{
"toolkit": "Agents & LLMs",
"spotlight": "The agentic assistant serves 6,000 employees a month; I own its evaluation architecture.",
"tools": [
"Microsoft Agent Framework",
"RAG · Azure AI Search · Azure OpenAI",
"Evaluation-driven development",
"Arize · OpenTelemetry tracing",
"LLM experimentation pipeline"
],
"related": [
"What I learned tuning retrieval for a multilingual RAG chatbot",
"Evaluating an agent honestly",
"An agent that triages its own feedback",
"Agents",
"Evaluation-driven development",
"Feedback triage"
]
}
Most of this comes from leading Traveloka's experimentation platform; the modelling side is from a KTH thesis and internships at Spotify, Electrolux and Scania.
- Selected work
- Modernization supported 800+ experiments a year across 30+ teams, cut cloud costs 95% year over year, and reduced API latency 90%.
- Traveloka
- Traveloka · Spotify
- KTH · Electrolux
- Electrolux
- Traveloka · Electrolux
- Scania
- KTH
tool-experimentation.json1 item{
"toolkit": "Data science",
"spotlight": "Modernization supported 800+ experiments a year across 30+ teams, cut cloud costs 95% year over year, and reduced API latency 90%.",
"tools": [
"A/B testing platform",
"Multi-armed bandits · Thompson sampling",
"Metric semantic layer",
"Ranking · CatBoost",
"Forecasting · GAM · LASSO",
"Bayesian and frequentist models",
"SQL · BigQuery · PySpark · Databricks",
"Recommendation pipeline",
"Sentiment analysis · NLP"
],
"related": [
"Deconstructing PlanOut: a coin toss you can repeat",
"Bandits in production: Thompson sampling, explained with coupons",
"One definition of conversion",
"A/B testing",
"Metric semantic layer",
"Multi-armed bandits"
]
}
The plumbing behind serving, training and experimentation, on Google Cloud at Traveloka and on Azure at Electrolux.
- Selected work
- Own deployment, CI/CD, monitoring and operations for a production supply-chain optimizer.
- Traveloka · Electrolux
- Traveloka
- Electrolux
tool-ml-platform.json1 item{
"toolkit": "ML platform",
"spotlight": "Own deployment, CI/CD, monitoring and operations for a production supply-chain optimizer.",
"tools": [
"Python",
"Go · Redis",
"Kubernetes · Kubeflow Pipelines",
"Terraform",
"Argo CD · GitHub Actions",
"Prometheus · Grafana · Datadog",
"Google Cloud",
"Azure · AKS",
"MLflow experiment tracking"
],
"related": [
"ETags: how an API tells you the data changed under you",
"An agent that triages its own feedback",
"A serving SDK data scientists actually use",
"Distributed traces",
"Kubernetes",
"Model serving"
]
}
Services and pipelines built to stay fast and correct under load, from student projects to production at Traveloka.
- Selected work
- An experiment assignment service sustained 50,000+ requests per second in a 30-minute load test, with P95 under 100 ms.
- Traveloka
- KTH
- OnTel AB
tool-systems.json1 item{
"toolkit": "System design",
"spotlight": "An experiment assignment service sustained 50,000+ requests per second in a 30-minute load test, with P95 under 100 ms.",
"tools": [
"Go worker pools · high-throughput services",
"Kafka · Spark Streaming · Cassandra",
"Real-time web app",
"Latency budgets · P95 monitoring"
],
"related": [
"ETags: how an API tells you the data changed under you",
"Deconstructing PlanOut: a coin toss you can repeat",
"SSE on Kubernetes: what a service mesh fixes, and what it doesn't",
"Go worker pools",
"Observability",
"P95 latency"
]
}
Projects with public code, the latest posts and research papers.
- Projects
- Projects with public codemore
- Latest posts
- ETags: how an API tells you the data changed under you
- What I learned tuning retrieval for a multilingual RAG chatbot
- Deconstructing PlanOut: a coin toss you can repeat
- Publications
- FPGA implementation of template matching using binary Sum of Absolute Difference6th International Conference on System Engineering and TechnologyDOI: 10.1109/icsengt.2016.7849615
- Implementation of hazardous chemical gas monitoring system using unmanned aerial vehicle (UAV)6th International Conference on System Engineering and TechnologyDOI: 10.1109/icsengt.2016.7849643
work.json1 item{
"projects": "Projects with public code",
"latest_posts": [
"ETags: how an API tells you the data changed under you",
"What I learned tuning retrieval for a multilingual RAG chatbot",
"Deconstructing PlanOut: a coin toss you can repeat"
],
"publications": [
"FPGA implementation of template matching using binary Sum of Absolute Difference",
"Implementation of hazardous chemical gas monitoring system using unmanned aerial vehicle (UAV)"
]
}
Happy to talk about agents, evaluation or experimentation.
- github
- github.com/fadhilmch
- in/fadhilmch
contact.json1 item{
"email": "fadhil.mochammad1095@gmail.com",
"github": "github.com/fadhilmch",
"linkedin": "in/fadhilmch"
}
2,677 contributions in the past year
a note is a day with activity · public repos only · updated 17 Oct 2026