Distributed Software (with Python)
By Alexandru Barbur

A whirlwind tour of several aspects of distributed software design with examples and use cases tailored to Python development. Topics include code layout, serialization, networking, and more.

Sunday 3:15 p.m.–4 p.m. in Barbie Tootle

This talk gives an introduction to several aspects of designing and implementing distributed software with a focus on control systems and Python development. Topics include code layout, server architecture, serialization, APIs, networking, and control system design. Relevant tradeoffs, external libraries, and implementation details for one variant are covered for each topic with Python specific example code. A few minutes are set aside at the end of the talk to ask specific questions and discuss Python specific implementation details.

  • About the author (2m)
  • About the example project (3m)
  • Code Layout (5m)
  • (Extended) Server Architecture (5m)
  • Serialization (7m)
    • Versioning
    • Binary Data
    • Bandwidth
    • Speed
  • Component APIs (5m)
  • Network IO (3m)
  • Network Discovery (5m)
  • (Extended) Control System Design (5m)
  • Questions and Links (5-10m)

Alexandru Barbur

Software / DevOps Engineer with over 8 years of experience in the field. My preferred environment is the backend but I'm a generalist and familiar with the entire stack. Languages I know well include Python, C, C++, and Go (although my spirit language has always been Lua). If it's software or hardware I have probably heard of it and likely worked with it.