Computer Science & Programming

  • Algorithm Design Manual - Steven S. Skiena

  • Clean Architecture - Robert C. Martin

  • Clean Code - Robert C. Martin

  • Design Patterns - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

  • Designing Data-Intensive Applications - Martin Kleppmann

  • Effective Java - Joshua Bloch

  • Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

  • Java Concurrency in Practice - Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea

  • Object Oriented Software Construction - Bertrand Meyer

  • Patterns of Distributed Systems - Unmesh Joshi

  • Pragmatic Programmer - Andrew Hunt, David Thomas

  • Refactoring - Martin Fowler

  • Structure and Interpretation of Computer Programs - Harold Abelson, Gerald Jay Sussman, Julie Sussman

Leadership & Personal Development

  • How to Win Friends and Influence People - Dale Carnegie

  • The Five Dysfunctions of a Team - Patrick Lencioni