$ ls ~/projects
20 projects
-
a multi-step web research agent over the web, Wikipedia, and arXiv - built with LangGraph + LCEL, streams each step in real-time, and grounds every report in sources it actually fetches and reads.
// stack
LangGraph · LCEL · Next.js 14 · Tavily · Jina Reader · Upstash Redis
// links
github ↗ -
a Context Engineering learning project featuring three NPC personas with domain boundaries, long-term memory, and context summarization.
// stack
Alpine.js · Vite · Vercel AI SDK · Express · gpt-tokenizer
// links
github ↗ -
a semantic search app for novels that supports Indonesian-language queries, powered by query expansion, cross-encoder reranking, MMR diversity, and an LLM agent via Vercel AI SDK.
// stack
Supabase · pgvector · Jina Reranker v3 · Vercel AI SDK · Supabase Edge Functions
// links
github ↗ -
a prompt engineering learning project - generates Indonesian business name ideas using structured LLM output, expert persona, and negative instruction patterns.
// stack
Cloudflare Pages · Cloudflare AI Gateway · Express · Vite · Alpine.js
// links
github ↗ -
an end-to-end fine-tuning and deployment project - QLoRA fine-tuning on Qwen2.5 for structured medical output, with layered safety pipeline and LangGraph orchestration.
// stack
Qwen2.5-1.5B · QLoRA · Unsloth · Modal · LangGraph · W&B
// links
github ↗ -
a natural language movie recommendation engine using HyDE + pgvector + Cohere reranking; LLM used only for hypothesis generation and explanation, not selection.
// stack
pgvector · Cohere · Langfuse · RAGAS · SQLAlchemy
// links
github ↗ -
a RAG system for Indonesian documents with hybrid retrieval (BM25 + semantic), contradiction detection between documents, and trust scoring.
// stack
LlamaIndex · Pinecone · BM25 · Jina Reranker v2 · LangSmith
// links
github ↗ -
a growing collection of agentic AI experiments, each shipped with a working web UI and its own eval harness - the focus is measuring whether a pattern (tool use, reflection, multi-agent, long-term memory) actually works, not just demoing the mechanism.
// stack
E2B Code Interpreter · CrewAI · Firecrawl · LangGraph + LangMem · llama.cpp (GGUF)
// links
github ↗ -
a growing collection of post-training experiments on Indonesian NLP tasks - each one fine-tunes a small model (SFT/DPO/GRPO) and compares it against a base and frontier-API baseline on the same held-out set, with objective metrics checked before any LLM-judge score.
// stack
Unsloth · QLoRA · TRL (SFT/DPO/GRPO) · PEFT · HuggingFace Hub
// links
github ↗ -
a growing collection of ops/MLOps projects exploring industry-standard tooling (model serving, Kubernetes-based AIOps, container diagnostics via MCP) through small, self-contained projects - not simplified into toy demos, but not padded with unused tooling either.
// stack
MLflow · BentoML · Kubernetes · LangGraph · n8n · MCP
// links
github ↗ -
a text-to-image and image-to-image retrieval app on Flickr8k using zero-shot CLIP ViT-B/32 embeddings and FAISS - accepts Indonesian queries via automatic translation, and serves images on-demand from the HuggingFace Datasets API with an in-memory LRU cache instead of bulk downloading.
// stack
CLIP ViT-B/32 · FAISS · Helsinki-NLP/opus-mt-id-en · HuggingFace Spaces
// links
github ↗ -
a personal knowledge RAG (second brain) for your own documents - a grounded pipeline of chunking, embedding, FAISS retrieval, Cohere reranking, and a guardrail that blocks low-confidence context before it reaches the LLM; every answer cites its source, and the index is ephemeral per session.
// stack
FAISS · Cohere · HTMX · Alpine.js · Render
// links
github ↗ -
a RAG system for Indonesian news - hybrid retrieval (Qdrant + BM25), cross-encoder reranking, and a guardrail that refuses to summarize (and skips the LLM call entirely) when no article clears the relevance threshold, so every summary stays traceable to its source articles.
// stack
Qdrant · BM25 · bge-reranker-v2-m3 · HuggingFace Inference API
// links
github ↗ -
a dense retrieval QA system for Indonesian history (Wikipedia) - fine-tunes an Indo-specific bi-encoder with hard negative mining and contrastive learning, deployed dense-only via ONNX Runtime for lightweight inference; returns the most relevant paragraph, not an extracted answer.
// stack
ONNX Runtime · all-indo-e5-small-v4 · HuggingFace · numpy
// links
github ↗ -
a hybrid evidence retrieval system for PDFs - combines BM25 (with Sastrawi stemming) and dense FAISS search via min-max fusion to find relevant text chunks for Indonesian-language queries; retrieval only, no fact-checking or claim verification.
// stack
PyMuPDF · Sastrawi · FAISS · BM25 · mark.js
// links
github ↗ -
a semantic search app for 338 Indonesian health articles from Wikipedia - an intentional dense-retrieval baseline without hybrid search, reranking, or fine-tuning, built to isolate and evaluate each stage of the pipeline separately.
// stack
HuggingFace Inference API · sentence-transformers · Alpine.js · HTMX
// links
github ↗ -
a 6-class emotion classifier for Indonesian text (fine-tuned DistilBERT) with an added interpretation layer that explains each prediction in natural language using semantic similarity, not just a label and confidence score.
// stack
DistilBERT · HuggingFace Transformers · multilingual-e5-small · HTMX
// links
github ↗ -
End-to-end machine learning ( time series ) lifecycle demo with DVC, Phoenix and Fly.io.
// stack
DVC · Elixir · Cloudflare R2 · Fly.io · ECharts
// links
github ↗ -
End-to-end machine learning ( classification ) lifecycle demo with MLflow, FastAPI, React, and Fly.io.
// stack
FastAPI · React · MLflow · DagsHub · Fly.io
// links
github ↗ -
End-to-end machine learning ( regression ) lifecycle demo with MLflow, FastAPI, React, and Fly.io.
// stack
FastAPI · React · MLflow · DagsHub · Fly.io
// links
github ↗