← All AI Engineer talks

AI Engineer World's Fair 2025

Supercharging Developer Workflow with Amazon Q Developer

About this talk

AWS presenters Vikash Agrawal and Linda demonstrate Amazon Q Developer across the software development life cycle by generating a 2048 game with FastAPI through command-line and IDE workflows. They cover MCP, documentation, unit testing, context-aware bug fixes, and troubleshooting an AWS Lambda deployment with CloudWatch and Amazon Q Developer AI operations.

Chapters

  1. 0:00Presenters and generative AI across the software development life cycle
  2. 1:18Amazon Q Developer in the CLI and IDE
  3. 2:14Building a 2048 game with FastAPI and MCP-enabled CLI workflows
  4. 4:45IDE integration, generated documentation, unit tests, and bug fixes
  5. 9:40Debugging AWS Lambda with CloudWatch and AI operations

Talk transcript

  1. 0:00

    Hi, everyone. I'm Vikash. I'm a Software Development Manager with AWS at Amazon.

  2. 0:05

    I'm Linda. I'm a Developer Advocate at AWS, and in this video we're going to talk about the software development life cycle, and specifically how you can use GenAI throughout that life cycle.

  3. 0:17

    We're going to focus on Amazon Q Developer, which is an AI coding assistant, and we're going to show you where you could use it in all the different parts of that.

  4. 0:25

    So I'm going to throw to Vikash because he, as a manager, always gets a very common question regarding this.

  5. 0:31

    One of the most common questions that I hear from the engineering team is how can they incorporate generative AI practices into their software development life cycle, or the SDLC?

  6. 0:42

    For those of us who don't know what SDLC is, it's a process of building and releasing software to our, uh, customers. We generally start with a planning phase where we gather requirements, product feedbacks, et cetera.

  7. 0:55

    Then we go to the create phase where we actually build the software app- application itself. Then we test it, do end-to-end testing, integration testing, penetration testing to make sure that the software that we are building is safe for our customers.

  8. 1:09

    We then deploy it, and finally we maintain it and modernize it. Over time, depending upon the feedback, we go through this cycle all over again.

  9. 1:18

    So let's get right into it. Amazon Q Developer is a coding s- assistant that is also in your IDE, can be even in your CLI and terminal. Actually also has a GitHub extension and can be also in different parts of the life cycle, right?

  10. 1:33

    So I'm gonna show you where you could get started. One of the cool things is if you install it in the command line or the IDE, doesn't require an AWS account.

  11. 1:41

    All you have to do is go to this page, click Get started for free, and choose which one you want. Once you do that, I'll just quickly show you, here you have an example of how it appears in Visual Studio Code.

  12. 1:51

    Over here... And we're gonna build, don't worry. Here is the way it appears in the CLI. What we d- can do next is jump into the CLI version because that's the most lightweight version for you to install Amazon Q.

  13. 2:01

    You all have a command line on your computer, and here you can do either the planning phase, or if you've already done the planning phase somewhere else, you can go straight into creating and coding.

  14. 2:12

    So let's get into it.

  15. 2:14

    I have an idea. Why don't we build a game for our viewers today? So this game is called 2048 or 2048. So we have multiple tiles. The goal of the game is to merge two tiles of the same number, and then the numbers double.

  16. 2:28

    The goal is to reach a total of 2048, or 2048. So here if you see we are merging two tiles of two, they become four. We are merging two tiles of four, they become eight.

  17. 2:39

    We are merging two tiles of eight, making them 16, and so on and so forth.

  18. 2:43

    This is a really fun game to build. So I actually think let's get right into the CLI and try it out. So everyone has a command line, right? So in order to start Q, once you install it, we showed you where to install it.

  19. 2:54

    Now Vikash gave me a challenge. We have to build this 2048 game. To start it, all I have to actually write is Q. I press Enter. If you aren't sure what to do and how to use it, you can just type with natural language right now and start just talking to it also as a chat, also to

  20. 3:08

    ideate. But if you want to see all the other options you have, you could do /help and you will see also that you have all these, uh, different commands, as well as MCP if you would like to use that, and other tips.

  21. 3:21

    So for now, I want to build a 2048 game in Python.

  22. 3:28

    Using FastAPI?

  23. 3:29

    Yeah, let's do using FastAPI.

  24. 3:33

    Uh, let's use Poetry.

  25. 3:34

    Using Poetry. Let's see what it comes up with. So now it's giving me the plan. It's telling me, "Here's what I w- I'm, I'm going to do," and now I have an ability to either accept each step by pressing Y and Enter, or I can just do T and trust it.

  26. 3:49

    Vikash, should we trust it?

  27. 3:51

    I, I trust Q.

  28. 3:52

    Of course, this is a demo. If you're building in production, we always recommend reviewing the code, but here we're gonna trust it and it'll start running. And now you can see how long each step is taking as well.

  29. 4:01

    All right. So now while we were chatting, this was generating some 2048 code here. One thing I forgot, and check this out. One thing I forgot is, look, it's putting it in inside just my, my regular folder.

  30. 4:13

    I actually want it to move the whole thing into my development folder. So guess what? I could actually asked it, "Can you move this project to my development folder?"

  31. 4:21

    So now it will move it in there.

  32. 4:23

    That's actually pretty nifty little hack.

  33. 4:25

    Yeah, 'cause I always forget when I do this to [laughs] put it in the right place. All right. So now, uh, it's saying the p- the project's set up. You could see that here it appears in my development folder.

  34. 4:35

    Awesome. I think this code actually looks good. I am really happy that it is using FastAPI rightly. It has a response model. It has created POST APIs.

  35. 4:45

    Agreed. What's cool, Vikash, you could also use this in your IDE, right? And open the folder structure 'cause of course this is more coming out in the CLI, but you can use Q in your IDE of choice.

  36. 4:58

    Given that my engineering team relies on VS Code, IntelliJ, Eclipse, um, and everyone has their own preferences, right? And Amazon Q Developer touches all these touchpoints, which makes it very seamless of an experience.

  37. 5:11

    It even created a README, Vikash. Which part of the software development life cycle is that? [laughs]

  38. 5:17

    Awesome.

  39. 5:19

    So now it tells me what my project structure is, it created it in the development folder even though I only remembered midway, and it tells me how to run it.

  40. 5:26

    I think this is a great start, but is it production ready? I w- I would say no too. Why don't we add unit test? Yes. So let's open it in the IDE.

  41. 5:36

    So why don't we start with adding unit test to make sure that it's production ready? So let's start with that. I quickly open up in my IDE, and I start invoking my Amazon Q Developer agent for test, for generating unit test by invoking /test.

  42. 5:52

    So here I'm doing /test. It automatically invokes the Amazon Q Developer agent, and it quickly starts looking at the code itself. Once it's done, let's look at the generated code.

  43. 6:05

    Here we see it is able to understand all pieces of the code, and we have, I think, a good amount of test. It is amazing that it was able to also understand the state and created relevant test for the state management itself.

  44. 6:19

    So I think this looks pretty, pretty robust. I generally use /test a lot. There's also a feature called /dev, which is for feature development. You can give it a prompt in the IDE.

  45. 6:30

    It will automatically understand the entire project as context and build context-aware features for me. So let's go ahead and quickly ask Q to fix my bugs by just saying fix and giving the error message.

  46. 6:45

    It quickly analyzed my code base, it figured out where the error is, gave me the code, I applied it, and now let's see what happens.

  47. 6:55

    Voila. I have a working code for a game with unit test. Let's do one more thing. Why don't we generate documentations before we raise a pull request? So let's invoke the /doc, which is the Amazon Q Developer agent to generate documentation.

  48. 7:11

    I go ahead, I quickly pass on /doc. I ask it to create a README. So initially, there was a README generated, but now that we have a code and we have unit test, I, I want to see how it does better.

  49. 7:23

    So it quickly started my summarizing my code base, started going through my source files. So now I see a documentation. It is able to understand my source code. It gives me the instruction, which was pretty much the same last time as well.

  50. 7:36

    This is interesting. Now my API endpoints also have relevant examples with my troubleshooting documentation, and it also gave me a data flow diagram of how my state is being managed.

  51. 7:49

    And I think one of the next steps could be deploying or having a PR, but did you know also that Q is available inside GitHub, and you can actually build inside GitHub?

  52. 7:58

    It has agents there, and I'm going to show you really quick that as well. So if you like to build on GitHub and not leave GitHub, you can also do that.

  53. 8:06

    Awesome.

  54. 8:06

    I'm gonna give you a quick overview. So head over to Q Developer in, in Marketplace in GitHub, and all you have to do is choose which repos you want.

  55. 8:14

    You can put all or a few. And now you can actually either use an existing issue or create a new one. Apply a label. Here, let's say we're just doing development agent.

  56. 8:23

    And based on that issue, it will generate code. It will tell you when the PR is ready, and you can then look at the files that were changed. And now if we wanna change something in the PR, you can actually add comments and request changes like I normally would in a review, and then request the changes so

  57. 8:41

    it does it again. So you don't even have to leave GitHub. And then Q also automatically runs code scans and fixes it right in the PR. And so it's pretty awesome how you can use also agents right inside GitHub with Q.

  58. 8:55

    And we talked about where we could code, which is IDE, CLI, GitHub. We're building this 2048, uh, uh, game. We even ran tests. We add documentation. So what's next in the life cycle?

  59. 9:08

    So n- the next would be to deploy it to our cloud services already. So one of the most common things, and I'm guilty of it, is saying, "Works on my machine."

  60. 9:17

    Right? To make this game- [laughs] ... an actual production ready, we'll deploy it into AWS console. And in the background, I use the /dev agent in the IDE to actually generate SAM scripts and deploy my application.

  61. 9:31

    You, you know what's something interesting I found?

  62. 9:34

    What?

  63. 9:35

    That our application was actually not running the right way in production.

  64. 9:39

    Oh.

  65. 9:40

    Yes. So I need to investigate. So let's go ahead and do that. So here I come to my AWS console. I go into my CloudWatch. Let's first look at the Lambda where I deployed through SAM, and I'm d- looking at the logs, and I quickly see there's, is some import error happening in the Lambda itself.

  66. 9:59

    Now I can start investigating the application directly in the console itself using Amazon Q Developer.

  67. 10:07

    The Amazon Q Developer AI operations automatically starts looking at the log group and all the associated resources. It creates a topology and then figures out the root cause for me.

  68. 10:20

    I don't have to spend time debugging. I can look at the graphs. I can figure out what's going on and come back and fix my application. It's so easy for developers to actually know what's happening rather than trying to find the right timestamp and create reports or incident reports for the team.

  69. 10:37

    So this feature enables me to quickly look what, what's wrong in my application, and I can go back in time and go ahead and fix it. I think this...

  70. 10:47

    I was happy with this report, so let's just go ahead and close the investigation. Taking this game to production, I think, uh, when we saw the errors and Amazon Q Developer helped us debug what's the reason, I think one of the takeaways for me in this particular situation is to think of infra upfront, how your application is

  71. 11:07

    going to the customers. I think if that's something that we would have done early on, we wouldn't have-

  72. 11:12

    Right

  73. 11:14

    ... faced this-

  74. 11:14

    I should have asked Q CLI to generate an IaC.

  75. 11:17

    We should have thought about infra upfront.

  76. 11:18

    We are both part of the software development life cycle, Vikash. [laughs] [laughs]

  77. 11:22

    So we should have thought about it upfront. What was your takeaways?

  78. 11:27

    My takeaway is kind of similar to yours, where we have to k- pre-plan. So that planning phase might have other things, and maybe one way to actually follow best practices is to actually ask...

  79. 11:38

    Even in the CLI, we could say, "What is the best way for me to plan for something that's a bit more robust, right, and production ready, and follow best practices?"

  80. 11:46

    And you can iterate before you ever actually have the code saved anywhere, right? Or like generate and iterate. So I think the planning part where you can, of course, if you're deploy- deploying to the cloud, use IaC.

  81. 11:58

    And then being able to use and utilize Q in different ways for your use case in so many different locations is helpful. Of course, it's always you are the person planning, you're the manager, and AI just is just helping you with all these tedious tasks and almost becoming your assistant in so many places there.

  82. 12:13

    So it's awesome you have it in all these different places, but of course, it's on you as we learn to [laughs] be able to, uh, do this responsibly. Um, and I love the security scans and the monitoring and observability 'cause I think it's helps a lot in mitigating issues, so.

  83. 12:27

    Absolutely. One of the things that you rightly pointed out is as engineers and with generative AI and Amazon Q Developer, the planning phase might probably also include planning your prompts, because prompt engineering is going to be a very important skill set to make sure that you get desired outputs from the, uh, from the la- models and the

  84. 12:48

    agents.

  85. 12:48

    So for anyone who's watching this and wants to try Q, first of all, you could try it for free in the IDE. You could try it for free in the CLI.

  86. 12:55

    You could try it for free in GitHub and so many different locations. So definitely give it a try. Play around with it yourself. So you could head over to aws.amazon.com/q/developer and get started building right over here.

  87. 13:08

    If you wanna see what's new also, check out... There's updates coming through, so be sure to check that out. And if you have any questions, let us know in the comments.

  88. 13:17

    And as always, happy building.

  89. 13:20

    Thank you.