Preface
Part I. Starting Your New Project
Chapter 1. Kicking Off the Project
Part II. Building the Backend
Chapter 2. Setting Up the Backend
Chapter 3. Building the Data Schema
Chapter 4. REST APIs
Chapter 5. Third-Party Services
Chapter 6. Background Jobs
Chapter 7. Backend Testing
Chapter 8. Backend Security Considerations
Chapter 9. Backend Debugging
Chapter 10. Backend Performance
Chapter 11. Scalability Considerations
Chapter 12. Monitoring, Logging, and Incident Handling
Part III. Building the Frontend
Chapter 13. Setting Up the Frontend
Chapter 14. Building the React App
Chapter 15. State Management
Chapter 16. Data Management
Chapter 17. Custom Styles
Chapter 18. Frontend Error Handling
Chapter 19. Frontend Security Considerations
Chapter 20. Frontend Performance
Chapter 21. Frontend Testing
Chapter 22. Frontend Debugging
Part IV. Deploying the Full Stack App
Chapter 23. Full Stack Deployment Setup
Chapter 24. Integration Testing
Chapter 25. Making Deployments
Chapter 26. Integration Concerns
Chapter 27. Building a CI/CD Pipeline
Chapter 28. Git Management
Chapter 29. Project Management
Chapter 30. Understanding the Business Domain
Chapter 31. Working on Different Types of Projects over Your Career
Index
If you are trying to figure out how senior devs seem to magically know how everything works and how they understand complex concepts so quickly, I’m going to show you how.
At this point in your career, you’ve probably been working as a software developer for a few years. You know how to complete your tasks with solid code regardless of whether it’s on the frontend or backend. While you may have some knowledge across the full stack, it’s likely you focus on one part of the stack over the other. On the frontend, you should be familiar with making responsive layouts, fetching data from APIs, and using some of the frameworks, such as React, Astro, or Svelte. On the backend, you’ve done some database migrations, built some APIs, and handled some basic authentication flows.
You also have skills like using Git with any of the repo hosting services, such as GitHub or GitLab, and using different tools to test your changes. You may have worked on one project for years, or you may have hopped around projects, but the scope of your work has typically fallen under some of the concepts mentioned.
Now you’re ready to move to the next level in your career. That means learning how the whole system works and why technical decisions are made. That’s what will be covered in this book.
This book is not a deep dive into any specific set of tools, and it will not teach you general JavaScript programming. A large range of topics will be covered in this book, with accompanying examples to demonstrate senior-level considerations, but it is expected that you know how to read code, debug issues, and find additional learning resources.
Since so many topics are covered, strategies will be discussed along with the code. These strategies are meant to be tools you can bring to any project you work on, although they may not work on every project. There isn’t a single approach that would work for any two projects because everything has its own nuances. So the goal is to give you a number of options you can choose from as needed.
Some parts of the book will need a much deeper explanation than a chapter or section can provide. No book can adequately cover all the topics presented here, and I want to make sure you get all the information you need. So while some topics will be light on the full implementation details, there will always be links to complementary resources.