Amazon introduced Alexa AI to the home with the Echo and Dot and now have a new Echo Show device with a full size touch screen.
I started building a Skill for the Alexa ecosystem as soon as the Echo was available in the UK and it was one of the first 100 to be made available (and I have the t-shirt to prove it!). The skill lets anyone find out when the International Space Station (ISS) will make a visible pass of a city of their choice. It also can tell people who is on board, where it is right now and will replay the updates on the NASA Blog. The pictures above are visible passes correctly predicted by the Skill and capture using the NightCap Pro app on iPhone.
It's available on the UK Skill Store and the US Skill Store and has got some pretty good scores. It uses Empheris calculus written in Python and residing on a API Server in conjunction with a Lambda function to respond to the Alexa intents. The API is able to take either a name, post code or latitude/longitude pair for pass time predictions and can additionally tell you the expected weather at the time of the pass (or passes - up to five can be requested). The locator API will tell you latitude and longitude, which place on the Earth it is over and the height and speed of the ISS. It uses data from NASA for ISS motion, calculates latitude and longitude using Google Maps API and gets weather from a free weather service API. It also uses a Redis database of millions of locations around the globe and a fast way of locating oceans using an image as a lookup table.
It was featured in Amazon newsletters and at one point it was getting 3,000 users a day - one of the highest used Skills on the store and I still have a core of dedicated people who come back regularly to find out when the ISS will be coming back.
I had a lot of fun building it and built up a good expertise in how to build voice interfaces. The trick is not the simple responses to good requests, it is guiding the customer when they misunderstand how to ask for things or use unexpected terminology. For example, evene though there are example phrases given and it's made clear that city names are required, people will still ask for "over my house" or the name of a tiny village. Making things robust is the key to avoiding customer dissatisfaction.
Since then I have also made use of a new API that allows customers to give their device postcode information. Implementation wasn't too bad, but I ran into complexities in dealing with testers who didn't read instructions, so eventually decided to spin this off as a new version of the Skill. So now I have two skills.