Article note: Oh neat. I've always liked AVRs, and still use the ATmega32uN parts as USB interfaces pretty often, didn't know there were any new products in the family.
Give someone state and they’ll have a bug one day, but teach them how to represent state in two separate locations that have to be kept in sync and they’ll have bugs for a lifetime