March 29, 2024
Updated April 14, 2025
17 minute read
Backend Developer: Building the Engine of the Digital World
Backend development forms the invisible backbone of the websites and applications we use daily. It encompasses the server-side logic, databases, and Application Programming Interfaces (APIs) that power the user-facing frontend. Think of it as the engine of a car or the complex systems running behind the scenes in a theater – essential for the show, but hidden from the audience.
Working as a backend developer involves designing, building, and maintaining these complex systems. It’s a field that requires logical thinking, problem-solving skills, and a deep understanding of how software components interact. If you enjoy dissecting problems, working with data, and building the foundations that make digital experiences possible, a career in backend development could be a rewarding path.
Introduction to Backend Development
What is Backend Development?
Backend development refers to the work that happens behind the scenes of a software application. While the frontend deals with what users see and interact with (like buttons, menus, and text), the backend handles everything else. This includes managing data, processing user requests, and ensuring the application runs smoothly and securely.
rzpaq7|
Find a path to becoming a Backend Developer. Learn more at:
OpenCourser.com/career/rzpaq7/backend
Reading list
We've selected some books
that we think will supplement your
learning. Use these to
develop background knowledge, enrich your coursework, and gain a
deeper understanding of the topics covered in
Backend Developer.
This official documentation from the Prisma team provides a comprehensive reference for Prisma's features and usage.
Nurkiewicz and Netflix RxJava creator Ben Christensen authored the definitive guide to Observable streams, functional operators (flatMap, zip, debounce), schedulers, and reactive backpressure control. Its mental model transfers across the entire ReactiveX family.
Is widely considered the definitive guide to pytest. It provides a comprehensive introduction to the framework, covering its core features like simple asserts, fixtures, parametrization, and plugins. It's suitable for gaining a broad understanding and also serves as a valuable reference for specific features. The second edition is updated to reflect changes in Python and pytest.
Co-authored by Reactive Manifesto co-author Roland Kuhn, Brian Hanafee, and Jamie Allen, this landmark Manning text translates responsive, resilient, elastic, and message-driven ideals into concrete circuit-breaker, bulkhead, and flow-control patterns.
Long walks through building non-blocking JVM services with Project Reactor, Spring WebFlux, and RSocket, detailing backpressure, reactive data access, and resilient microservice integration.
Escoffier and Finnigan demystify non-blocking event loops, Mutiny reactive types (Uni and Multi), asynchronous Kafka messaging, and backpressure negotiation in modern cloud-native Java services.
Delves into making your pytest usage more efficient and scalable as your test suite grows. It explores patterns and techniques for writing effective tests, managing dependencies with fixtures, and leveraging pytest's advanced features. It's suitable for those who have a basic understanding of pytest and want to deepen their knowledge and improve their testing practices.
While not exclusively about pytest, this book uses a practical, project-based approach to teach Test-Driven Development (TDD) in Python. It covers essential testing concepts and frameworks, including some that can be used with or alongside pytest, such as Selenium and Mock. It's highly recommended for understanding the 'why' behind testing and TDD, which is crucial context for using a framework like pytest effectively. The book is considered a classic in the Python testing community.
Mansilla teaches JavaScript developers how to treat DOM events, WebSockets, and AJAX responses as composable Observable sequences, eliminating callback pyramids and mutable state race conditions.
An in-depth look at the popular Hibernate framework, covering advanced techniques and optimization strategies.
Blackheath and Jones clarify true denotational Functional Reactive Programming—distinguishing continuous time-varying Cell behaviors from discrete Stream events—and demonstrate how composition eliminates listener leaks.
Aims to take your pytest skills to the next level, covering advanced topics such as customizing test collection, using hooks, and developing plugins. It's ideal for users who are already comfortable with the basics of pytest and want to master its more powerful and flexible features for complex testing scenarios. It's a good resource for diving into contemporary and advanced pytest usage.
Project Reactor committer Oleh Dokuka and Igor Lozynskyi unpack the Reactive Streams specification (Publisher, Subscriber, Subscription, Processor), marble diagrams, cold vs. hot publishers, and reactive testing with StepVerifier.
Updated by Kotlin team authors, this second edition unpacks structured concurrency, coroutines, and reactive Flow streams for building responsive, non-blocking JVM and multiplatform applications.
Offers a concise introduction to pytest, explaining not just how to use its features but also their purpose. It's a great starting point for beginners who want to quickly grasp the main concepts and pragmatic use of pytest for general testing needs. It covers basic tests, assertions, command line arguments, markers, parametrization, fixtures, and popular plugins.
Koutnik walks frontend developers through marble testing, multicasting with Subjects, switchMap cancellation for typeahead search, and reactive canvas animations.
Mishali, Pillet, and Todorov explore Apple's native Combine reactive framework, covering Publishers, Subscribers, transformation and time-manipulation operators, custom backpressure demand, and SwiftUI bindings.
Moskała dissects Kotlin coroutines and Flow internals, explaining structured concurrency, cold and hot reactive streams, backpressure, and cancellation propagation for responsive JVM and Android systems.
Covers Entity Framework Core, an ORM for .NET developers, providing detailed explanations and examples.
Collection of recipes for solving common problems with Project Reactor.
Is specifically aimed at Python developers who want to adopt Test-Driven Development principles. It provides a solid understanding of TDD, a methodology that pairs well with pytest. While it might cover other testing tools, its focus on TDD provides an excellent foundation for leveraging pytest effectively within a TDD workflow.
Posa combines Akka Actors, Akka Streams, Play Framework, and RxScala to build event-sourced, non-blocking microservices that scale elastically under bursty workloads.
Focuses on using Prisma with Node.js and Next.js to build real-world web applications.
Provides a practical guide to unit test automation in Python, covering various libraries including pytest, unittest, and nose2. It helps in understanding the core concepts of software testing and their implementation in Python 3. While it covers other frameworks, the section on pytest is valuable for understanding its place in the Python testing ecosystem and learning practical automation techniques.
Carkci traces the lineage of dataflow graphs, pipeline concurrency, and push-based reactive execution, helping systems architects understand how directed graph nodes propagate state updates.
Urquhart scales reactive principles from in-process Observable pipelines to internet-scale inter-organization event streams powered by RSocket, CloudEvents, and reactive stream brokers.
Mitrović and Yadav provide over forty practical RxJS recipes for orchestrating asynchronous event streams, handling backpressure and errors, and integrating reactive patterns in modern web apps.
Meadows's classic introduction to stocks, flows, buffers, and stabilizing negative feedback loops provides the intuitive systems-theory foundation behind reactive backpressure and queue stability.
This foundational book on Test-Driven Development, written by one of its pioneers. While the examples are not in Python, the principles and practices of TDD are universally applicable. Understanding the core philosophy of TDD from this classic text will significantly enhance your ability to use pytest effectively in a TDD workflow.
Covers a wide range of architectural patterns, including those related to ORM and data persistence.
Explores automated software testing using Python. It's likely to cover various testing frameworks and techniques, including those where pytest excels, such as unit, integration, and functional testing. It provides a broader perspective on test automation in Python, which complements a deep dive into pytest itself.
Covers reactive programming with RxJava, a popular reactive programming library for Java.
Covers Java 9 concurrency features, including Project Reactor.
Focuses on test automation for web and mobile applications using Selenium and Appium with Python. While these are tools for functional and end-to-end testing, they are often integrated with test runners like pytest. This book would be valuable for understanding how to use pytest in conjunction with these tools for broader automation strategies.
Focuses on writing maintainable and robust Python code, which is inherently easier to test. While not solely about pytest, the principles and practices covered in this book provide a strong foundation for writing testable code and leveraging pytest effectively to ensure code quality.
Covers big data technologies, including ORM techniques for handling large-scale data.
This influential book focuses on writing readable, maintainable, and testable code. Adhering to the principles in this book will make your code easier to test with pytest and improve the overall quality of your test suite. It's a foundational text for any software developer serious about craftsmanship.
This comprehensive guide to writing idiomatic Python code. While not a testing book, having a strong understanding of Python is fundamental to writing effective tests with pytest. helps solidify your Python knowledge, which in turn makes learning and applying pytest concepts easier and more effective. It's an excellent reference for any Python developer.
Writing robust and maintainable code is closely linked with effective testing. focuses on writing high-quality Python code, and testing with tools like pytest is an integral part of that process. While not a pytest-specific book, it provides foundational knowledge and best practices that enhance your ability to write testable code and utilize pytest effectively.
Offers timeless advice on software development practices, including testing, automation, and writing flexible code. While not specific to Python or pytest, the principles discussed are highly relevant to writing good tests and building robust systems. It's a classic guide for any programmer.
Popular introduction to Python programming. For those new to Python who want to learn pytest, this book provides the necessary foundational programming knowledge. It includes projects that can help beginners practice their Python skills before diving into testing frameworks.
A comprehensive and in-depth guide to the Python language. Similar to 'Fluent Python' and 'Python in a Nutshell', a strong grasp of Python fundamentals is crucial for effective pytest usage. detailed resource for building that strong foundation.
Provides a broad introduction to Python for beginners, covering various application areas. It offers a good starting point for understanding the Python ecosystem and writing basic programs, which prerequisite for learning pytest and software testing.
Serves as a comprehensive reference for the Python language. While not a book on testing or pytest specifically, it's an invaluable resource for looking up details about Python syntax, built-in functions, and standard libraries, which is essential when writing and debugging pytest tests.
Explores classic computer science problems and algorithms using Python. While not directly about testing, understanding these fundamental concepts can be beneficial for writing more effective and efficient tests, particularly for complex logic. It's more of a supplementary read for deepening programming skills.
For more information about how these books relate to this course, visit:
OpenCourser.com/career/rzpaq7/backend