Below is a list of personal projects along with a description of the technology behind them. Projects can also be found on the Tree Frog Labs web site.
I have published several Alexa skills in the Amazon App Store. They can all be found here.
Most of these projects have served as a playground to experiment with Node.js and AWS services, while also allowing me to secure some Amazon developer swag.
Play Looks Like
I have been a long-time listener of ESPN's Dan Le Batard Show podcast and built an app based on their Looks Like game. It consists of an iOS app, a web site, and an Alexa skill. I don't yet have an Android app, but it should eventually show up some time in the future.
The iOS app was written in Swift and receives tips (okay, potentially receives tips) through in-app purchases. It uses Fastlane for automated builds and deployment. Data for the application is retrieved from the web site's REST API.
The web site consists of a backend REST API running on Node.js. Data is retrieved from a MySQL database. The web site's front-end was built using React. The web server is running on Ubuntu with nginx routing traffic to the Node.js app. The site is secured using Let's Encrypt SLL certificates.
Castalong (In progress)
As a long-time hobby project, I have built by own podcast aggregator at castalong.com. The web server consists of a back-end written in Python with the Pyramid framework. It supports a REST API that is used by the web front-end and an iOS mobile app (unpublished).
Podcast data is stored in a MySQL database, and several Python-based processes run on the back-end to crawl podcast RSS feeds and update the database. These processes communicate through a Rabbit MQ server to schedule feed updates, playlist updates, sending email, etc. Web and database servers run on Ubuntu with nginx routing traffic to the Pyramid-based server application. The site is secured using Let's Encrypt SLL certificates.
The front-end is written using React and uses REST APIs to manage user playlists.
The iOS app (unpublished) is written in Swift and uses a Realm database for local storage. Playlist updates are communicated through a REST API and synced to the local database. Internally, the app follows a Redux-inspired architecture using the ReSwift library. It uses Fastlane for automated builds and deployment.
This web site is built using Jekyll. It formerly existed as a WordPress site, but I prefer the simplified approach of generating a static site that doesn't require me to think about backups and security updates.