Summary Managing an event is rife with inherent complexity that scales as you move from scheduling a meeting to organizing a conference. Indico is a platform built at CERN to handle their efforts to organize events such as the Computing in High Energy Physics (CHEP) conference, and now it has grown to manage booking of meeting rooms. In this episode Adrian Mönnich, core developer on the Indico project, explains how it is architected to facilitate this use case, how it has evolved since its first incarnation two decades ago, and what he has learned while working on it. The Indico platform is definitely a feature rich and mature platform that is worth considering if you are responsible for organizing a conference or need a room booking system for your office. Announcements Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com) To help other people find the show please leave a review on iTunes and tell your friends and co-workers Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Adrian Mönnich about Indico, the effortless open-source tool for event organisation, archival and collaboration Interview Introductions How did you get introduced to Python? Can you start by describing what Indico is and how the project got started? What are some other projects which target a similar use case and what were they lacking that led to Indico being necessary? Can you talk through an example workflow for setting up and managing an event in Indico? How does the lifecycle change when working with larger events, such as PyCon? Can you describe how Indico is architected and how its design has evolved since it was first built? What are some of the most complex or challenging portions of Indico to implement and maintain? There are a lot of areas for exercising constraint resolution algorithms. Can you talk through some of the business logic of how that operates? Most of Indico is highly configurable and flexible. How do you approach managing sane defaults to prevent users getting overwhelmed when onboarding? What is your approach to testing given how complex the project is? What are some of the most interesting or unexpected ways that you have seen Indico used? What are some of the most interesting/unexpected lessons that you have learned in the process of building Indico? What do you have planned for the future of the project? Keep In Touch Indico Website GitHub IRC Adrian ThiefMaster on GitHub Picks Tobias Mortal Engines movie Adrian Virtual Reality Portal VR Links Indico Tornado Podcast Interview CERN High Energy Physics CHEP (Computing in High Energy Physics) conference ZODB PostgreSQL Data Engineering Podcast Interview SQLAlchemy Flask WSGI == Web Server Gateway Interface Mako Templates Jinja ReactJS Stripe Paypal Indico Introduction Video Reveal.js Mod_Python Zope Doodle LDAP == Lightweight Directory Access Protocol Daylight Saving Time Indico User Guide Py.Test Podcast Episode Selenium Flask Plugin Engine CERN Indico Plugins Linux Plumber’s Conference Open SUSE F-Strings The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA