Lambert Linๆž—

โ€œAgarwood Technologyโ€ (2025โ€“2026)

fund infrastructure ยท founding engineer, sole developer

I joined Agarwood in March 2025 as its only engineer and stayed until June 2026. The investment team ran several strategies across a crypto exchange, Interactive Brokers and an external high-frequency mandate. The first system I built there was the fund management dashboard: from the first commit in August 2025 to production โ€” Next.js and Supabase, a Node sync service under PM2 โ€” designed, deployed and operated by me.

Every 60 seconds the service pulls each strategy's value from the exchange and broker APIs, writes a NAV snapshot, and pushes the change to open dashboards over server-sent events. The accounting is share-based: deposits, withdrawals, dividends and transfers are cash-flow rows; net invested, shares outstanding, NAV and PnL are derived from them, and account-level NAV and return roll up from the strategies. Investors have their own accounts and reports; every manual change lands in an audit log. The team looked at it every day, which is the only metric of a dashboard I trust.

The hard part was never the interface. It was keeping a ledger correct while people and three data sources write to it. The rules I ended up with came from incidents. Money to two decimals and NAV to four, rounded in the application and enforced again by database triggers, because a 0.001 disagreement is a reconciliation you never finish. One write path for NAV snapshots, with the 16:00 Hong Kong lock implemented once. A failing source keeps its last value rather than writing zero, because a stale number is a delay and a wrong number is an incident. One strategy's NAV once went from 0.88 to 0.52 because manual SQL changed its capital without changing its shares โ€” after which "share count moves with capital" became a rule with a query attached.

In August 2026 I extracted what was reusable into agarwood-fund-kit: the NAV and share calculation core, the schema with its triggers, the sync skeleton, the Interactive Brokers layer, and the rules written down as documentation, with ninety-odd unit tests and no fund-specific values โ€” every account, rate and host is a parameter. It is the part of the work that can be read.

Around the dashboard: Research-OS, a Python and PostgreSQL rule engine that turns the analysts' dollar-liquidity, macro, US-equity and BTC models into scored indicators โ€” sixty-odd of them โ€” replacing a manual weekly scoring pass; and, with the fund's research team, six investment-research agents as Claude Code plugins โ€” daily briefing, earnings, deep research, sector, idea, memo โ€” with ten research skills, six data connectors including Lark documents and bots, and a PR-gated knowledge base behind them. The agents were co-developed; everything else on this page I built alone.