Archive

1290 posts · Page 58 of 108. ← Blog

Pratik Dhanave · ·6 min read

GraphSAGE — Inductive Learning and Scaling to Big Graphs

The graph convolutional network has two problems that make it impractical for real systems: it can't handle new nodes, and it needs the whole graph in memory at once. GraphSAGE fixes both with one shift in perspective — learn a reusable function that builds a node's embedding from a sample of its neighbors, rather than learning a fixed embedding per node. This is the idea that made GNNs usable on billion-node industrial graphs, and it's why most production GNNs are GraphSAGE-style.

The GCN can't handle new nodes and needs the whole graph in memory. GraphSAGE fixes both: learn a reusable function that builds an embedding from a sample of neighbors, rather than a fixed per-node vector. Inductive learning and neighbor sampling — the ideas that made GNNs work on billion-node industrial graphs.

Pratik Dhanave · ·6 min read

The Structural Type System

TypeScript's type system has two properties that shape everything you do with it: it judges compatibility by structure rather than by name, and it infers types so you rarely have to spell them out. Add the small vocabulary of primitives, literal types, and the special types `any`, `unknown`, and `never`, and you have the foundation the rest of the language builds on.

TypeScript's type system has two properties that shape everything: it judges compatibility by structure rather than name, and it infers types so you rarely spell them out. Add the vocabulary of primitives, literal types, and the special types any, unknown, and never, and you have the foundation the rest of the language builds on.

Pratik Dhanave · ·7 min read

Self-Regulation: Responding, Not Reacting

There's a moment — after the provocation, before your response — that determines almost everything about how an interaction goes. The critical review comment lands, the production system is down, someone dismisses your idea in a meeting, and there's a gap, sometimes only a fraction of a second, before you act. Self-regulation is the skill of using that gap: not suppressing what you feel, but choosing your response instead of firing off the automatic one. It's what separates the reply you'd stand behind from the one you'd regret.

There's a moment — after the provocation, before your response — that determines almost everything about how an interaction goes. Self-regulation is the skill of using that gap: not suppressing what you feel, but choosing your response instead of firing off the automatic one.

Pratik Dhanave · ·12 min read

How LLMs Work, Enough to Build With Them

The working mental model an AI engineer needs — next-token prediction, attention, training, and sampling — without the transformer math, and with every fact tied back to a decision you make in code.

The working mental model an AI engineer needs — next-token prediction, attention at an intuition level, pretraining vs post-training, and sampling — with every fact tied back to a concrete decision you make in code.

Pratik Dhanave · ·7 min read

Idempotency and Full Resumability

The network will time out mid-transfer. The only safe assumption is that every request runs zero, one, or many times — so make "many" behave like "one."

The network times out ambiguously, so every request runs zero, one, or many times. Idempotency keys make many behave like one; full resumability lets a crashed money flow resume from its last committed step.

Pratik Dhanave · ·6 min read

Graph Convolutional Networks — The First Great GNN

The graph convolutional network is the "linear regression" of graph deep learning: the simplest architecture worth knowing, the one that made GNNs practical, and the baseline every other method is compared against. It's message passing with the most natural possible aggregation — average your neighbors — and understanding exactly what it does, and where its simplicity bites, is the foundation for everything more sophisticated.

The GCN is the 'logistic regression' of graph deep learning — message passing with the simplest aggregation (degree-normalized averaging), the strong baseline every method is compared against. Why it shines at semi-supervised node classification (label propagation under homophily), and the limits that motivate GraphSAGE and GAT.

Pratik Dhanave · ·5 min read

Why Put Types on JavaScript

JavaScript runs everywhere and forgives everything — including your mistakes, right up until they reach production. TypeScript adds a static type layer on top of JavaScript that catches those mistakes at compile time, while compiling away to plain JavaScript that runs unchanged. Understanding what TypeScript actually is — a structural type checker that erases at build time — is the foundation for everything else.

JavaScript runs everywhere and forgives everything — including your mistakes, right up until production. TypeScript adds a static type layer that catches them at compile time, then compiles away to plain JavaScript. Understanding what TypeScript actually is — a structural type checker that erases at build time — is the foundation for everything else.

Pratik Dhanave · ·7 min read

Self-Awareness: The Foundation

You cannot manage an emotion you don't know you're having. The frustration that sharpens your tone in a code review, the anxiety that makes you defensive about your design, the resentment that leaks into a message — these steer your behavior whether or not you notice them, and mostly you don't. Self-awareness is the skill of noticing, and it's first for a reason: every other emotional-intelligence skill depends on it. You can't regulate, empathize, or lead if you can't first see what's happening inside you.

You cannot manage an emotion you don't know you're having. The frustration that sharpens your tone in a review, the anxiety that makes you defensive about your design — these steer your behavior whether or not you notice them. Self-awareness is the skill of noticing, and every other EQ skill depends on it.

Pratik Dhanave · ·12 min read

What AI Engineering Is

The opener to a from-scratch series on building applications on top of foundation models in Go — what AI engineering actually is, how it differs from traditional ML and from ordinary software, and why Go is a serious language for the systems around the model.

The opener to a from-scratch AI-engineering-in-Go series: what AI engineering actually is, how building on foundation models differs from traditional ML and from ordinary software, and why Go is a serious language for the systems around the model.

Pratik Dhanave · ·8 min read

Executing Money Flows: Invariants, Reservations, and Overdrafts

A transfer is a state machine with money on the line. Model the states explicitly, reserve funds before you commit, and decide up front what an overdraft even means.

A transfer is a state machine with money on the line. Model the states explicitly, reserve funds before you commit, enforce invariants at every transition, and decide up front what an overdraft even means.