Book mentions in this thread

  • Votes: 408

    Clean Code

    by Robert C. Martin

    Looks at the principles and clean code, includes case studies showcasing the practices of writing clean code, and contains a list of heuristics and "smells" accumulated from the process of writing clean code.
  • Votes: 407

    Domain-Driven Design

    by Eric Evans

  • Votes: 406

    Head First Design Patterns

    by Eric Freeman

    Using research in neurobiology, cognitive science and learning theory, this text loads patterns into your brain in a way that lets you put them to work immediately, makes you better at solving software design problems, and improves your ability to speak the language of patterns with others on your team.
  • Votes: 406

    A Philosophy of Software Design, 2nd Edition

    by John Ousterhout

  • Votes: 406

    System Design Interview – An Insider's Guide

    by Alex Xu

  • Votes: 5

    Right Here Right Now

    by Amy G. Oden

  • Votes: 3

    Designing Data-Intensive Applications

    by Martin Kleppmann

    Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords? In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures
  • Votes: 3

    Reactive Design Patterns

    by Roland Kuhn Dr.

  • Votes: 1

    Modern Software Engineering

    by David Farley