1 / 169

How I Built The London Improv Calendar

The story of how I used AI as a coding partner to develop the London Improv Calendar at https://improv-calendar.co.uk

Diana189
Download Presentation

How I Built The London Improv Calendar

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. My AI Coding Partner How I built the London Improv Calendar Diana Ionita

  2. Diana Ionita: About Me • Serverless Consultant specializing in AWS • Working with Lambdas since 2016 • Serverless Meetup attendee since 2017, but this is my first talk

  3. ~2017 Serverless Meetup

  4. ~2017 Serverless Meetup

  5. Talk Outline • The Why: From a personal challenge to a community project • The How: The plan, the challenge, and choosing the tech stack • AI in Action: Case Studies • The Reality: AI’s limitations and quirks • Tips & Tricks for working with AI • The Result: A tool for the community, and a journey that made coding fun again

  6. Things to know • Prompt examples are paraphrased

  7. Things to know • Prompt examples are paraphrased • When I say AI suggests solutions, it usually is part of a conversation rather than one answer to one prompt • It may take multiple prompts to accurately describe the problem or the constraints

  8. What this talk is not • A comparison of AI tools • I mostly used VSCode with GitHub Copilot and chat UIs of OpenAI / Google / Anthropic

  9. What this talk is not • A comparison of AI tools • I mostly used VSCode with GitHub Copilot and chat UIs of OpenAI / Google / Anthropic • A comparison of LLMs • I switched models frequently, but didn’t comprehensively evaluate them

  10. Why was it needed? • In November 2024, I got temporarily banned by an improv school in London, without warning • a respectful email to an instructor made them uncomfortable

  11. Why was it needed? • In November 2025, I got temporarily banned by an improv school in London, without warning • a respectful email to an instructor made them uncomfortable • I didn’t contest the ban • But I wasn’t told exactly what was wrong

  12. Why was it needed? • In November 2025, I got temporarily banned by an improv school in London, without warning • a respectful email to an instructor made them uncomfortable • I didn’t contest the ban • But I wasn’t told exactly what was wrong • Ban was labeled as “temporary” • I insisted on defining “temporary”

  13. Why was it needed? • In November 2025, I got temporarily banned by an improv school in London, without warning • a respectful email to an instructor made them uncomfortable • I didn’t contest the ban • But I wasn’t told exactly what was wrong • Ban was labeled as “temporary” • I insisted on defining “temporary” • Someone from leadership replied: “offering such clarity would likely lead to permanent exclusion”

  14. Why was it needed? “offering such clarity would likely lead to permanent exclusion”

  15. Why was it needed? “offering such clarity would likely lead to permanent exclusion” • I emailed their internal “student liaison” • No replies for 3 weeks

  16. Why was it needed? “offering such clarity would likely lead to permanent exclusion” • I emailed their internal “student liaison” • No replies for 3 weeks • I escalated to another person in leadership • Problematic language was dismissed as unintentional • 1 year ban, check back after 1 year if I can be allowed back; no criteria given

  17. Why was it needed? “offering such clarity would likely lead to permanent exclusion” • I emailed their internal “student liaison” • No replies for 3 weeks • I escalated to another person in leadership • Problematic language was dismissed as unintentional • 1 year ban, check back after 1 year if I can be allowed back; no criteria given • I raised a formal complaint, about the language in the email, in December • Still waiting for a reply

  18. Why was it needed? “offering such clarity would likely lead to permanent exclusion” • I emailed their internal “student liaison” • No replies for 3 weeks • I escalated to another person in leadership • Problematic language was dismissed as unintentional • 1 year ban, check back after 1 year if I can be allowed back; no criteria given • I raised a formal complaint, about the language in the email, in December • Still waiting for a reply • Ironically, I’m banned for an email while my complaint about an email is still pending.

  19. I couldn’t really go back there after that.

  20. I couldn’t really go back there after that. So, how do I find improv?

  21. I couldn’t really go back there after that. So, how do I find improv? It’s scattered everywhere

  22. I couldn’t really go back there after that. So, how do I find improv? It’s scattered everywhere: instagram

  23. I couldn’t really go back there after that. So, how do I find improv? It’s scattered everywhere: instagram, whatsapp

  24. I couldn’t really go back there after that. So, how do I find improv? It’s scattered everywhere: instagram, whatsapp, facebook

  25. I couldn’t really go back there after that. So, how do I find improv? It’s scattered everywhere: instagram, whatsapp, facebook, ticketing sites…

  26. How about I use a calendar to track them all?

  27. How about I use a calendar to track them all? I could share it with people.

  28. How about I use a calendar to track them all? I could share it with people. They could add events I don’t know about!

  29. The Plan • A public website • Anyone can add events • It’ll be a calendar • It’s strictly for improv in London

  30. The Challenge • Solo developer with a backend specialty

  31. The Challenge • Solo developer with a backend specialty • Brand new frontend stack

  32. The Challenge • Solo developer with a backend specialty • Brand new frontend stack • Limited hours, part-time over the holidays

  33. What I knew • Experience in the AWS serverless stack

  34. What I knew • Experience in the AWS serverless stack • What clean code tends to look like

  35. What I knew • Experience in the AWS serverless stack • What clean code tends to look like • That absolute positioning is generally a bad idea

  36. What I knew • Experience in the AWS serverless stack • What clean code tends to look like • That absolute positioning is generally a bad idea • The value of creating a task list, organising it into must have / nice to have, working through itemised bits of work

  37. What I knew • Experience in the AWS serverless stack • What clean code tends to look like • That absolute positioning is generally a bad idea • The value of creating a task list, organising it into must have / nice to have, working through itemised bits of work • Git is useful for tracking changes

  38. What I knew • Experience in the AWS serverless stack • What clean code tends to look like • That absolute positioning is generally a bad idea • The value of creating a task list, organising it into must have / nice to have, working through itemised bits of work • Git is useful for tracking changes • What I wanted the project to look like and what was realistic technically

  39. What I knew • Experience in the AWS serverless stack • What clean code tends to look like • That absolute positioning is generally a bad idea • The value of creating a task list, organising it into must have / nice to have, working through itemised bits of work • Git is useful for tracking changes • What I wanted the project to look like and what was realistic technically • Great at copy-pasting

  40. Workflow Evolution

  41. First thing’s first: the Frontend Stack • “I'm looking to build a simple website with a calendar. I know nodejs and typescript. Are there any nice calendar components I can use? Something that has colours and possibility of filtering. Don't worry about implementation, let's talk ideas first.” GPT-4o - December ‘24

  42. First thing’s first: the Frontend Stack • “I'm looking to build a simple website with a calendar. I know nodejs and typescript. Are there any nice calendar components I can use? Something that has colours and possibility of filtering. Don't worry about implementation, let's talk ideas first.” • AI laid out the pros and cons of React, Svelte and 4 other frontend frameworks. • Explained why React's ecosystem with Vite would be a good fit for my S3-hosted, serverless-first approach • It recommended a library called 'FullCalendar' as a powerful component to start with. GPT-4o - December ‘24

  43. From Copy-Paste to Conversation

  44. From Copy-Paste to Conversation • Early days (early December): Copy-pasting code into web UIs • It worked, but it was slow and the AI had zero project context.

  45. From Copy-Paste to Conversation • Early days (early December): Copy-pasting code into web UIs • It worked, but it was slow and the AI had zero project context. • Getting Integrated (late December): Copilot in VSCode • I still had to reference files I wanted in context, but no more copy pasting. Quick for small changes.

  46. From Copy-Paste to Conversation • Early days (early December): Copy-pasting code into web UIs • It worked, but it was slow and the AI had zero project context. • Getting Integrated (late December): Copilot in VSCode • I still had to reference files I wanted in context, but no more copy pasting. Quick for small changes. • Breakthrough (February): the @workspace feature • Now I could have conversation about my entire project. • I could ask it to suggest changes, then kept talking about the code until I got it to generate what I wanted.

  47. From Copy-Paste to Conversation • Early days (early December): Copy-pasting code into web UIs • It worked, but it was slow and the AI had zero project context. • Getting Integrated (late December): Copilot in VSCode • I still had to reference files I wanted in context, but no more copy pasting. Quick for small changes. • Breakthrough (February): the @workspace feature • Now I could have conversation about my entire project. • I could ask it to suggest changes, then kept talking about the code until I got it to generate what I wanted. • Fine Tuning (March): System prompts, aka copilot instructions • The AI now had details about my preferences and coding style for every request.

  48. From Copy-Paste to Conversation • Early days (early December): Copy-pasting code into web UIs • It worked, but it was slow and the AI had zero project context. • Getting Integrated (late December): Copilot in VSCode • I still had to reference files I wanted in context, but no more copy pasting. Quick for small changes. • Breakthrough (February): the @workspace feature • Now I could have conversation about my entire project. • I could ask it to suggest changes, then kept talking about the code until I got it to generate what I wanted. • Fine Tuning (March): System prompts, aka copilot instructions • The AI now had details about my preferences and coding style for every request. • Models improved (o3-mini, Claude 3.5) => I was becoming more confident asking it to refactor large files • For more complex questions, I'd narrow down the files I thought needed changes and paste them into chats with smarter models that weren't available via VSCode (i.e. o3-mini-high at the time)

  49. VSCode with AI

More Related