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, w…
The system design interview is considered to be the most complex and most difficult technical job interview by many. This book provides a step-by-step framework on how to tackle a system design questi…
Shelve System Design Interview – An insider's guide
Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings i…
Shelve Building Microservices: Designing Fine-Grained Systems
Although salary surveys worldwide regularly identify software architect as one of the top ten best jobs, no decent guides exist to help developers become architects. Until now. This practical guide pr…
Shelve Fundamentals of Software Architecture: An Engineering Approach
Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code…
Shelve Clean Code: A Handbook of Agile Software Craftsmanship
Building upon the success of best-sellers The Clean Coder and Clean Code, legendary software craftsman Robert C. "Uncle Bob" Martin shows how to bring greater professionalism and discipline to applica…
At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire),…
For years, companies have rewarded their most effective engineers with management positions. But treating management as the default path for an engineer with leadership ability doesn't serve the indus…
Shelve The Staff Engineer's Path: A Guide for Individual Contributors Navigating Growth and Change
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previo…
Shelve Design Patterns: Elements of Reusable Object-Oriented Software
This book addresses the topic of software how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduc…
A comprehensive update of the leading algorithms text, with new material on matchings in bipartite graphs, online algorithms, machine learning, and other topics.
Data engineering has grown rapidly in the past decade, leaving many software engineers, data scientists, and analysts looking for a comprehensive view of this practice. With this practical book, you'l…
Shelve Fundamentals of Data Engineering: Plan and Build Robust Data Systems
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is n…
Shelve Domain-Driven Design: Tackling Complexity in the Heart of Software
The approach to and understanding of software engineering at Google is unlike any other company. With this book, you'll get a candid and insightful look at how software is constructed and maintained b…
Shelve Software Engineering at Google: Lessons Learned from Programming Over Time
Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a …
Shelve The Pragmatic Programmer: From Journeyman to Master
Since this Jolt-award winning classic was last updated in 2008 (shortly after Java 6 was released), Java has changed dramatically. The principal enhancement in Java 8 was the addition of functional pr…
Machine learning systems are both complex and unique. Complex because they consist of many different components and involve many different stakeholders. Unique because they're data dependent, with dat…
Shelve Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications
There are no easy decisions in software architecture. Instead, there are many hard parts--difficult problems or issues with no best practices--that force you to choose among various compromises. With …
Shelve Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This practica…
Shelve Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers …
Shelve The Mythical Man-Month: Essays on Software Engineering
At most technology companies, you’ll reach Senior Software Engineer, the career level for software engineers, in five to eight years. At that career level, you’ll no longer be required to work towards…
Shelve Staff Engineer: Leadership Beyond the Management Track
An algorithm is nothing more than a step-by-step procedure for solving a problem. The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to …
Shelve Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
In my first few years as a developer I assumed that hard work was all I needed. Then I was passed over for a promotion and my manager couldn’t give me feedback on what areas to improve, so I could get…
Shelve The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups
Managing people is difficult wherever you work, but the tech industry as a whole is pretty bad at it. Tech companies in general lack the experience, tools, texts, and frameworks to do it well. And the…
Shelve The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides…
The overwhelming majority of a software system's lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the desig…
Shelve Site Reliability Engineering: How Google Runs Production Systems
This book is meant to help the reader learn how to program in C. It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a wor…
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There a…
Shelve Structure and Interpretation of Computer Programs
Python's simplicity lets you become productive quickly, but this often means you aren't using everything it has to offer. With this hands-on guide, you'll learn how to write effective, idiomatic Pytho…
Shelve Fluent Python: Clear, Concise, and Effective Programming
Recent breakthroughs in AI have not only increased demand for AI products, they've also lowered the barriers to entry for those who want to build AI products. The model-as-a-service approach has trans…
Shelve AI Engineering: Building Applications with Foundation Models