Building : 01. Introduction


This is the first in what will be a long series of blog posts that document my experience building a real-world, planet-scale production application using .Net Core for the api/backend, Aurelia for the web ui and Xamarin for the native mobile ui. Everything that needs to be hosted (api/web ui) will be done via Docker so that the application can be ran literally anywhere without any vendor lock-in or incompatibilities.

This series is going to go much deeper than just source code and software architecture. It will include posts on creating and verifying software specifications, continuous delivery, continuous deployments, monitoring, alerting, exception management, building a financial model, etc. In essence, this series will show all aspects of building a very small startup.


In both my personal and work life I've been hit more than a few times with expired domain names, api keys and ssl certificates while maintaining production software systems. When api keys expire, things start to break. If that thing is one of many components in a large scale system, the ripple effect can be hard to diagnose. While you are troubleshooting the cause, customers are angry because stuff isn't working and your brand reputation starts to suffer. It's worse when it's an expired ssl certificate because it takes longer to fix than an api key (usually). In general, stuff that expires needs to be tracked.

These days most domain name providers do a good job with giving you a series of emails before your domain expires so that you can renew it but not so much for api keys across various vendors and the same for ssl certificates.

For this reason, I've set out to build, an application that tracks your assets (domain names, ssl certificates, api keys, etc) along with their expiration dates. You can setup whatever notification policies that you'd like in terms of how often and by what medium (text, email, webhook, etc) that you'd like to be notified.

The first version will all be manual entry but future versions will include automatic retrieval of domain name and ssl certificate expiration dates.

I'm excited to document the journey so that others can both benefit from my mistakes as well as help guide me to better ways of doing things as it's all a great learning experience.

In the next post we'll get started with day 1 tasks!

Wes Shaddix

Read more posts by this author.