Practice
Data Structures and Algorithms
Machine Coding Round (LLD)
System Design & Architecture (HLD)
Frontend UI Machine Coding
Resources
Career Advice and Roadmaps
Data Structures and Algorithms
Machine Coding Round (LLD)
System Design & Architecture (HLD)
Backend Development
Frontend Development
Project Ideas for Software Developers
Core Computer Science
Companies
SDE Jobs & Internships
Interview Questions
Compare Companies
IDE
Online IDE
Collaborative IDE

Backend Engineering Book Recommendations by Razorpay Engineering

Team workat.tech
Team workat.tech
Disclaimer: This article was written few years ago and may no longer be relevant as software engineering has changed a lot in the last few years. This is what may be more relevant now: Future of Software Engineering - Gaurav Chandak

Getting vague abstract feedback about your career development or just feeling stuck?

Razorpay Engineering team has curated some of the favorite engineering books amongst Razorpay backend engineers.

The books have been categorized based on the following career stages:

  • Junior Engineers
  • Mid-level Engineers
  • Mid-Senior Engineers
  • Senior Engineers

Let's take a look at the recommendations.

Junior Engineers

Clean Code by Robert C. Martin (Uncle Bob)

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. But it doesn’t have to be that way.

Noted software expert Robert C. Martin, presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship.

Clean Code is divided into three parts.

  • The first describes the principles, patterns, and practices of writing clean code.
  • The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code―of transforming a code base that has some problems into one that is sound and efficient.
  • The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

You can read a summary of the Clean Code book in this series of articles.

Head First Design Patterns by Eric Freeman, Elisabeth Robson

At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem.

Head First Design Patterns shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software.

By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.

Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four)

The book starts by describing what patterns are and how they can help you design object-oriented software. Then it goes on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems.

With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.

Each pattern describes the circumstances in which it is applicable when it can be applied in view of other design constraints and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages.

Head First Series (for your programming language)

Head First is a series of introductory instructional books on many topics, published by O'Reilly Media. It stresses an unorthodox, visually intensive, reader-involving combination of puzzles, jokes, nonstandard design and layout, and an engaging, conversational style to immerse the reader in a given topic.

It is recommended to go through this book for your programming language.

Mid-level Engineers

Code Complete (2nd Edition) - Steve McConnell

Widely considered one of the best practical guides to programming, Steve McConnell’s code complete has been helping developers write better software for more than a decade.

Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance.

No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking—and help you build the highest quality code.

Pragmatic Programmer - David Thomas & Andrew Hunt

The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users.

It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.

Building Microservices by Sam Newman

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 its own set of headaches.

With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures.

Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You’ll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.

Java Concurrency in Practice by Brian Goetz

Java Concurrency in Practice is a book that helps practicing developers, who wish to understand the concept of concurrency and learn its tools better.

It is one of the means of understanding concurrency and its related tools in Java for developers.

If you prefer any other language, find the best book on concurrency for your preferred programming language.

Effective Engineer by Edmond L

The most effective engineers - the ones who have risen to become distinguished engineers and leaders at their companies - can produce 10 times the impact of other engineers, but they're not working 10 times the hours.

They've internalized a mindset that took the author years of trial and error to figure out. The author shares that mindset with the reader - along with hundreds of actionable techniques and proven habits - so that the reader can shortcut those years.

The book is designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career.

Mid-Senior Engineers

Implementing Domain-Driven Design - Vaughn Vernon

Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools.

Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.

The book will help you reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.

Accelerate: The Science of Lean Software and DevOps by Jez Humble, Gene Kim, Nicole Forsgren, etc

Through four years of groundbreaking research, the authors set out to find a way to measure software delivery performance and what drives it using rigorous statistical methods.

This book presents both the findings and the science behind that research, making the information accessible for readers to apply in their own organizations. Readers will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance. This book is ideal for management at every level.

Designing Data-Intensive Applications - 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.

Senior Engineers

Google Site Reliability Engineering (SRE) - Betsy Beyer, Chris Jones, etc

In this collection of essays and articles, key members of Google’s Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You’ll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient—lessons directly applicable to your organization.

