Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Hands-On Software Engineering with Python
Hands-On Software Engineering with Python

Hands-On Software Engineering with Python: Move beyond basic programming to design, maintain, and deploy extensible Python systems , Second Edition

Arrow left icon
Profile Icon Brian Allbee
Arrow right icon
€8.98 €29.99
eBook Dec 2025 628 pages 2nd Edition
eBook
€8.98 €29.99
Paperback
€37.99
Subscription
Free Trial
Renews at €18.99p/m
Arrow left icon
Profile Icon Brian Allbee
Arrow right icon
€8.98 €29.99
eBook Dec 2025 628 pages 2nd Edition
eBook
€8.98 €29.99
Paperback
€37.99
Subscription
Free Trial
Renews at €18.99p/m
eBook
€8.98 €29.99
Paperback
€37.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Hands-On Software Engineering with Python

Programming Versus Software Engineering Revisited

The dividing line between programming and software engineering falls somewhere within the differences between mid-level Software Engineers and Senior Software Engineers, as far as technical capabilities and expertise are concerned. In an Associate-level role, and sometimes in a mid-level role, efforts are often centered around nothing more than writing code to meet whatever requirements apply, and conforming to whatever standards are in play. Software engineering, at a senior developer level, typically takes a bigger-picture view of the same end results. Recently, a new professional level above senior has become available: the Staff Software Engineer. Staff Engineer, as a role, is frequently expected to take a similar bigger-picture view, and apply it across multiple teams, or even whole organizations. There are several facets to this bigger-picture view, some of which will be touched on here: standards, process predictability, and...

Technical requirements

The code in this chapter is for demonstration purposes only, showing the application of some of the topics and practices noted in the chapter.

Roles and expectations

Job titles for roles in software development are widely varied, even before accounting for the distinct levels, grades, or ranks indicating seniority in the field. Role titles include variations of Developer and Engineer, the latter usually prefixed with Application, Software, or some specific technology focus. Examples of these foci include Front End, Back End, and Full Stack for application-focused roles, and Infrastructure or Network for roles that relate to those technologies. There are many more variations. Levels, grades, and ranks include Junior or Associate for those with the least amount of professional experience, Senior for those with a substantial amount of expertise, and, more recently, Staff variants for those with even more experience. A typical progression, focusing on Software Engineer as the base title, might be:

  • Associate Software Engineer
  • Software Engineer
  • Senior Software Engineer
  • Staff Software Engineer
    ...

Looking at the bigger picture

There are three easily identifiable areas of focus that differentiate software engineering as a discipline from simple programming. A fourth (let’s call it user interaction) either weaves through the other three or is broken down into its own groups.

Software engineering must pay heed to standards, especially non-technical (business) ones, and to best practices, which are often independent of business needs. These may or may not be followed but, since they are standards or best practices for a reason, not following them is something that should always be a conscious (and defensible) decision. It is not unusual for business-process standards and practices to span multiple software components, which can make them difficult to track if a certain degree of discipline and planning is not factored into the development process to make them more visible. On the purely development-related side, standards and best practices can drastically impact the...

Asking questions

There can be as many distinct questions that can be asked about any given chunk of code as there are chunks of code to ask about — even quite simple code, living in a complex system, can raise questions in response to questions, and more questions in response to those questions. If there is not an obvious starting point, these basic questions are a good first step:

  • How easily understood is the functionality?
  • Who will be using the functionality?
  • What will they be doing with it?
  • When, and where, will they have access to it?
  • What problem is it trying to solve (why do they need it)?
  • How does it have to work? If detail is lacking, breaking this one down into the following questions is useful:
    • What should happen if it executes successfully?
    • What should happen if the execution fails?

Teasing out more information about the entire system usually starts with something as basic as the...

Summary

There is more to software engineering than just writing code. Experience, attention to detail, and asking questions about how the code functions and interacts with the rest of a system are important aspects of evolving from a programming to a software engineering mindset. The time required to acquire experience can be shortened, perhaps significantly, by simply asking the right questions.

There are also factors completely outside the realm of creating and managing code that contribute to that mindset. They focus mainly on what can, or should, be expected from the pre-development planning around a developmental effort, and that starts with understanding a typical software development life cycle. Knowing what the expectations for each successive level are as you progress to more senior roles, and what to pay heed to in order to meet those expectations, will help in achieving those roles. They will also improve your coding skills, helping to form good habits that can be applied...

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Understand what makes Software Engineering a discipline, distinct from basic programming
  • Gain practical insight into updating, refactoring, and scaling an existing Python system
  • Implement robust testing, CI/CD pipelines, and cloud-ready architecture decisions

Description

Software 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.

Who is this book for?

This 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.

What you will learn

  • Distinguish software engineering from general programming
  • Break down and apply each phase of the SDLC to Python systems
  • Create system models to plan architecture before writing code
  • Apply Agile, Scrum, and other modern development methodologies
  • Use dataclasses, pydantic, and schemas for robust data modeling
  • Set up CI/CD pipelines with GitHub Actions and cloud build tools
  • Write and structure unit, integration, and end-to-end tests
  • Evaluate and integrate tools like Poetry, pytest, and Docker

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 23, 2025
Length: 628 pages
Edition : 2nd
Language : English
ISBN-13 : 9781835888018
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Dec 23, 2025
Length: 628 pages
Edition : 2nd
Language : English
ISBN-13 : 9781835888018
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Table of Contents

21 Chapters
Introduction Chevron down icon Chevron up icon
Programming Versus Software Engineering Revisited Chevron down icon Chevron up icon
The Software Development Life Cycle Chevron down icon Chevron up icon
System Modeling Chevron down icon Chevron up icon
Methodologies, Paradigms, and Practices Chevron down icon Chevron up icon
Code Style and Related Standards Chevron down icon Chevron up icon
Functional Code Standards Chevron down icon Chevron up icon
Revisiting Development Tools Chevron down icon Chevron up icon
Revising the hms_sys System Project Chevron down icon Chevron up icon
Updating Projects and Processes Chevron down icon Chevron up icon
Re-Examining Options for Business Objects Chevron down icon Chevron up icon
Reviewing Business Object Data Persistence Chevron down icon Chevron up icon
Data Persistence and BaseDataObject Chevron down icon Chevron up icon
Testing the Business Objects Chevron down icon Chevron up icon
CI/CD Options Chevron down icon Chevron up icon
API Options Chevron down icon Chevron up icon
Assembling the API Chevron down icon Chevron up icon
The Final API, Deployed to AWS Chevron down icon Chevron up icon
Unlock Your Exclusive Benefits Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.

Modal Close icon
Modal Close icon