Build strong software engineering skills by applying proven design, development, testing, and deployment best practices through hands-on Python projects that reflect real-world production workflows.
Key FeaturesUnderstand what makes Software Engineering a discipline, distinct from basic programmingGain practical insight into updating, refactoring, and scaling an existing Python systemImplement robust testing, CI/CD pipelines, and cloud-ready architecture decisionsBook DescriptionSoftware engineering is more than coding; it’s the strategic design and continuous improvement of systems that serve real-world needs. This newly updated second edition of Hands-On Software Engineering with Python expands on its foundational approach to help you grow into a senior or staff-level engineering role.
Fully revised for today’s Python ecosystem, this edition includes updated tooling, practices, and architectural patterns. You’ll explore key changes across five minor Python versions, examine new features like dataclasses and type hinting, and evaluate modern tools such as Poetry, pytest, and GitHub Actions. A new chapter introduces high-performance computing in Python, and the entire development process is enhanced with cloud-readiness in mind.
You’ll follow a complete redesign and refactor of a multi-tier system from the first edition, gaining insight into how software evolves—and what it takes to do that responsibly. From system modeling and SDLC phases to data persistence, testing, and CI/CD automation, each chapter builds your engineering mindset while updating your hands-on skills.
By the end of this book, you'll have mastered modern Python software engineering practices and be equipped to revise and future-proof complex systems with confidence.
What you will learnDistinguish software engineering from general programmingBreak down and apply each phase of the SDLC to Python systemsCreate system models to plan architecture before writing codeApply Agile, Scrum, and other modern development methodologiesUse dataclasses, pydantic, and schemas for robust data modelingSet up CI/CD pipelines with GitHub Actions and cloud build toolsWrite and structure unit, integration, and end-to-end testsEvaluate and integrate tools like Poetry, pytest, and DockerWho this book is forThis book is for Python developers with a basic grasp of software development who want to grow into senior or staff-level engineering roles. It’s ideal for professionals looking to deepen their understanding of software architecture, system modeling, testing strategies, and cloud-aware development. Familiarity with core Python programming is required, as the book focuses on applying engineering principles to maintain, extend, and modernize real-world systems.
Table of ContentsIntroductionProgramming Versus Software Engineering RevisitedThe Software Development Life CycleSystem ModelingMethodologies, Paradigms, and PracticesCode Style and Related StandardsFunctional Code StandardsRevisiting Development ToolsRevising the hms_sys System ProjectUpdating Projects and ProcessesRe-Examining Options for Business ObjectsReviewing Business Object Data PersistenceData Persistence and B