TextAttack — Framework for generating adversarial examples for NLP models. (Paper) (via The Data Exchange)Measuring Developer Productivity — There is no useful measure that operates at a finer grain than “tasks multiplied by complexity.” Measuring commits, lines of code, or hours spent coding, as some tools do, is no more useful at a team scale than it is at an individual scale. There simply is no relation between the number of code artifacts a team produces, or the amount of time they spend on them, and the value of their contributions. When engineering managers gather in the hotel bar after the conference day ends, this is one of the subjects they will debate endlessly.Legacy Code — All the things I wish I’d known twenty years ago. The top-level bullet-points: (1) Writing code isn’t the limiting factor; (2) Start with “why”; (3) Reduce the feedback loop; (4) Make people collaborate; (5) Different strategies to approach Legacy Code.Distributed Systems Reading List — I often argue that the toughest thing about distributed systems is changing the way you think. Here is a collection of material I’ve found useful for motivating these changes.