{
  "interview": {
    "name": "#531: Talk Python in Prod",
    "interviewee": "Michael Kennedy",
    "created_date": "2025-11-26T07:38:24.638000",
    "recording_started_date": "2025-11-26T11:09:32.651000",
    "started_date": "2025-11-26T11:10:57.332000",
    "ended_date": "2025-11-26T12:33:47.880000",
    "duration_formatted": "1h 23m",
    "attribution": "Created by InterviewCue from https://interviewcue.com"
  },
  "questions": [
    {
      "number": 1,
      "question_text": "A little “tell us about yourself” bit, like you do with your guests",
      "background_info": "",
      "notes_count": 1
    },
    {
      "number": 2,
      "question_text": "What prompted you to write it?",
      "background_info": "",
      "notes_count": 1
    },
    {
      "number": 3,
      "question_text": "Made by humans",
      "background_info": "You’re a big AI proponent, yet you’ve got a “Made by Humans” logo, what made you decide to do this the old fashioned way?",
      "notes_count": 1
    },
    {
      "number": 4,
      "question_text": "The book has some neat non-standard features",
      "background_info": "The Audio Reader’s Briefs and the Galleries, gives a quick run down on what they are and why you included them.",
      "notes_count": 1
    },
    {
      "number": 5,
      "question_text": "Talk Python’s technical journey",
      "background_info": "- One of the things I like about the book is that it covers Talk Python’s technical journey. A lot of content like this is very opinionated “this is best”, whereas you’ve shown how your approach has changed over time. You started out in Pyramid, right?",
      "notes_count": 1
    },
    {
      "number": 6,
      "question_text": "Why build it yourself?",
      "background_info": "",
      "notes_count": 1
    },
    {
      "number": 7,
      "question_text": "Why not just use the cloud?",
      "background_info": "",
      "notes_count": 0
    },
    {
      "number": 8,
      "question_text": "Chapter 4 is titled, “Docker, Docker, Docker”",
      "background_info": "- What’s that one about? - Originally I wasn't for it, but then \"one big server\" - That needs more isolation for the long haul - Not into docker compose? Consider Coolify for a Heroku-like self hosted experience. https://coolify.io",
      "notes_count": 1
    },
    {
      "number": 9,
      "question_text": "Docker + uv",
      "background_info": "This would be fun to dive into a bit. It's really a game changer for speed and flexibility.",
      "notes_count": 0
    },
    {
      "number": 10,
      "question_text": "Heavy-weight docker?",
      "background_info": "A lot of people try to make their docker instances absolutely as minimal as possible. I kind of promote the alternative, adding all the tools that make your life easier. It might be fun to debate this.",
      "notes_count": 1
    },
    {
      "number": 11,
      "question_text": "The allure of self hosting",
      "background_info": "One of the reasons you picked Docker is all the third party apps you can just plug in. In the book you mention btop, glances, and others. How is this a game changer? Any one that sticks out you couldn’t live without?",
      "notes_count": 0
    },
    {
      "number": 12,
      "question_text": "Static sites",
      "background_info": "- Can you have one for a real app? - Is it either / or? - Combining static sites + python based ones",
      "notes_count": 0
    },
    {
      "number": 13,
      "question_text": "CDNs",
      "background_info": "- Web apps on easy mode",
      "notes_count": 0
    },
    {
      "number": 14,
      "question_text": "Picking a Python Web Framework",
      "background_info": "I think my favourite chapter was 13, titled “Picking a Python Web Framework”. I liked the nuance of it. We often don’t get to see people’s reasoning behind things. I think there is real value in this chapter even if you’re not planning on using the tech outline elsewhere. Understanding trade-offs is important.",
      "notes_count": 1
    },
    {
      "number": 15,
      "question_text": "Similarly Chapter 15: Hetzner",
      "background_info": "- Where you do a retrospective on choosing Hetzner your host provider.",
      "notes_count": 1
    }
  ],
  "links": [
    {
      "name": "Talk Python in Production Book",
      "url": "https://talkpython.fm/books/python-in-production"
    },
    {
      "name": "glances",
      "url": "https://github.com/nicolargo/glances"
    },
    {
      "name": "btop",
      "url": "https://github.com/aristocratos/btop"
    },
    {
      "name": "Uptimekuma",
      "url": "https://uptimekuma.org"
    },
    {
      "name": "Coolify",
      "url": "https://coolify.io"
    },
    {
      "name": "Talk Python Blog",
      "url": "https://talkpython.fm/blog/"
    },
    {
      "name": "Hetzner",
      "url": "https://hetzner.cloud/?ref=UQMdSwUenwRE"
    },
    {
      "name": "OpalStack",
      "url": "https://www.opalstack.com/"
    },
    {
      "name": "Bunny.net CDN",
      "url": "https://bunny.net/cdn/"
    },
    {
      "name": "Galleries from the book",
      "url": "https://github.com/mikeckennedy/talk-python-in-production-devops-book/tree/main/galleries"
    },
    {
      "name": "Pandoc",
      "url": "https://pandoc.org"
    },
    {
      "name": "Docker",
      "url": "https://www.docker.com"
    }
  ],
  "timeline": [
    {
      "type": "event",
      "time_in_seconds": 0,
      "timestamp": "0:00",
      "question_number": null,
      "action": "recording_started",
      "action_display": "Recording Started",
      "text": "Recording Started"
    },
    {
      "type": "question",
      "time_in_seconds": 84,
      "timestamp": "1:24",
      "question_number": 1,
      "question_text": "A little “tell us about yourself” bit, like you do with your guests",
      "background_info": ""
    },
    {
      "type": "question",
      "time_in_seconds": 393,
      "timestamp": "6:33",
      "question_number": 2,
      "question_text": "What prompted you to write it?",
      "background_info": ""
    },
    {
      "type": "question",
      "time_in_seconds": 880,
      "timestamp": "14:40",
      "question_number": 4,
      "question_text": "The book has some neat non-standard features",
      "background_info": "The Audio Reader’s Briefs and the Galleries, gives a quick run down on what they are and why you included them."
    },
    {
      "type": "question",
      "time_in_seconds": 1198,
      "timestamp": "19:58",
      "question_number": 3,
      "question_text": "Made by humans",
      "background_info": "You’re a big AI proponent, yet you’ve got a “Made by Humans” logo, what made you decide to do this the old fashioned way?"
    },
    {
      "type": "question",
      "time_in_seconds": 1730,
      "timestamp": "28:50",
      "question_number": 6,
      "question_text": "Why build it yourself?",
      "background_info": ""
    },
    {
      "type": "question",
      "time_in_seconds": 1854,
      "timestamp": "30:54",
      "question_number": 5,
      "question_text": "Talk Python’s technical journey",
      "background_info": "- One of the things I like about the book is that it covers Talk Python’s technical journey. A lot of content like this is very opinionated “this is best”, whereas you’ve shown how your approach has changed over time. You started out in Pyramid, right?"
    },
    {
      "type": "question",
      "time_in_seconds": 2306,
      "timestamp": "38:26",
      "question_number": 8,
      "question_text": "Chapter 4 is titled, “Docker, Docker, Docker”",
      "background_info": "- What’s that one about? - Originally I wasn't for it, but then \"one big server\" - That needs more isolation for the long haul - Not into docker compose? Consider Coolify for a Heroku-like self hosted experience. https://coolify.io"
    },
    {
      "type": "question",
      "time_in_seconds": 2965,
      "timestamp": "49:25",
      "question_number": 10,
      "question_text": "Heavy-weight docker?",
      "background_info": "A lot of people try to make their docker instances absolutely as minimal as possible. I kind of promote the alternative, adding all the tools that make your life easier. It might be fun to debate this."
    },
    {
      "type": "question",
      "time_in_seconds": 3245,
      "timestamp": "54:05",
      "question_number": 14,
      "question_text": "Picking a Python Web Framework",
      "background_info": "I think my favourite chapter was 13, titled “Picking a Python Web Framework”. I liked the nuance of it. We often don’t get to see people’s reasoning behind things. I think there is real value in this chapter even if you’re not planning on using the tech outline elsewhere. Understanding trade-offs is important."
    },
    {
      "type": "question",
      "time_in_seconds": 4075,
      "timestamp": "67:55",
      "question_number": 15,
      "question_text": "Similarly Chapter 15: Hetzner",
      "background_info": "- Where you do a retrospective on choosing Hetzner your host provider."
    },
    {
      "type": "event",
      "time_in_seconds": 5055,
      "timestamp": "84:15",
      "question_number": null,
      "action": "interview_ended",
      "action_display": "Interview Ended",
      "text": "Interview Ended"
    }
  ],
  "statistics": {
    "total_questions": 15,
    "total_events": 12,
    "total_links": 12,
    "duration_seconds": 4970
  }
}