Churn is a dirty word in product management. It is also an increasingly important fact of life in today’s online business environment.

If a PUT can create a resource, why do I use POST? Which is better for updating, PUT or PATCH? It’s time to dive into the HTTP specification and find out what is really going on.

In order to rigorously understand C, we must also understand the assembly that our C compiler generates.

To design the best UX, pay attention to what users do, not what they say. Self-reported claims are unreliable, as are user speculations about future behavior. Users do not know what they want.

At the first sight, garbage collection should be dealing with what the name suggests – finding and throwing away the garbage. In reality it is doing exactly the opposite. Garbage Collection is tracking down all the objects which are still used and marks the rest as garbage.

Between two extrinsically identical algorithms, the one that can be expressed - or implemented, as it were - with less characters is fundamentally simpler in the context of the problem domain.

Though the jQuery Validation plugin can make your life easier, you’ll still encounter the occasional hiccup. Have you ever crunched out line after line of beautiful code, feeling great, only to test and find your .validate() function isn’t working? It can be pretty exasperating.

Perhaps the best known of all the laws is Brook's Law. No discussion of software teams can go very far before Brooks' Law is mentioned: "Adding manpower to a late software project makes it later."