💡 What is Amazon Kiro?

Amazon Kiro is an AI-powered IDE (Integrated Development Environment) that helps developers write code through natural conversation. Instead of memorising syntax or reading documentation for hours, you describe what you want to build and Kiro helps you implement it — writing code, debugging issues, and suggesting improvements along the way.

🛤️ The Development Journey

What started as a simple idea — "Can I type Morse code on a Raspberry Pi?" — evolved into a full-featured application. Here's how the conversation with Kiro shaped the project:

Step 1 — Architecture & Setup

Kiro suggested using pygame for the display and mouse input, sense-hat for the LED matrix, pyttsx3 for text-to-speech, and threading for responsive UI. It laid out the class structure and main event loop.

Step 2 — Iterative Feature Building

Each feature was added through natural requests:

  • "Add mouse click detection for dots and dashes"
  • "Display characters on the Sense HAT LED"
  • "Add a Mario tune when the message is complete"
  • "Let me exit by holding both mouse buttons for 5 seconds"

Kiro understood the context and implemented each feature while keeping the existing code working.

Step 3 — Real-Time Debugging

When issues came up, describing the problem was enough:

  • "The LED shows scrambled text when I reset during a message"
  • "It shows 'AT AT' instead of just 'AT'"

Kiro diagnosed threading race conditions and implemented proper locks and state management to fix them.

Step 4 — Hardware Adjustments

Physical setup varies for everyone. Simple requests like "Rotate the LED display 90 degrees anti-clockwise" or "Change the exit hold time from 10 to 5 seconds" were handled instantly.

🎓 Why AI is Great for Student Projects

🚪

Lowers the Barrier to Entry

Hardware projects traditionally require knowledge of Python, threading, hardware interfaces (GPIO, I2C), audio processing, and event-driven programming. With AI assistance, students can focus on what they want to build rather than how to implement every detail.

🔁

Learn by Doing

Instead of reading documentation for hours, students can start with a simple idea, see working code immediately, understand the implementation through explanations, and iterate freely.

🧩

Complex Concepts Made Accessible

This project uses multi-threading, state machines, audio synthesis with NumPy, and hardware abstraction with graceful fallbacks. AI handles the complexity while students learn the concepts.

Rapid Prototyping

Ideas can be tested in minutes, not hours. "Add an achievement tune" — done. "Actually, use Mario tune instead" — switched instantly. This keeps students engaged and experimenting.

💬 What Conversations Look Like

Here are examples of the kind of natural-language requests that built this project:

🧑 Student:

"I want to make a Morse code input system using a mouse on my Raspberry Pi with a Sense HAT."

🤖 Kiro:

Designed the full architecture, created the MorseCodeSystem class, set up pygame for mouse input, and implemented the Morse dictionary lookup.

🧑 Student:

"The LED shows scrambled text when I reset during a message."

🤖 Kiro:

Identified a threading race condition where the LED was being written to from multiple threads simultaneously. Added led_lock and proper state clearing.

🧑 Student:

"Add a Mario tune when the message is complete."

🤖 Kiro:

Implemented play_mario_tune() using NumPy sine wave synthesis with proper note frequencies, durations, and attack/decay envelopes.

🧑 Student:

"Let me also type text on the keyboard and hear it as Morse code."

🤖 Kiro:

Added a keyboard mode toggle (TAB key), text input handling, and a text_to_morse_audio() function that converts each character to beeps.

🏆 Real-World Skills Learned

🧱

Problem Decomposition

Breaking a big idea into smaller, manageable tasks that can be built and tested one at a time.

📝

Clear Communication

Learning to describe technical requirements precisely — a skill that's valuable in any engineering career.

🔍

Debugging by Observation

Describing what you see vs. what you expected, and working through the diagnosis logically.

📐

Software Architecture

Understanding how professional software is structured — classes, methods, event loops, and separation of concerns.

🔄

Iterative Development

Building features incrementally, testing as you go, and refining based on real-world feedback.

🤝

AI Collaboration

Learning to work effectively with AI tools — a skill that will be increasingly important in the future of software development.

""