If this isn't your first trip to my website, you may have noticed some changes. While there are many more to come, these changes are a lot more complicated behind the scenes than they appear so I figured would take some time to tell you. This website is used to learn, hone and display my skills. It has always been in a database backend because of my background and experience with SQL server. This year I decided to upgrade to MongoDB Atlas. While I was already going to rewrite the code, I decided to do some other upgrades as well. While these were all done at the same time, I will break them down into sections for clarity.

I wanted to improve my skills with MongoDB, and I wanted a more flexible schema that I could use to store all my content. Document databases store everything as a JSON document (technically BSON, but whatevs). This means you can add attributes to data as needed. For instance, when I added a members only flag so I could put a bit more security on family pictures, I added a member content flag, which I made equal to true. I didn't have to update existing content, I just made a query that returned records where the member flag was not equal to true. This gets me all of the records that are labeled false and those records not labeled. If I wanted a document to be members only, I just needed to add that flag.
While I will always be a “softy”, a Microsoft Guy, I have been leaning into cross cloud technologies like MongoDB Atlas, Databricks and Snowflake. The beauty of these is that you aren't stuck in the standard cloud setup, which I equate to Hotel California. You can join, but you can never leave. Having cloud agnostic technologies allows you to leave when necessary, whether that be for financial reasons, disaster recovery or geopolitical compliance (like not having an Azure data center in

Fast API is an asynchronous framework that can build APIs quickly in Python. Flask works well, but it doesn't scale well. As a machine learning engineer and a solution developer, knowing a scalable API framework built on python just makes sense. Another benefit is that using this to rebuild the site has improved my asynchronous programming skills. I have also learned a lot about how to maintain session state in an asynchronous environment.

While I have used ADAL in the past, and MSAL currently, being able to verify my new “members” using their preferred authentication provider is a really nice thing. While I currently only have Microsoft Social as an option, I plan to add Linkedin and possibly google too. It has been a good learning experience and improved my skills in oauth, msal and modern authorization and authentication technology.

Dark Mode.