Archive

1290 posts · Page 74 of 108. ← Blog

Pratik Dhanave · ·7 min read

Machine Learning for Forecasting — Features Over Time

When classical methods aren't enough — many related series, rich external drivers, complex nonlinear patterns — you can bring the full machine-learning toolkit to forecasting. But you can't just feed a time series to a standard model; you have to reframe forecasting as a supervised learning problem through the right features. This post is about that reframing, where ML genuinely helps, and the time-specific traps that make it easy to get wrong.

When classical isn't enough — many series, rich drivers, complex patterns — reframe forecasting as supervised learning via lag, rolling, calendar, and driver features, then train (often) gradient-boosted trees. Where ML beats classical (global models across many series), and the time-specific traps: feature leakage, awkward multi-step, and trees that can't extrapolate trend.

Pratik Dhanave · ·8 min read

Product Marketing

There's a role that sits exactly on the seam between engineering and the market — translating what was built into what customers understand and want — and it's the one technical companies most often do badly or not at all. Product marketing is that bridge. When it's missing, you get the classic technical-company failure: a genuinely great product described in terms only its builders understand, launched into silence, losing to a worse product that explained itself better. Product marketing is how good engineering becomes a product the market actually gets.

There's a role that sits exactly on the seam between engineering and the market — translating what was built into what customers understand and want — and it's the one technical companies most often do badly or not at all. Product marketing is that bridge, and its absence is why great products launch into silence.

Pratik Dhanave · ·13 min read

Structs, Embedding, and Tags

How Go builds aggregate types from value semantics up — why a struct is a copy, when it stops being comparable, what embedding actually promotes (and what it deliberately doesn't), and how a backtick string in a field definition ends up steering `encoding/json`.

How Go builds aggregate types from value semantics up — why a struct is a copy, when it stops being comparable, what embedding actually promotes (and what it deliberately doesn't), and how a backtick string...