Archive

1046 posts · Page 56 of 88. ← Blog

Pratik Dhanave · ·5 min read

Runtime & Events in ADK: The Runner, the Invocation, and the Event Stream

How an agent actually runs — a Runner drives an invocation and hands you back a stream of events, not a single answer.

How ADK runs an agent: the Runner drives an invocation that yields a stream of Event objects — content, tool calls, state deltas, control signals. The event loop explains streaming, callbacks, and state.

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...