I’ll add my recent push of automated methods for verification or catching errors that seemlessly integrates with popular languages or tools. That’s on top of languages or frameworks that prevent entire classes of errors in distributed systems. These kind of tools keep getting better. They also allow developers to get results with minimal time invested. That seems necessary these days.