Creating an Inclusive Django Community with Kenya Phelps
Published July 15, 2026
This video features Heather at DjangoCon US 2017 in Spokane, Washington, USA.
As the universe of IoT continues to grow at a rapid pace, our abilities to interact with these devices can be useful. As an added bonus, developing these skills can be fun too!
I’ll take you through my journey of developing my first Alexa skill in Python for Amazon Echo devices aptly named Happy Days. It is a random quote generator that delivers positive quotes. I’ll go over the skills of how to get Python to talk to Alexa and how to dump that code into Lambda for a seamless delivery between Amazon Web Services and the Alexa Skills Kit in just a little over 200 lines! Never developed an Alexa skill before? Don’t worry, I hadn’t either. I’ll provide plenty of resources to help get you started on a path you’ll never want to leave as an Alexa developer.
This talk was presented at: https://2017.djangocon.us/talks/alexa/
LINKS:
Follow Heather aka. Heats 👇
On Twitter: https://twitter.com/h34th3r329
Official homepage: http://www.dnsrsearch.com/index.php?origURL=http%3A//heats.life/&r=&bc=
Follow DjangCon US 👇
https://twitter.com/djangocon
Follow DEFNA 👇
https://twitter.com/defnado
https://www.defna.org/
Heather Luna explains how she built Alexa skills in Python while moving from systems administration toward development. Using her Happy Days positive-quote skill as an example, she shows how Alexa Skills Kit connects to an AWS Lambda function, how intents and utterances map user requests to code, and how CloudWatch helps debug it. She also covers testing with the Echo Simulator, billing alerts, voice design, sessions, reprompts, SSML, accessibility through cards, publishing review, and Alexa usage metrics. Her main argument is that building a small skill is an approachable way to learn AWS and voice interfaces, provided developers design for varied user phrasing and monitor costs.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
So
Speaker 1: what up? Um my name is Heather Luna. Most people know me as Heats. Don't even ask. That's a really long story. Um so my talk today is about Alexa development. Um has anybody developed an Alexa skill before in the audience? Looking at you. Be nice. No, um. And who's a f I just want to know who's like a first-time developer, just beginning with development. No judgment 'Cause I'm in the same boat. Cool. So you'll you'll enjoy this. Um and what I and if you don't, the door's there. No, I'm just kidding. Um So
Speaker 1: basically, um I work for Penn, even though I just moved to Seattle. They were nice enough to let me keep my job. Thanks So there is this initiative for 2020 to move completely into the cloud. As most of if there I know there are people here that work for universities it's slow moving but this is my complex thought process is like I see our data centers and I see clouds and I'm just like what am I gonna do? How am I gonna prepare myself for this? And the thought came into mind to start Alexa development. The reason that came into mind is because it's not just Alexa development, at least not what I did. So it kind of
Speaker 1: dives into AWS a little bit, which I'll talk about heavily using Lambda for the skill that I created. I got some experience with CloudWatch, which is basically how you can find out your errors. It's a good debugging tool. So I'm gonna show you a role involved with CloudWatch. So there were other things that I was getting into and of course the Alexa Skills Kit, which gets married to Landa so the two can talk together. So one thing I wanted to talk about is a lot it for me has changed since the last Django Con. We had Django Con in Philadelphia last year and when Tim approached me about Django, I was like, what's a Django?
Speaker 1: So after the first conference, um I got into the conference thinking I could never do this, I'm not that smart and then um we have an incredible team of volunteers and stuff and I thought I would give it a shot. One thing I like about this community and the people sitting in front of me is that we are probably one of the awesome communities in code. Python Django is supportive. No one has ever looked at me like, hey, you're stupid. Everyone's always got suggestions on how to make things better. So that's why I decided to write this skill in Python. There 's also not a lot of Python Alexa skills out there. I'm hoping that that's going to change. You'll see throughout my talk, I do give my GitHub account
Speaker 1: I encourage you to look at that because I have actually included the whole happy days skill and the components of that skill in my GitHub Feel free to use it as you wish. It's out there so that hopefully you can use parts of it. Next slide. I'm not a developer, at least I didn't think I was. I'm a systems administrator working into the developer space. After this, I think I'm aspiring now. So building a skill helped me in a lot of things. Um like I said, I was touching Lambda, CloudWatch. Was looking at billing alerts, which by the way, if you're setting out to do this for the first time, I highly suggest doing that
Speaker 1: I set up my billing alert to tell me if I went over one dollar , which has happened. So it's only $2. 17 for me to run happy days, but when I was doing this, I I didn't want to go back to my husband and be like, so this happened and we owe AWS ten grand or one billion dollars. I didn't know what was going to happen when I went down this road So in building this skill, I was noticing a lot of things. I was able to troubleshoot my own code a little better. CloudWatch logs are really good in showing you exactly where you failed Um I was seeing a lot of red though, I'm not gonna complain. Uh the the code that you're about to see is only two hundred lines. Two hundred lines took me a little to and a
Speaker 1: a little over two and a half months to do and get through the Alexa Skill process. But that's just because I'm a noob and it took me a while. So if you don't know what Alexa is, she's the voice service between um behind the Echo show, the Echo, the Echo Look. The dot, anytime you call Alexa, I think she's muted right now, which is great. I learned that in other talks that I've given to mute her because I say the name more than once It provides for custom developed skills. Amazon doesn't call them apps, they're skills. So you can use an API through the Alexa Skills Kit to build your own skill.
Speaker 1: It can be about whatever you want, whatever you want. You can also leave things in development or you can choose to publish them. If you're publishing them, Amazon developers go through and they pick apart your skill, which is not a bad thing. At first when I submitted this skill and I got feedback, I was like I was like, God, I didn't do it right the first time. But then someone pointed out to me, like, this is a professional code review. You can learn from it. And I was like, okay, that's pretty cool So what I've done so far is I've published Happy Days. I did the I started that directly after the last DjangoCon conference because there were just so many positive things being slung around and I was like I'm gonna do a positive quote generator and it's gonna be awesome
Speaker 1: and it was And then I've also developed a Wharton guide that was for a quarterly that we did. That remains in development. If you decide to leave your skill in development, you can still access it because it links directly back to your Amazon account. So if you're not comfortable or you don't want to go through the publishing process with Amazon You can leave it in development. There was a senior software engineer that decided to go home and make a skill for his family. So that would be an example of what you might want to leave in development. Or if you didn't want to publish the work and guide because then you would have to get the okay from all the people at Penn. Yeah. What will I make? That was
Speaker 1: I knew I wanted to do this, but it took me a while to figure out what I wanted to make, because that's a creative thing. And that's up to you. Do you want to make something that helps people? I know I do, which is why I made it. Or like I said, do you want to leave it in development? Do a family thing? That works too The only thing you have to keep in mind in this process is that the content that you're making is going to be consumed by users of the product. So you want to be thinking through voice design. Is the voice design that I'm making easy for the user to get through? Chances are if you're fumbling with the voice design, your user's gonna fumble too. So as most people know customer service is my biggest, biggest, biggest thing for me. So I was very careful with that
Speaker 1: as I made this skill. What did I need to make this happen? It wasn't hard. You need an Amazon developer account, that's free. You need an Amazon Web Services account, that's also free. And for those of you who don't know, Amazon offers a free tier Amazon Web Services. You can use their services, most of them. uh for free for a whole year. So if you're looking to get into the Amazon Web Services space, this is the perfect way to do it if you haven't done it already. It used to be that you needed a device to test. You don't need that anymore. You can use Echo SIM IO, and by the way, I will be uploading these in the speaker deck. There's a lot of URLs embedded in this presentation that will be helpful.
Speaker 1: So I'll make sure I get them up on speaker deck, tweet about it. Yeah, so you just it the login for the Echo SIM uh ties into your Amazon account, so it kind of works the same. It's just a little clunkier because you have to push the button, say Alexa open blah, and it's not it's not as quick, but that's another option you have if you don't feel like getting an Alexa device But they're cool, so get one. I'd also like to point out that in no way I have no ties with Amazon. My husband works for Amazon, that's basically it. So this is just me being excited about a product and kind of running with it. Billing alarms, like I said, make sure you set those up before you get started.
Speaker 1: Um, especially if you're going to be using some resource-intensive things, if you decided to use S3 buckets with a high availability, that may not fall under the free tier. In fact, I'm pretty sure it wouldn't Once you start consuming services that have a lot of stuff, I think RDS might also be one of those things that are not included. But bailing alarms so you don't have to be like this guy. Um let's get it done. I mean this is what I this is what I I used. I mean Python 3. 6 is available now in case you didn't know for Lambda. It had previously not been available and we were all waiting with bated breath and then it happened. We were like, woo, it's here.
Speaker 1: But if you're not a Python person, you can do it in Node. js, C sharp, or you can do it in Java. We're using Lambda and CloudWatch. Again, there's tutorials on this. The way I got started was the Color Skills tutorial. And there's actually a blueprint for that in Lambda functions, which I'll I'll click over to real quickly to show you before we go in and make a a skill. My my goal today is to get a skill up and running that doesn't exist yet. So we'll just use the code from Happy Days and do Happy Days test and we'll call it that way. It shouldn't take too long. Probably 10 minutes, if you can believe it. Oops. There's other stuff. The Amazon Developer Forums are amazing.
Speaker 1: They have their own Alexa section. If you're struggling with a part in your Alexa code, you can ask them. There's also office hours. um where you can talk to real Alexa developers at Amazon. So that's 4 p. m. 1 to 4 EF uh PM and then 4 p. m. on the East Coast time. It works out for me a little better now that I'm a West Coaster. So the anatomy of happy days, like I said, there's my GitHub there. So there's a repository for the skill. Happydays. py is actually going to be the Lambda code that I am dropping into Lambda. The intents , they're just JSON and that's what the user wants to do.
Speaker 1: What is the intent here? What are we trying to solve for the user? The utterances are the actual phrases that you would give to Alexa. So if I said Alexa, open happy days, that's an example of an utterance. Now you'll see when I get into my utterances, which I'm going to show you, this list is very short. The Wortin Guide utterances, there were over a hundred. So the goal for utterances is to think about your user. How many ways could they ask for my skill to do something? And the list can grow extensive depending on what you're doing. And then the more quotes. py that's in there, I had received f some feedback that somebody had heard these quotes a lot and they were a little bored. So I was like, okay.
Speaker 1: I can do something about that. So I think I added another 50 quotes. And in adding stuff to Lambda, it's actually really easy. I don't suggest editing your code live possibly setting up test environment, make sure that it works. If you're doing it live, it means you're doing it live. If you change it, it's gonna change it on the platform. For this I thought I knew what I was doing and I did because it didn't break, but probably not best practice if you're just getting started. Uh putting it all together. Um I'm going to actually run through very quickly the code behind Happy Days. And it's only 200 lines, so I promise it's not gonna be painful.
Speaker 1: That's the hope. So here's what I got going on. I'm doing from future import print function because when I did this it was in Python 2 And I wanted to pull the functionality of Python 3 over. You'll see when we get down into the code a little more that I'm using the print function a lot. It's needed because this is kind of how Alexa deals with their responses and things of that nature. So you'll see that when we move down further I'm doing import random. Does anyone have a guess why I'm doing import random? No? Okay. I'll tell you. Yes. You. When I was
Speaker 1: when I was doing this, I didn't want her to spit out the same stuff every time. So I did import random so I could randomize the quotes. There's a lot of them. There's a lot. What do you notice about these quotes? But they're basically in plain text. Alexa reads text as if you would write it, as if you were writing a book. If you put a comma, she's gonna pause be before she goes on to the next. Next thing she said. If you put an exclamation point, you get a little extra excitement out of her. So So you can really mess with her voice. Now I've gotten some feedback that Alexa's voice is so robot tour and things
Speaker 1: things of that nature and it's like I'm sorry I didn't make her. Um but there's some some cool things that people have done in regards to recording something So you would record something like an intro. A lot of people do this with podcasting. You would store that file in an S3 bucket and then you would work with the audio player in the Alexa Skills kit So that your recording actually talks and Alexa doesn't. That could in sh ensue some cost. So I'm gonna scroll down here. I hope this is big enough for everyone to see. In giving these talks, I've realized that code can be small, so I went ahead and zoomed in anyway.
Speaker 1: So basically what we have here is we're defining our lambda handlers. These are really important because this is how This is basically how Alexa handles code. This is how she handles sessions, launches, and things of that nature. Let me just get here. So if I were you right now and you were basically in my GitHub I would definitely just basically copy and paste lines 78 through 91. And you can add to that. If you don't have the event handlers, it's not gonna work. This is really needed.
Speaker 1: So you can see launch request, that's basically, oh well let me say that the one above that is on session started. On session started is when I say Alexa. When I say Alexa, that session starts. The launch part is when I say open happy days. So then she's going to launch my skill. The intents is how she's going to handle what we need to do. And the session ended only happens at the end. If a user says stop, cancel, that's when your session ended happens, and that's when the session just ends. You're no longer in it. So, yes, so on intent and things of that nature.
Speaker 1: Now here I'm defining my intents. You're gonna see these come up when I go into the Alexa Skills Kit portal And this is where they get matched. So I have the happy days intent, which is linked to the welcome response. The Amazon no intent, you can choose to not define the no intent, but it's built in. So if you don't define anything for it, that's fine. You don't need to because it's built in. Same with the yes, the no, the help. I have another quote intent because I thought, well, what if someone's not happy enough and they want a second one? Then they have another quote intent. The cancel and stop
Speaker 1: intents are the same. They're built in. You don't have to define them. I believe that I do. So this is where I'm defining my get welcome response Notice I'm leaving my such session attributes dictionary open. The reason that I'm doing that is because throughout this skill, it needs to pull down the information from one block to the next. If I were to put stuff in there, she would she would just not she would just stop working. So you'll see that I keep these brackets open, well the curly braces I guess. I would keep these open until the end When I'm saying session ended is when you'll see this actually have more than just nothing in between them. So the random number, this is where I'm using the integers and grabbing the random quotes.
Speaker 1: You'll notice here in my speech output, which is what she's actually saying. She can speak the logic, which is really pretty cool. She knows now that she needs to go up into my list of quotes and she needs She can pull whatever she wants. It has to be one. She knows she can do that, and then she knows how to say it. Um and then she goes into would you like to hear another quote? You can see I have Sha in session as false because she needs to stay in session. If I had this as true, Alexa would stop and if somebody wanted to hear another quote, well, too bad for them But for user experience, she's saying false. This is also something that if you do decide to do your skill,
Speaker 1: you would want to use with a help intent. Because if a user is asking for help on your skill They're gonna need the session to stay open so that they can continue to interact. So I also have handling another quote request and she's doing the same thing there Handling the help request. This is all pretty pretty basic stuff. All that's changing here is her speech output and her reprompt text. The reprompt text is if your user doesn't answer within a certain amount of time. I don't know what that amount of time is, but if she's waiting for a while, she can reprompt and say, do you still need help? Whatever you want to have her say. She can do that. And here's the handle finish
Speaker 1: session request. So as you can see, I I still do have my attribute my I do still have my dictionary open, so that was my bad. But the should end session is true because at this point we're done. We're done. The build speech response. Something I wanted to talk about is SSML, the language SSML. You can fine-tune Alexa if you're using that. For this skill I was just getting started, so I decided to use plain text. If you wanted to look into SSML, if you know more about SSML over me Feel free, you'll just have to change this output speech and the reprompt to SSML. This is where you would make that change
Speaker 1: So I'm building speech response without the card. I'm not using cards for this because I made this skill before the Echo Show came out. Does anybody know what the Echo Show is? So show of A lot of people don't know what it is. So Amazon just came out with Echo Show, which is a visual box. You can use it for conference calling, but you can also use it for skills. So the cool thing about skills and cards is that you can use use cards to relay pictures, text if someone's hard of hearing, this is a good thing to think about accessibility-wise. Someone's hard of hearing, you can read the text on the screen. So I'm actually really excited about the Echo Show. I think that the next skill I make will probably have cards.
Speaker 1: And then at the end I have my build response. This is important, and the reason this is important is because this takes my session and it transfers it back to the Alexa Skills kit. If I didn't have this, it would just stop and Alexa Skills Kit wouldn't be able to pick up all the information that we just got throughout the 200 lines of code and then she couldn't talk and say what we did. So there's that piece. That's the actual anatomy of the code. Oh 205 lines. Cool. Um I think the Wharton guide I made was probably 600 or so. So I'm getting better. These are the intents for happy days These go into the Alexa skills kit
Speaker 1: and I'll show you that later. What we're going to do is we're going to build a skill from scratch. It is a live demo, so bear with me in case things don't go very well Um and I thought I had sample utterances up. I do. They're just in this. So as you can see, these intents are really short. I don't have a lot. If I showed you Orton Guide, you'd be like, whoa But that's pretty much it for the code part. Now is the demo part. And the demo part's pretty cool if it works. Fingers crossed. So this is the part where I think I need to switch this on, but I don't know where the power button is. Where's the power button? Cool.
Speaker 1: Yes. Not that she's not loud enough, but she is, I swear.
Speaker 2: Test?
Speaker 1: Yes. So if I said happy days or Alexa , open happy days testing
Speaker 3: I couldn't find any enabled video skills. Go to the music TV and books section of the Alexa Xa still enable
Speaker 1: I have no patience for her lately. So we don't have a skill yet, right? So we're just gonna build one real quick. Because I think it's important that when I'm talking about this that I can show you the steps needed to take it. So we're going to start off with a Lambda function. So this is basically if you haven't been in, I feel like I should go to the dashboard for AWS for those of you who haven't been in. Who haven't had any experience with AWS. This is all the services that AWS has. I believe that Lambda's under compute it is So I'm gonna go in and these are the functions I have already. This is in the works. Be ready for that because that skill is gonna be amazing.
Speaker 1: once I have time. And what's time? Who has free time anymore? I'm gonna select the blueprint. Um what I wanted to show you off of this and hopefully I can just Make this a little smaller so I can fit more stuff. The color skills tutorial that I talked about. Oh, it's not finding it. That's perfect So Lambda has blueprints. Those are basically already set up and ready to go. You can manipulate them. There is a color skills tutorial in here somewhere. I hope, unless they got rid of it. Oh yes. Who said that?
Speaker 1: You're smart, thank you. I appreciate uh see it worked. I love a helpful audience. Thank you. So if you wanted to try out the blueprint that goes with the tutorial, this is where you would find it Um there's no JS. Sorry no. js. I haven't gone into your language yet and I don't plan on it anytime soon. I like to stick in the Python world. This blueprint's still in 2. 7. I don't know when they're updating it. it but to just get your feet wet, go through the tutorial and set it up, you'll understand a lot more about how you can interact with Alexa So I'm not going to do that. You can do your own ones from scratch, which is what I'm going to do, because I actually have my code in another window.
Speaker 1: So the first part of this is that you have to basically marry Landa and the skills kit. If you don't marry the two, they don't know how to talk to each other. So this is I'm setting up a trigger. So I'm gonna select Alexa Skills kit. I'm triggering it for Lambda. And I'm gonna go on to next. And I'm gonna name my function. I'm gonna say happy days testing because that's all I use. Oh. Doesn't like spaces. That's okay Okay. And fingers crossed that this live demo thing goes well, because if it doesn't We're just gonna move on. Um my runtime is 2. 7. The reason I'm doing this for the tutorial is that
Speaker 1: I know the Happy Days code works with 2. 7. If anyone hasn't used Lambda, the way that it works is you basically just drop your line, you drop your code in line The cool thing about this is you can kind of change code on the fly, things of that nature. So I am going to do is delete all of that. I'm gonna go back into my happy days code and I'm just gonna grab it. I'm gonna paste it. And then I'm going to come down here. The lambda function and the lambda handler are the things that handle your code. There's lambda function. py That's actually what's in your Lambda code. I got really confused when I was getting errors, and trust me, this being my first Lambda skill, I was seeing red
Speaker 1: There's only 10 minutes left? Oh my god, I better hurry up. Time flies by when you're having fun, right? I'm gonna choose an existing role. I'm choosing Lambda Basic Execution and the reason that I'm choosing that is because all I need is to be able to write CloudWatch logs so that I can debug I'm going to go to the next one. I'm going to look at what's going on here. Yeah, that looks good enough. And I'm going to create the function. Yay! It has and is okay, that's great. We recommend testing the function. This is new. Okay, this might not work. We'll see. I'm gonna test it. I'm sure it's fine. Bear with me. Haven't been in here in a while.
Speaker 1: This is what I need to choose. So it should be green. Yeah, I knew that was gonna happen. I mean of course it's fine. I've done this like a million times. So I think this is fine now. Well I am a little oh okay. The ARN is very important here. The ARN that Lambda gives you you need to put into the skills kit. So When you're doing this, save your ARN to a notepad file. Don't think about stealing this ARN because in 20 minutes I'm going to delete this whole thing. So that's it. That's all I have to do on the land decide. I did that in what five minutes? Not a big deal. So now I'm going to go over to the developer portal.
Speaker 1: This is where the Alexa Skills kit lives. Oh, of course it wants me to sign in again. Cool. You go into Alexa. Oh. Never mind. I'm gonna get started. As you can see, this is where all my other skills live. It's the land of misfit toys. So I'm gonna add a new skill. I'm gonna name it Happy Days Testing. And my apologies if I'm going too fast. If you have any like in-depth questions, I'm always open to answering them. Heather at luna. ph is where I can be reached So that looks good, so I'm gonna save.
Speaker 1: And then I'm gonna go on to the next. So this is where you enter your intents, which I hope are up. And they're just the ones that you saw in my code. So it's like a game of matching if you think about it. So that just goes there. Those are slot types. I did not use them, and I'm not going to explain since we're running out of time. The sample utterances are going to go in. That's cool, cool. Then we're gonna go next. Hello, cool Everything's gravy. Great.
Speaker 1: So where do you think my ARN goes? I'll tell you, it goes right there. That's where that comes in. I'm selecting North America. Unfortunately the Alexa Skills kit right now is only available in North America and Europe. I know that they are working on that. Account linking. If you somehow wanted to charge people for your skill, this is what you would do. You would link to your Amazon account, Amazon store, and that's how you would do it. And that's basically it. I'm not going to go through the service, the voice simulator. Um, this is how you could test what's going on. What I will show you, hopefully. On the next page.
Speaker 1: If you decided to publish, this is what you would do. You would give testing instructions for the Alexa crew and all that stuff. At this point, she should be ready to go. So fingers crossed. Alexa. Open happy days testing.
Speaker 3: Here's a dose of happiness. The purpose of our lives is to be happy. Dalai Lama, would you like to hear another quote?
Speaker 1: No, I would not.
Speaker 3: Here's a dose of happiness to laugh with yourself is to love yourself. Mickey Lewis. Would you like to hear another quote?
Speaker 1: So she doesn't understand. No, I would not, because I would I did not make that as a sample utterance, which is why she's being silly. So because I'm running short on do I have ten did I have ten minutes left to talk? And then I can ask questions. Yes, I still have time to get to the really good stuff. Not that that wasn't good stuff. Come on. So like I said, I'm gonna get back into the presentation now. Yeah, you have to do code reviews. So I was like, I finished and I was like, great, this works. Sounds great, this is amazing. And I submit it to Amazon and they're like, no, no. They're like, you forgot a help section, you forgot this, you forgot that. And I was like, oh, this stinks. So I did theirs and I got another stuff back.
Speaker 1: I got another email response back from the Alexa team and they were like, oh, and this, this, this too. And I was like, is this ever going to happen? Oh, did I miss one? Oh, okay, this is actually when, you know, they were like, yeah, it's great, we're publishing it. And I was like, that is really cool stuff. When you're publishing, just remember you're putting it out there. You're putting it out for the haters. Have some. It's fine. But there's some constructive feedback there. The feedback about adding more quotes that weren't so popular, I took that and I implemented it into my skill because I'm like huge on customer service. And everybody gets kind of like a happy face even though I might be like,
Speaker 1: just like, thank you for your feedback. The nice thing about Amazon that they're doing right now is if you decide to publish a skill, this is not with development. If you decide to publish a skill, you get swag if you fill out a form. So I actually took a peek at this month's swag, and it's for those of you that like socks. I mean it's Publish a skill. But is that up? Is that not coming up? That's interesting. Um, okay. I am not sure what's going on going on because it's not bringing up the web page. I can't show you these cool socks that stinks.
Speaker 1: But if you publish a skill you they'll give you an echo dot in DevSweat And the dev swag is binary socks from Amazon Alexa. So that's pretty cool. All you have to do is publish. Promotional credits is something that was recently that was recently let out. If you have a skill and it's published, you are you can get up to $100 a month for your skill if you're using heavy resources and things of that nature. Alexa, the Amazon team's main thing is they want people to build skills and they want to give you the tools to enable you to do those things. I have a giveaway today. I have no affiliation with Amazon. None
Speaker 1: This is just we use Amazon at work and I said, hey, I give these talks. Can I have some AWS promotional credits? They've given me like 50 over the last year So I have nine $25 AWS credits to give away. There are pens and papers and a box next It's Mr. Jeff Triplett there in the front row. If you are interested in joining, the best way to get a hold of you, I'll be pulling the winners later today and I will inform you. Yep, Jeff, Vanna Whiting, the box and the paper and the pens. So that's my giveaway. And oh that was really rushed. Okay, so now I'm gonna open it up for questions. Um yeah
Speaker 1: I guess you're gonna need this here. Yeah. Yeah, I hope I can get it. Still on. Cool.
Speaker 4: It is still on. You know what?
Speaker 1: First. Yes.
Speaker 4: More clapping.
Speaker 2: Fantastic presentation. Is there potential here to write the Django of electric There
Speaker 1: there is a flask ass skill. Um this was more the the example that I saw for Django Flask Ask um which I think was from John Wheeler, was more of a trivia-based tutorial, and what I'm doing wasn't trivia. So um the color skills tutorial that I did was more in line with what I had seen for this project but if you want to do a trivia skill and you want to use a Django tool Flask Ask is probably the best bet for that.
Speaker 5: I was wondering how long she can talk for some of your um quotes I'm guessing are like a one-line edit know if it cuts off after a certain amount and just um how to deal with pronouncing weird names or whatever.
Speaker 1: So yeah so that's part of the testing phase that I did is listening to how she says stuff Sometimes it doesn't it doesn't come off like I want it to. And then I kinda have to tweak. Like if you were if you saw pronunciations and how things go like in the dictionary, like if you typed that out, she would do it. For sure. Um, there's an inspire me um skill. I almost just called it an app. Sorry, Amazon. Um, but that goes on for a while. Those are actually like live talks from people and things of that nature and podcasts can go on for a while too. Basically she's not going to stop until you tell her to. So it could go on forever Just be uh just be ready for that bill from AWS.
Speaker 6: Can you um expand on the cloud front again? I don't know if you showed us if there's any trail that uh how do you hook up cloud front to the lambda and then
Speaker 1: so it's just cloud watch
Speaker 6: or cloud cloud watch so
Speaker 1: when you're doing the basic execution role that I showed it's it's just gonna to do that anyway. I'm hoping I can just get out of my slideshow now. So I can go into oh yes here. See, socks and and echo So if I wanted to go into CloudWatch, I would go into the dashboard. It's already hooked up. I'm just gonna go to services. CloudWatch. Monitor resources and application like Alexa. Hopefully this doesn't take too long to load. Oh look, I went over my estimated charges. That stinks. So, oh, so I don't have anything set up right now. But this is where you create a dashboard for CloudBotch
Speaker 1: Um and metrics I can't scroll down. What is happening? So if she were to have messed up that, you would see CloudWatch logs and they would point you to the line of code where there was an issue.
Speaker 6: Yeah, I guess what I'm trying to get at is is there a way to do almost like web analytics on this where you can see how many people are using it and when are they using it and how long and everything?
Speaker 1: So there's actually a metric in the Alexa Skills kit that that you can go into. It tells you how many unique customers, what they're calling. My numbers are down right now because the scale has been out for a while. But I'll show you If I still have the Alexa Skills kit open, which I do. I'm just gonna go back in. So this is where you would go for that. The metrics. So as you can see, it can tell you how many unique customers, the sessions, the number of utterances. And you can do your time here. If you wanted to know how many people had done it in the last 30 days, you could do that. There's a lot of flexibility in here that wasn't in
Speaker 1: here when I first started making it. So I'm really glad to see that Amazon has changed their stuff and made it more user-friendly. So this is where you would go for the information like that. This is how I found out by the way. I noticed in my metrics not long after I did this that I had spiked up to like uh maybe 30,000 users at one point and that's how we found out that I had been published somewhere. Um so it's cool to look at that and see So I think PC Mag published is one of the best Alexa skills. I'm sure they changed their mind by now. People are constantly, constantly creating Alexa skills, which is just something for me saying, hey, it's time to get back on the horse and make
Speaker 7: Uh yeah, my question is about the utterances. So you say you have to uh specify each one separately.
Speaker 1: Yeah.
Speaker 7: So um is there any facility where it can kind of figure out what you're saying like show me the weather versus what is the weather or no
Speaker 1: you would have to account for both of those utterances.
Speaker 7: Okay.
Speaker 1: Because as you see when I when I told her earlier, I forget what I asked her to do, she didn't understand So that's why utterances you want to think and you want to use as many utterances as you can to support your user base.
Speaker 8: How do you how do you get noticed in the Alexis like s skills store?
Speaker 1: So if you get published and people are giving you high stars, I think I'm at four right now. tr you're going through the process with the Alexa devs so they're seeing what you're making. If they think it's good enough, they're gonna put you in the store, which is also what I found out that at one point I was on the front page of the Alexa Skill Store. So if they think that your skill is good, people are using it and people are liking it, chances are that's where you're going to end up.
Speaker 4: All right, let's give it one more hand.
A development skill remains accessible through the creator’s Amazon account and does not need to go through Amazon’s publication review. Publishing makes it available more broadly, but Amazon reviews it and may request changes before approval.
Discussed at 6:23Set up an AWS billing alarm before you begin, such as an alert when charges exceed one dollar. Resource-intensive services may fall outside the free tier, so monitor usage carefully.
Discussed at 6:46You need a free Amazon Developer account and an AWS account. You can test without an Alexa device by using the Echo Simulator, and AWS offers a free tier for many services.
Discussed at 7:55You can use Echo Simulator IO, which connects to your Amazon account and lets you invoke the skill through a browser or computer, although it is less convenient than a physical device.
Discussed at 7:55Yes. Alexa skills can use Python through AWS Lambda; other supported options mentioned are Node.js, C#, and Java. Heather built her skill in Python and shared the code on GitHub.
Discussed at 9:29An intent represents what the user wants to do, while an utterance is one of the phrases the user might say to trigger that intent. Developers should include multiple possible phrasings because Alexa will not automatically treat equivalent wording as the same utterance.
Discussed at 11:47A session starts when the user says “Alexa,” a launch request occurs when the user opens the skill, intent handlers process requested actions, and the session-ended handler runs when the user stops or cancels. The response must also indicate whether the session should remain open.
Discussed at 16:24Create a Lambda function with an Alexa Skills Kit trigger, add the skill code and handler, then copy the function’s ARN into the Alexa Developer Portal. The Lambda function and Alexa Skills Kit need to be connected so they can communicate.
Discussed at 26:10Give the Lambda function permission to write CloudWatch logs, then inspect those logs when the skill fails. CloudWatch can point you to the part of the code where the problem occurred.
Discussed at 27:48Heather points to Flask-Ask as the relevant Python tool, especially for a trivia-style skill. Her own skill used the Alexa Skills Kit with Lambda rather than Django.
Discussed at 36:31It can continue for a long time, including ongoing talks or podcasts, and generally will not stop until the user tells Alexa to stop. Longer-running or resource-heavy skills can have AWS cost implications.
Discussed at 37:10The Metrics section of the Alexa Skills Kit shows unique customers, sessions, utterances, and usage over a selected period such as the last 30 days.
Discussed at 39:26Publish the skill, build positive user ratings and usage, and go through the Alexa developer review process. If Amazon considers the skill strong and users like it, it may be featured in the store.
Discussed at 41:35Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 14, 2026