The Fundamentals of Software Engineering is now Available!
Happy Monday and welcome to another edition of the newsletter. I pushed my newsletter back a day this week because today is a very special day. Today my new book, The Fundamentals of SWE is available to order on Amazon. I know I have talked to you about the book before but I don't think I have done a deep dive here so that is my plan for this edition of the newsletter.
Fundamentals of Software Engineering
I have wanted to write a book for as long as I can remember. I had offers to write a couple of different books for various publishers. I've known for a while that if I was going to write a book, I wanted it to be an O'Reilly book. I have long admired their standards and quality. One day in March 2024, I tweeted out some goals for the year, and my friend Nate Schutta replied that if I wanted to write a book, he could make that happen.
He was looking for a co-author for a new project he was working on. After a quick call with him I knew this was the project for me. I wasn't quite sure how I would find the time for this juggling a full-time job and family but I knew that this was the one. Nothing worth doing ever comes easy though and if you don't have patience don't sign up for this.
Who This Book Is For
This book is specifically designed for new software engineers. Our goal is to show you the bigger picture of what it takes to become a true software engineer, beyond "just coding," and what it takes to advance your career.
But the fundamentals that we'll discuss in this book aren't just for beginners. Experienced engineers can also benefit from mastering these essential skills, especially if they're looking to move up and take on more senior roles. Building a strong skill set is what will unlock opportunities for more responsibilities and promotion.
What Is in This Book
The book is broken into four sections. Part 1 begins with the core skills you need to be a successful software engineer. Part 2 explores the various technical practices you will encounter on projects, while Part 3 dives into the nuances of designing and building software. Part 4 focuses on your career growth and steps you can follow to take control of your journey.
Here's what you'll find in this book:
Part 1: Core Skills
- Chapter 1, "Programmer to Engineer", discusses the varied paths to becoming a software engineer and emphasizes the importance of foundational skills.
- Chapter 2, "Reading Code", is about how software engineers spend more time reading code than writing it. It provides strategies for navigating unfamiliar code.
- Chapter 3, "Writing Code", is all about the importance of writing code that is readable and maintainable. In essence, it illustrates why it's more important to write for the developer than the computer.
Part 2: Technical Practices
- Chapter 4, "Modeling", dives into the role of software modeling, aka the box-and-line diagrams you have encountered (or will encounter) on many projects, as a crucial aspect of communication among software engineers.
- Chapter 5, "Automated Testing", covers the benefits of automated testing for code quality and developer confidence.
- Chapter 6, "Exploring and Modifying Unfamiliar Systems", highlights strategies for effectively working with existing codebases. Whether you're joining a new team or maintaining a legacy system, these skills will help you confidently contribute to any codebase.
Part 3: Application Development and Design
- Chapter 7, "User Interface Design", is an overview of user interface design. It explains why understanding the user and applying design principles will help ensure that your software meets your users' needs.
- Chapter 8, "Working with Data", is all about working with data, something nearly every software application does in some manner. It covers the essential skills you need to know to make informed decisions about data in your applications.
- Chapter 9, "Software Architecture", explores the complexities of software architecture, giving you some insights into the architectural trade-offs involved in every software project.
- Chapter 10, "To Production", talks about taking code to production. It discusses the unpredictability of real users and environments, and outlines strategies for building production-ready code.
Part 4: Professional Development and Growth
- Chapter 11, "Powering Up Your Productivity", returns to your day-to-day work and the importance of building your personal toolkit.
- Chapter 12, "Learning to Learn", covers the importance of continuous learning. The chapter offers strategies for keeping up with an ever-changing field.
- Chapter 13, "Mastering Soft Skills in the Tech World", dives into the importance of soft skills to your career. It discusses collaborative communication, influence, and stakeholder management.
- Chapter 14, "Career Management", focuses on planning and navigating your software engineering career. It discusses finding what you're passionate about, exploring career paths, and being deliberate with skill acquisition. It also covers building a professional network, acing interviews, and creating a work-life balance.
- Chapter 15, "The AI-Powered Software Engineer", touches on one of the most disruptive topics in the software space today: AI.
Fundamentals Website
If you want to learn more about the book, the authors, our new podcast, and more, you can check out fundamentalsofswe.com. Episode 01 of the podcast has been added to the site and you can get it on all the major podcast platforms.

We would love your support by subscribing to the new YouTube Channel. You can check out the video version of the first episode below 👇🏻
Get the Book for FREE
I decided to sit down and record the video version of this. If you want to learn how you can get a free 30-day trial from O'Reilly to read my book (and others) for free, go give the video a watch 👇🏻
You might not know this, but you don't get rich writing tech books. That's not why I took on this project. I remember clearly how hard it was when I was learning to code, how overwhelmed I felt at times. I do what I do because I love helping people. I appreciate all your kind words on social media and in my inbox, but I believe I'm the lucky one. Thank you for your continued support, friends!
UNTIL NEXT WEEK
I hope you enjoyed this newsletter installment, and I will talk to you in the next one. If you have any questions for me or topics you would like me to cover please feel free to reply to this email or reach out to me on Twitter.
Happy Coding,
Dan Vega
https://www.danvega.dev