Writing meaningful names and following code style Following code style guidelines Keeping methods, classes, and files small Minimizing cyclomatic complexity Organizing code by the actor it belongs to Keeping tests independent and fast