PyCon UK 2019

Philosophy of Refactoring
09-13, 16:30–17:00 (Europe/London), Ferrier Hall

Many of us can recite the advantages of well factored code, yet in practice it is easy to let standards slide. This talk explores the mindset one should adopt to have a well factored codebase, complete with examples of how this looks in practice.


At Deloitte we frequently switch between clients, which means we must be prepared to work with a new tech stack at short notice. When learning a new technology it may be natural to try and gain a knowledge of its syntax, standard library and idioms. Yet an overarching understanding of how to factor problems into well-conceived functional units is even more important.

This talk will explain how to tame a difficult problem by adopting a rigorous philosophy towards separation of concerns, a topic that is relevant to any language but particularly important in the Python community, which places great emphasis on beauty and readability.

Examples of how factoring can be improved will be provided with the code posted on GitHub, but the take home message is around the mindset required to write well factored code, not the tooling.

Let human beings, with their limitless creativity but poor short term memory, operate on a single level of abstraction. Let machines, with their capacity to handle data but lack of original thought, do the legwork of building a coherent application.


Is your proposal suitable for beginners? – yes

Jacob is a software engineer in Deloitte's AI and Analytics practice, helping financial services clients deliver more value to their customers and streamline their back office systems. He relishes the challenge of working with different people and technologies, and thinks himself incredibly lucky to be alive at a time when the pace of innovation is so relentless.

He lives in Manchester with his wife and son, and in his free time enjoys walking in the Peak District.