Grant Hillebrand
First Name: Grant
Last Name: Hillebrand
Homepage: https://isijingi.co.za/
Fediverse Profile link: https://mastodon.social/@grant_h
github profile: https://github.com/ghillebrand
Bio
20 years corporate IT - Technical Systems, Business Analysis, Business Architecture.
20 years high school teaching - CAT, IT, ICT, Physical Science, Maths, Computer Science.
Takes photo's, does event sound & lighting, teaches movie making to teenagers (along with CS).
Occasionally plays flute or tenor sax.
Accepted Talks:
I wrote it once, I can write it again. Some observations & lessons from rewriting an interactive graphical tool in Python 30 years on.
Thirty years after first building an interactive tool to model higraphs, where nodes are sets, and edges can have many ends, I set out to rewrite it from scratch using modern Python and PySide6. In the last forty years, I have watched tech fashions come and go, reinforcing my commitment to data sovereignty, local-first compute, and minimal external dependencies. Higraphs offer a uniquely powerful synthesis of graph and set theory capable of representing intricate systems, yet modern drawing tools remain either prohibitively expensive, overly technical, or non-extensible. This talk traces some milestones along the journey of building an 8,000-line PySide6 application aimed at general users rather than tech experts, making desktop software and user sovereignty happen in a cloud-centric world.
Building a custom 2D interactive canvas in Python provides rich - and sometimes painful - insights into both PySide6 and the language's underlying mechanics. I will walk through key architectural decisions, such as using Hermite splines over traditional Bézier curves, and explain why Qt/ PySide ultimately won out over Tkinter and Cairo. We will take a look at some of the less obvious "features" of Python: navigating memory management when Qt’s C++ bindings fight with Python’s garbage collector to trigger segfaults, the exciting world of default mutable parameters, understanding why Python bools act like ints under the hood, and enforcing effective immutability without native constants.
Beyond technical details, this session offers grounded takeaways on solo project management, software philosophy, and evaluating technology hype. I will share practical strategies for maintaining project momentum when "everything is your problem", distinguishing the difference between "on track" and "moving forwards". Finally, having built this tool alongside the rise of modern LLM code generators, I will share a candid assessment of where AI coding assistance excels and where it completely collapses when faced with specialized domain modelling and custom UI mechanics. Attendees will walk away with PySide6 insights, a sharper mental model of Python’s quirks, and inspiration for building resilient, local-first applications.
If you're an indieDev running a solo project, a graph theorist looking for something more flexible than networkx into graphviz, or just interested in "old school" GUI development, this may be useful.
Code for the current version
A blog on the process






