Technical writing on decisions made, tradeoffs accepted, and things that shipped.

Weaver was built as a local-first translation workspace for Japanese light novels, not as a thin wrapper around an LLM API.

This post explains the two-stage LLM pipeline behind SahamLens: local summarisation first, remote analysis second. The goal was to add AI-assisted stock research without sending portfolio positions, trade history, or personal investment context to the model API.

DuckDB turned out to be a better fit than SQLite for SahamLens because the core workload is analytical: scanning historical market data, computing indicators, and preparing research outputs locally.