This book is divided into four sections:

  • Introduction—Learn what site reliability engineering is and why it differs from conventional IT industry practices
  • Principles—Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)
  • Practices—Understand the theory and practice of an SRE’s day-to-day work: building and operating large distributed computing systems
  • Management—Explore Google's best practices for training, communication, and meetings that your organization can use

Chaos Engineering: System Resiliency in Practice - Casey Rosenthal & Nora Jones

As more companies move toward microservices and other distributed technologies, the complexity of these systems increases. You can't remove the complexity, but through Chaos Engineering you can discover vulnerabilities and prevent outages before they impact your customers.

This practical guide shows engineers how to navigate complex systems while optimizing to meet business goals. Two of the field's prominent figures, Casey Rosenthal and Nora Jones, pioneered the discipline while working together at Netflix.

In this book, they expound on the what, how, and why of Chaos Engineering while facilitating a conversation from practitioners across industries. Many chapters are written by contributing authors to widen the perspective across verticals within (and beyond) the software industry.

Team Topologies: Organizing Business and Technology Teams for Fast Flow - Manuel Pais and Matthew Skelton

Effective software teams are essential for any organization to deliver value continuously and sustainably. But how do you build the best team organization for your specific goals, culture, and needs?

Team Topologies is a practical, step-by-step, adaptive model for organizational design and team interaction based on four fundamental team types and three team interaction patterns. It is a model that treats teams as the fundamental means of delivery, where team structures and communication pathways are able to evolve with technological and organizational maturity.

Database Internals: A Deep Dive into How Distributed Data Systems Work - Alex Petrov

When it comes to choosing, using, and maintaining a database, understanding its internals is essential. But with so many distributed databases and tools available today, it’s often difficult to understand what each one offers and how they differ.

With this practical guide, Alex Petrov guides developers through the concepts behind modern database and storage engine internals. Throughout the book, you’ll explore relevant material gleaned from numerous books, papers, blog posts, and the source code of several open-source databases.

You’ll discover that the most significant distinctions among many modern databases reside in subsystems that determine how storage is organized and how data is distributed.

---

We hope that you liked these recommendations. These recommendations were initially published by Razorpay Engineering on Twitter and have been expanded to this article by the workat.tech team.

You can find best practices, article recommendations, and other awesome resources in our resources section.

Team workat.tech
Team workat.tech
workat.tech is a companion for candidates in the job search process.
Related Content
Best Engineering Blogs/Articles/Videos for System Design
Introduction to Clean Code and Software Design Principles
SOLID Design Principles | Software Design Principles | Uncle Bob
SDE Bootcamp - Become a software engineer at a product-based company
Practice Data Structures & Algorithms
Learning Resources
Interview Prep Resources
Blog
  • Career Advice and Roadmaps
  • Data Structures & Algorithms
  • Machine Coding Round (LLD)
  • System Design & Architecture
  • Backend Development
  • Frontend Development
  • Awesome Project Ideas
  • Core Computer Science
Practice Questions
  • Machine Coding (LLD) Questions
  • System Design (HLD) Questions
  • Topic-wise DSA Questions
  • Company-wise DSA Questions
  • DSA Sheets (Curated Lists)
  • JavaScript Interview Questions
  • Frontend UI Machine Coding Questions
Online Compilers (IDE)
  • Online Java Compiler
  • Online C++ Compiler
  • Online C Compiler
  • Online Python Compiler
  • Online JavaScript Compiler
Topic-wise Problems
  • Dynamic Programming Interview Questions
  • Linked List Interview Questions
  • Graph Interview Questions
  • Backtracking Interview Questions
  • Arrays Interview Questions
  • Trees Interview Questions
Company-wise Problems
  • Amazon Interview Questions
  • Microsoft Interview Questions
  • Google Interview Questions
  • Flipkart Interview Questions
  • Adobe Interview Questions
  • Facebook Interview Questions
DSA Sheets (Curated Lists)
  • Top Interview Questions
  • FAANG Interview Questions
  • Most Asked Interview Questions
  • 6 month DSA Practice Sheet
  • 3 month DSA Practice Sheet
  • Last minute DSA Practice Sheet