Jacob is a software engineer whose mission is to build AI-enabled solutions that stand up in the real world. He works at Deloitte Analytics & Cognitive where he designs and builds performant, scalable and resilient architecture that distils valuable insights from large, often imperfect datasets. While he is experienced using those technologies that manage big data, concurrency and scalability, he considers himself a generalist, keen to understand how everything works from PyPy's JIT to GraphQL.

Jacob lives in Manchester, UK with his wife and two children. In what little free time he has, he enjoys learning natural languages.

Accepted Talks:

Threads vs Async: Has Asyncio Solved Concurrency?

In recent years asyncio has garnered much attention as a faster and easier alternative to threads. So do threads still have a place in the world? And what of other concurrency tech such as greenlets?

The fundamental problem solved by both async frameworks and threads is one of scheduling. This talk will put aside nitty gritty implementation details and go back to basics, examining how a cooperative scheduler (used by async frameworks) differs from a preemptive scheduler (used by threads). This basic understanding will clarify what is often considered a tricky subject and shed light on the pros and cons of each approach.

We will also see that even having decided on the async model, asyncio is not the only tool available. We will explore the pros and cons of greenlets, curio and trio as alternatives to the standard library's solution.

This talk is suitable for all levels from beginner to expert. The format will be simple and intuitive, with basic live examples of how to use threads and asyncio to do everyday tasks. You will come away not with an encyclopaedic knowledge of a specific toolchain, but with a deeper appreciation of the core concepts that power concurrency.