galando/alexa-skill: The Architecture of a Silent Conversation
How a minimalist Kotlin implementation decoupled the "Voice-First" monolith and brought backend discipline to the Alexa Skills Kit.

We didn't really have a lot of Alexa skills available in Portuguese, so I decided to develop some myself
- The repository replaces monolithic if-else routing with a strict Command Pattern using the Alexa SDK v2.
- Each voice intent resides in an isolated class to allow for modular scaling without touching the core routing logic.
- Kotlin’s fluent APIs and null-safety reduce the verbose boilerplate typically found in the official Java SDK.
- The architecture integrates SQL persistence and JWT authentication to treat voice interfaces as robust backend systems.
The Death of the Monolith
Most voice applications start as a single, bloated script. A user speaks, the payload hits an AWS Lambda function, and a massive if/else or switch statement attempts to route the intent. It works for a hackathon, but it collapses under the weight of a production skill.
galando/alexa-skill takes a different route. By implementing the Alexa SDK v2's Request Handler abstraction in Kotlin, it enforces a strict Command Pattern. The core entry point, HelloWorldStreamHandler, contains almost no logic. It simply acts as a skill dispatcher, maintaining a registry of independent handlers.
Inside the handlers/ directory, each voice intent lives in absolute isolation. The canHandle method acts as a precise filter, while the handle method dictates the response. Adding a new voice command requires zero modifications to the existing routing logic—you simply drop a new gear into the gearbox.
The Brazilian Pioneer
The repository is the work of Eduardo Fischer dos Santos, a former backend engineer who became a prolific creator in the Alexa ecosystem. When the Amazon Echo first launched in Brazil, the local marketplace was practically empty.
Fischer's skills eventually reached hundreds of thousands of users. This repository serves as a snapshot of the foundational architecture he used to scale those applications, bringing backend rigor to a platform often dominated by fragile scripts.
Kotlin’s Semantic Sugar
The choice of Kotlin is deliberate. The official Alexa Skills Kit SDK for Java is notoriously verbose. Kotlin’s expression bodies, null-safety, and fluent APIs transform that boilerplate into highly readable, declarative intent logic.
| The Standard Way | The Galando Way |
|---|---|
| Nested if/else routing blocks | Independent canHandle predicates |
| Verbose response builders | Fluent input!!.responseBuilder chains |
| Difficult to isolate and unit test | 100% testable, single-responsibility classes |
| Monolithic file structure | One class per voice intent |
The codebase even leaves the HelloWorldIntentHandler returning a placeholder "BlaBla" response. This isn't an oversight. The repository is a pure architectural template, designed to get the plumbing out of the way so developers can focus on domain logic.
The Serverless Payload
A glance at the build.gradle file reveals that this "simple" skill is wired for heavy lifting. It includes dependencies for org.jetbrains.exposed and mysql-connector-java, indicating a design meant for persistent SQL database connections.
Furthermore, the inclusion of the fuel HTTP client and java-jwt points to robust account linking and external API communication. The project leverages the Serverless Framework to manage AWS infrastructure, using a custom Gradle task to properly structure the ZIP payload for Lambda deployment. It’s a masterclass in treating voice interfaces as serious backend systems.