Leanpub Header

Skip to main content

Filters

Category: "Software Architecture"

Software Architecture

  1. The Essence of TDD
    The Essence of TDD
    Design Discovery Through Tests
    Felix Asher

    Your tests pass. Coverage is high. CI is green.So why does the design still feel unsettled?This is an exploration of TDD as a way to discover — not just verify — what actually holds a system together.

  2. The Scaling Playbook

    The Scaling Playbook From WordPress to 1 million orders. One company's 5-year journey through every scaling decision, mistake, and hard-won principle. No code. No fluff. Just architecture thinking.

  3. Winning Big With Small AI

    Timely Relevance: Edge AI is currently undergoing rapid adoption and transformationPractical Focus: Each topic includes concrete business opportunities and implementation strategiesBroad Appeal: Covers both technical and business perspectivesForward-Looking: Includes emerging trends that will remain relevant for yearsCase Study Rich: Plenty of real-world examples from startups and established companies

  4. Engineering Foundations: The Pillars of Modern Software Craftsmanship
    Engineering Foundations: The Pillars of Modern Software Craftsmanship
    Timeless Principles and Modern Practices for Building Systems That Last
    Dmytro Golodiuk

    Engineering Foundations: The Pillars of Modern Software CraftsmanshipTimeless Principles and Modern Practices for Building Systems That Last In an age where AI can write code in seconds, the true craft of software engineering is more critical than ever. This book is a mentor-in-a-book for a new generation of developers – those who want to go beyond automation and master the art of engineering. Starting with the foundational mindset of a system thinker and the core craft of writing clean, testable code, this book walks through the core and advanced pillars of modern software systems – from Lifecycle Management, Security, and Observability to Architecture and Design, Reliability and Resilience, Data and Knowledge Management, and Collaboration and Culture. It then explores how AI-augmented workflows, tools, and mentorship shape the future of engineering. You will learn to use intelligent tools responsibly, not as a crutch but as an amplifier for your own reasoning. Through practical frameworks and real-world patterns, you will discover how to build systems that are not just functional, but also scalable, secure, and deeply understandable. Tools will change, but the principles of thoughtful engineering endure. This is not a coding manual. It's a manifesto for thoughtful engineers who want to build things that endure.

  5. From Monolith to Modules: Refactoring Payment Providers in NestJS
    From Monolith to Modules: Refactoring Payment Providers in NestJS
    A Real-World Guide to Self-Registering Architectures and Cleaner Code
    Oluwakemi Awosile

    Tired of god factories and 200-parameter constructors? In one intense week, I turned a payment provider monolith into modular, self-registering NestJS heaven. This book shows you how without losing your mind (mostly).

  6. Ruby for .NET Developers
    Ruby for .NET Developers
    Composable, Predictable, Testable, Domain-Driven Ruby
    Caleb D. McElrath

    Ruby for .NET Developers helps .NET engineers explore Ruby through different ways of thinking about objects, composition, and expressiveness. It focuses on transferable mental models and real tradeoffs, inviting readers to carry forward what serves them.

  7. From Code to Systems
    From Code to Systems
    A Practical Guide to Architectural Thinking
    Nagendra Gupta

    Phase 0 - Orientation Learning How to Think About DesignBefore we talk about systems, we need to talk about how you think.Most engineers approach design the way they approach code: gather requirements, choose tools, apply patterns, and move forward. This works—until it doesn’t. At some point, the systems you build stop behaving like the code you wrote. Problems emerge that cannot be traced to a single function, service, or decision. When that happens, adding more knowledge does not help. Changing how you reason does.This phase exists to interrupt familiar instincts.Phase 0 is not about teaching you what to design. It is about exposing the assumptions you already carry—about correctness, scale, failure, and simplicity—and showing where they quietly break down. These chapters will feel less concrete than the ones that follow. That is intentional. You cannot reason well about systems until you are comfortable with uncertainty, trade-offs, and incomplete explanations.If you rush through this phase looking for answers, it will feel unsatisfying. If you sit with it, it will change how the rest of the book lands. The goal of Phase 0 is simple: by the time you reach Phase 1, you should no longer be asking, “What framework should I use?” You should be asking, “What kind of problem is this, really?”Chapter 1: What Is System Design (and What It Is Not) A System That Worked YesterdayThe system worked yesterday.The code hadn’t changed. Tests were green. No alerts fired overnight.And yet this morning, requests were timing out.Someone suggested adding more instances. Someone else blamed the database. A third person said, “It works on my machine.”All reasonable guesses. All wrong.By noon, a temporary fix was deployed. By evening, the incident was “resolved.” By next week, it happened again—somewhere else.Nothing was broken. And that was the problem. The Question Nobody AskedAfter incidents like this, teams usually ask familiar questions:Which service caused it?Was it a bug or a configuration issue?Do we need better monitoring?These are safe questions. They have owners. They lead to tickets. The dangerous question is the one nobody asks:What assumption did we design this system around—and when did it stop being true?That question does not map to a single component. It does not have a Jira ticket. It cannot be fixed with a patch.And yet, most system failures quietly begin there. When Code Stops Explaining BehaviorAs a developer, you are trained to reason locally.Input goes in. Logic executes. Output comes out.When something breaks, you look for the line of code responsible.Systems do not behave this way.In systems:Failures emerge from interactionsLatency appears without slow functionsLoad exposes assumptions you forgot you madeEvery component can behave “correctly” while the system misbehaves.This is not an edge case. This is the default state of non-trivial systems. The Moment Code Becomes a SystemThere is a moment—often unnoticed—when local reasoning stops working.The moment when:Understanding one service is no longer enoughFixing one issue creates another elsewhereBehaviour depends on timing, not logicConfidence drops even though competence hasn’tNothing announces this transition. No role change marks it. No diagram captures it cleanly.But once it happens, the rules change.System design begins after this moment. Most teams do not notice this moment. They only feel its consequences

  8. The Architect's Playbook
    The Architect's Playbook
    5 Pillars of Production AI Agent Architecture
    Atef Ataya

    Learn how to build AI agents that actually survive production — with battle-tested patterns for cost control, reliability, and scale.

  9. Designing for Scale
    Designing for Scale
    Arinze Onugha

    Great execution doesn't create scale. Category creation does.Designing for Scale is for Product Managers, founders and builders who are done optimising incremental gains and ready to design systems that compound. Drawing from real-world experience across emerging and mature markets, this book breaks down how products move from 0 → 1 and then from 1 → 100M by fusing product, business model and distribution.This is not a playbook for fast followers. It is for people who want to define what comes next.

  10. Using AI in Real Software Teams - Complete Ebook
    Using AI in Real Software Teams - Complete Ebook
    A Spec-Driven Approach to Safe, Scalable Software Development
    Samarth hathwar
    No Description Available
  11. Code a database in 45 steps (Go)
    Code a database in 45 steps (Go)
    a series of test-driven small coding puzzles
    Lowram Eepson

    This series of test-driven small coding puzzles lets you code a database from scratch (no dependencies).We'll cover KV storage engines, LSM-Tree indexes, SQL, concurrent transactions, ACID, etc.

  12. You Don't Know JSON
    You Don't Know JSON
    Beyond Six Data Types: The Complete Ecosystem
    Dayna Blackwell

    JSON succeeded not because it was better--XML had schemas, namespaces, and 10 years of tooling, but because it understood modularity in ways XML never could. This book deconstructs how a deliberately incomplete format defeated a comprehensive standard, then shows you the production patterns (JSON Schema, JSONB, MessagePack, versioning strategies) that make JSON systems scale from prototype to billions of requests.

  13. The Unicorn CTO
    The Unicorn CTO
    The Complete Guide to Technology Leadership: From Developer to C-Suite Executive
    zia

    This isn't theory from an academic—it's hard-won wisdom from someone who has lived every challenge in this book. ? WHO THIS BOOK IS FOR: - Senior engineers aspiring to CTO or VP Engineering roles- New CTOs (under 2 years) seeking a comprehensive playbook- Experienced CTOs wanting fresh frameworks and validation- Technical founders wearing the CTO hat- Engineering managers planning their executive path

  14. BehindTheStack — A Evolução da Arquitetura da Netflix
    BehindTheStack — A Evolução da Arquitetura da Netflix
    Da sobrevivência do monólito à escala global (Early Access)
    Raphael Silva Fontes

    Pare de copiar padrões de design sem entender os problemas que os criaram. A arquitetura da Netflix não foi desenhada em um quadro branco; ela foi forjada por falhas críticas. Neste livro, mergulhamos nos bastidores técnicos da maior plataforma de streaming do mundo para entender os trade-offs reais por trás dos microsserviços, da resiliência e da escala global. Fugindo do "hype" e focando na engenharia, BehindTheStack disseca como o monólito foi quebrado, como a persistência de dados evoluiu e como a cultura de liberdade e responsabilidade moldou o código. Escrito para Arquitetos, Tech Leads e Engenheiros Sêniores que buscam profundidade além dos tutoriais rasos. Adquira a versão Early Access e acompanhe a escrita deste manual de sobrevivência em escala.

  15. Designing Deterministic Systems with Modern C++
    Designing Deterministic Systems with Modern C++
    Host-First Development on Linux
    Mark E. Wilson

    Learn how to design embedded systems the sane way: on your Linux host, with modern C++, predictable timing, clean interfaces, and no unnecessary complexity.