We have come a long way since we talked about crunch mode and how to run a meeting in . Using feature branches, triaging issues, designing software so that it can be tested—good developers do all of these things, and learning how to do them yourself will help you get more done in less time and with less pain.

But good developers know that programming well isn't enough: if you work yourself to exhaustion, build the wrong thing, or shut people out of discussion, you project may fail despite all the code you write. You can learn how to run meetings, share ideas, base your opinions on the best available research, and protect people's rights in exactly the same way that you can learn how to use a debugger; I hope you will choose to do so.

I also hope that your journey won't stop here. Pervasive surveillance, online harassment, radicalization, and the concentration of wealth and power in a few unaccountable hands (or algorithms): our industry has fueled them all, and being a programmer won't make you immune to the fallout. None of us can fix this alone; if you have learned a little from this book about how to work well with others, I hope you will choose to use those skills to make the world a slightly better place. If you choose to do so, may help.

Contributions to this book are welcome, from errata and minor improvements to entirely new sections and chapters, and everyone whose work is incorporated will be acknowledged. If you'd like to help, please file an issue or submit a pull request in our GitHub repository, or see the contributors' guide () for more information.