Books I Read

Programming Erlang: Software for...
A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same...
Erlang, Programming Joe Armstrong
Designing for Scalability with...
If you need to build a scalable, fault tolerant system with requirements for high availability, discover why the Erlang/OTP platform...
Erlang, Scalability Francesco Cesarini, Steve Vinovski
Domain Modeling Made Functional:...
You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is...
Software Design, Software Engineering Scott Wlaschin
The Art and Science...
In The Art and Science of Java, Stanford professor and well-known leader in CS Education Eric Roberts emphasizes the student-friendly exposition that...
Java, Programming Eric S. Roberts
Design Patterns: Elements of...
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and...
Software Engineering Erich Gamma, Ralph Johnson, John Vlissides, Richard Helm
The Algorithm Design Manual
"My absolute favorite for this kind of interview preparation is Steven Skiena’s The Algorithm Design Manual. More than any other...
Algorithms Steven S. Skiena
The Art of Scalability:...
The Comprehensive, Proven Approach to IT Scalability–Updated with New Strategies, Technologies, and Case Studies   In The Art of Scalability, Second...
Scalability Martin L. Abbott, Michael T. Fisher
Web Application Security: Exploitation...
While many resources for network and IT security are available, detailed knowledge regarding modern web application security has been lacking—until...
Computer Security Andrew Hoffman
Clean Architecture
By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system....
Software Design, Software Engineering Robert C. Martin
A Philosophy of Software...
This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and...
Software Design, Software Engineering John Ousterhout