Skip to main content

Harry Percival

Website | @hjwp

During his childhood Harry seemed to be doing everything right — learning to program BASIC on Thomson TO-7s (whose rubber keys went “boop” when you pressed them) and Logo on a Green-screen Amstrad PCW. Something went wrong as he grew up, and Harry wasted several years studying Economics, becoming a management consultant (shudder), and programming little aside from overcomplicated Excel spreadsheets.

But in 2009 Harry saw the light, let his true geek shine once again, did a new degree in Computer Science, and was lucky enough to secure an internship with Resolver Systems, the London-based company that has since morphed into PythonAnywhere. Here he was inculcated into the cult of Extreme Programming (XP), and rigorous TDD. After much moaning and dragging of feet, he finally came to see the wisdom of the approach, and now spreads the gospel of TDD through beginner’s workshops, tutorials and talks, with all the passion of a recent convert.

Harry is currently writing a book for O’Reilly, provisionally titled “Test-Driven Development of Web Applications with Python”. He is trying to persuade his editor to have the title changed to “Obey the Testing Goat!”.


JavaScript - HTML5 - Web | Python | Tools & Techniques
Portland 252
Tutorial Please note: to attend, your registration must include Tutorials.
Harry Percival (
Average rating: ****.
(4.19, 16 ratings)
Learn Test-Driven-Development and how it applies to web applications by building a simple web app from scratch using Python and Django. We'll cover unit testing, Django models, views and templates, as well as using Selenium to open up a real web browser for functional tests. Read more.
Office Hours
Expo Hall (Table B)
Harry Percival (
Whether the testing goat is steering you right or wrong, you’ll want to join Harry for an informal discussion of testing and TDD. Find out how to get started with testing and how to get the most value from it. Learn the relative merits of pure isolated unit tests, integrated tests, and functional tests. And explore how to adapt your approach for different project types. Read more.