While I was reading through Troy Hunt's blog post Why Searching Through 500M Pwned Passwords Is So Quick, I became very interested in Azure Functions and this serverless computing thing. Digging deeper into the serverless subject, I found Mike Roberts's article Serverless Architectures to be very useful in getting the big picture and undersdanding where serverless architectures are best fit, and where they are not fit as well.

I was an advocate for cloud computing back in 2009 when AWS was still in their early years and certainly they were not available in Brazil. I saw the potential and was frequently finding ways to make my college projects be about it, or related to it in some way, Linux Beowulf Cluster is a clear example of that. In 2011 at the Regional Electoral Court we had to take care of lots of servers on-premisse, same patern in 2013 at TOTVS, we had lots of servers there and customers had to have manage their own servers as well. We have come a long way from taking care of hardware to being able to deploy software with a handful of commands, and things keep evolving fast: Software as a Service (SaaS), Platform as a Service (Paas), Backend as Service (Baas)... and now, Function as a Service (Faas)!.

So I decided to get some hands on experience with Azure Functions by coding a serverless app that calculates the max profit one would make from buying and selling 1 Bitcoin between two dates. CoinDesk offers an API for their Bitcoin Price Index (BPI) data. I was betting I would find a .NET client for it on GitHub or NuGet. No luck with with that, but I found a Python client, which lead me to code a simple C# .NET client and make it available on GitHub and NuGet.

Back at coding the Azure Function...