Books I've read and enjoyed
The Unix Programming Environment
Covers lots of fundamental Unix conventions and the intents behind them.
I <3 Logs
Making Reliable Distributed Systems in the Presence of Software Errors
A Common-Semse Guide to Data Structures and Algorithms, Second Edition
A modern classic and must read for new and experienced developers alike.
Refactoring UI
Great for devs who want to make UI's with practical chique. Very concise with great visuals albeit more on the expensive side.
Learn Functional Programming with Elixir
Elixir's brand of FP is very approachable, and the concurrency model has a great deal of practical applications in webdev.
Concurrent Data Processing in Elixir
Great followup to the above that primarily focuses on scaling data pipelines with GenStage
.
The Go Programming Language
Does a great job introducing Go's concurrency model and explaining its idiomatic conventions. Hopefully it gets a second edition someday.
Distributed Services with Go
Great for taking Go's concurrency model beyond a single instance/machine.
Books I haven't finished (list of shame)
Metaprogramming Elixir
I haven't messed with macros and code as data a lot, and my mind often bends trying to reason about them. Although easily abused, the right macros in the right places make a tremendous difference.
Genetic Algorithms in Elixir
Started reading this briefly but couldn't finish it due to other obligations. Genetic algorithms are an amazing and relatively intuitive way to solve several problems that traditional algorithms can't.
Pro Git
Like most other devs, I have my porcelains and workflows that allow me to be productive in git without breaking things. I think a fuller understanding of git would allow me to take full advantage of all the features git has to offer.