Looking Back at 2020

Published by Mika Berglund on

We are soon (thank God!) ditching the year 2020, and looking into a brighter future in 2021. Little did I know what a year this would be when I wrote my previous annual review. I guess not that many knew, or even had a wild guess at the end of 2019 where 2020 would take us.

While I am extremely fortunate that the Corona pandemic has not had that much of an impact on my family’s life, I understand that the situation is far from the same for so many. Millions have lost their jobs, their homes, or even worse, a family member.

I don’t want to be disrespectful towards all of those who have had a miserable year in 2020. But I guess we have all had our fair share of bad news coverage. So if you don’t mind, I’ll leave that to the real news, and focus on a few highlights instead.

The Year of Microsoft Teams

I guess it’s fair to say that this year has been the year of Microsoft Teams in so many ways. When Covid hit Finland in March, especially the Uusimaa region, many companies went into remote working mode relying on Microsoft Teams for all things communication. In late March, the Uusimaa region was even isolated from the rest of Finland, so it was not even possible to meet customers and colleagues outside the region.

At the end of March the schools closed down, and all kids went into remote schooling mode. My three kids were also relying on Teams to participate in the lessons. Me and my wife were also working from home since mid-March, so at many times, we had 5 separate Teams meetings going on in our house.

The kids are back in school now, although on Christmas holiday currently, but me and my wife are still working from home. I guess remote working is a change that has come to stay. We have finally shown the “non-believers” that remote working can be as effective, if not even more effective, as working in an office. Even though we will beat the virus, and have the possibility to go back to the office, I guess me and many others like me, will still work most of the time from home.

I will visit the office on a regular basis though. Probably on a weekly basis. That’s because the social part of social distancing really sucks to be quite honest. It’s nice to be able to talk to your colleagues F2F (face-to-face) in Teams, but nothing beats meeting people in person. So, looking forward to getting the vaccination the coming spring. Hang in there!

Microsoft Teams as a Platform

With the increased use of Microsoft Teams comes also a demand for applications on the Teams platform. When people spend more time on something, they naturally want to find what they are looking for in the same environment.

The picture below shows how much searches for “microsoft teams apps” have been searched for worldwide over the past 5 years. You clearly see a huge increase in searches beginning in March 2020.

Searches on Google for “microsoft teams apps” over a 5 year period.

Obviously, I don’t have the stats for what the results have been over time, but I have a hunch that the supply have increased quite a lot during the last year. Software companies increasingly consider Microsoft Teams as a serious platform for their applications. If you are looking for information on building applications for Microsoft Teams, the developer documentation from Microsoft is a good place to start.

Blazor is Bubbling Under

In addition to being a fan of Microsoft Teams, I’m also quite keen on all things Blazor. This interest has only grown during the passed year. If you are totally new to Blazor, then have a look at these search results that will give you a good understanding on the subject. Also have a look at my Blazor articles that I’ve been writing here on my blog.

If I had to pick one thing why I love Blazor, it has to be the fact that I can write my code in the same way with the same tools, regardless of whether my application is running on the server or on the client-side in a browser. And if there is a .NET library targeting .NET Standard, then I can use that library in my Blazor application too. I don’t have to mess with JavaScript at all, apart from the occasional calls to JavaScript libraries I may want to use in my Blazor application. Of course, that’s not the only thing why I love Blazor, but I feel that they would deserve an article of their own. I’ll put that on my writing queue for now.

It seems that Blazor has not hit the headlines that much though. Still, there’s a lot going on with Blazor that looks really cool. Remember that that Blazor Server was released as part of ASP.NET Core in version 3, and Blazor WebAssembly was added to the stack in ASP.NET Core 3.2.0. Both Blazor Server and Blazor WebAssembly are now also part of ASP.NET 5, so it’s not going anywhere soon.

Building Blazor Applications

With the increasing popularity of Blazor, there are more and more libraries coming out that will take care of that JavaScript interop for you, so you don’t have to write a single line of JavaScript code in your application. One such library is Blazorade Bootstrap, which is an open source component library that I’ve been working on for around a year now. If you want to use Bootstrap in your Blazor application, I would warmly invite you to have a look at that library.

And since I am also quite a fan of Microsoft Teams, I am currently working on another Blazorade library for Teams applications. I will publish the first preview version of that library in just a few days. That library will make it super easy to write Teams tab applications as Blazor applications. It supports both Blazor Server and Blazor WebAssembly applications. So keep following my blog to be the first to get notified. And again, be sure to check out my other Blazor articles while you’re at it. Also check the Blazor application development documentation to get started.

Azure Cosmos DB Going Strong

Azure Cosmos DB is also among the things in Azure that I’m a big fan of. It has taken a while for me to really understand its value. If you are like me, with a strong background in the relational database world, it will take a while to change your mindset. Writing applications with a no-SQL database instead of a relational database is different in many ways. Have a look at my article “Things You Need to Know Before Building Applications With Azure Cosmos DB” if you’re interested in using Cosmos DB in your applications.

Cosmos DB Free Tier

One of the biggest changes in Azure Cosmos DB in 2020 is the introduction of the free tier that I wrote about in my “Free Tier Now Available for Azure Cosmos DB” article. It wasn’t that expensive before that either, but still it was a bit more expensive than many competing storage options in Azure. Before the free tier, the cheapest option for Azure Cosmos DB was around 20 EUR/month. If you compare that to the cheapest SQL Server database for instance, around 5 EUR/month, then that’s quite a lot. Especially for development environments.

When I wrote my article about the free tier, I also did quite a thorough test, that I ran for several days. That testing showed that the free tier is quite usable for many purposes. And the nice thing about it is that you can scale it up without any limitations, in case your application starts to grow and gain traction. The free tier is implemented as a discount. Anything you use beyond the quota for the free tier, you pay for.

From Provisioned Throughput to Consumption Based Pricing

Another addition to the features in Cosmos DB is the serverless option that was announced in August. This feature is still in preview. I did not find any information about when Microsoft is planning to officially release this feature. The “Azure Cosmos DB serverless” will surely let you know when the feature is out of preview.

I haven’t personally tried the serverless option out yet. There sure are use cases where you could benefit from the serverless option in Azure Cosmos DB. Unfortunately, you have to make the decision to go serverless up front, and you can’t change that later. You would have to provision another Cosmos DB account, migrate your data and update your application’s configuration to switch between provisioned throughput and serverless. Check out the “How to choose between provisioned throughput and serverless” article to decide which option is best for your use case.

Remember to have a look at my other Cosmos DB articles too, if you are interested in learning more about Azure Cosmos DB.

Azure Functions

One service in Azure that has actually become my “Swiss army knife” of cloud services is Azure Functions. With the addition of the Durable Functions extension, you get a very versatile platform that you can use for a lot of purposes. For instance, you could write your own custom API that you would protect with Azure AD and application permissions. That API could leverage Durable Functions for background processing and use Durable Entities for sharing state information between orchestration instances.

Now Azure Functions is nothing new. It’s just something that is becoming more and more important in my toolkit. To follow updates for Azure Functions, have a look at this Azure Updates feed for Azure Functions.

Azure AD B2C

The pricing change for Azure AD B2C was something that I already wrote in my previous annual review. After that change it really seems that it is gaining more and more popularity. I’ve been involved in customer projects where we’ve been successfully using Azure AD B2C for user registration and authentication. Other customers are also expressing their interest in their initial contacts.

One thing that makes Azure AD B2C really interesting for many scenarios is its support for custom sign-in policies. With custom policies, you can add your own custom business logic to the authentication pipelines. For instance, this enables you to augment the claims that are passed on by Azure AD B2C to applications.

I wrote about such a use case in my “Azure AD B2C Custom Policy Calling a REST API to get Additional Claims” article. In that article I describe how you can create a custom policy that calls into a custom API. This API returns additional claims for users after they have been authenticated by Azure AD B2C. That custom API is, quite obviously, implemented as an Azure Functions application.

Custom policies in Azure AD B2C can be quite hard to get right. But if you’re interested, have a look at my article I linked to above. It should have all the necessary information and links you need to get a good start.

Azure Does Not Solve Everything

As much as I am an Azure fan boy, I realize that it does not provide a solution for every need. One thing that I’ve been struggling with in Azure is running a WordPress site. Back in 2014 or 2015, when I was running my own company Develore, I’ve been trying to run a WordPress site on Azure. At the time, there was no native MySQL offering in Azure. The only option was to use a 3rd party offering, or try to use a plugin or extension that would add support for SQL Server, and hope it would work. Well, I can tell you that you will run into problems at some point. Be prepared for that.

Running My Site on Azure

Some time ago, Microsoft added MySQL as a native service to Azure. So when I some 1,5 year ago decided to start my own website and blog, I naturally thought that I would run WordPress on Azure using the native services. Sure it works, no problem with functionality there. And any plugin that you would think of adding to your site would work, since you would have a completely supported environment. The problem that you will run into is with performance. You can’t run your WordPress site on the cheapest App Service Plans in Azure. Your site will just be reaaaaaalllly sloooooow. I ended up turning up the App Service Plan to something that was costing me around 70 EUR/month, but the site was still quite slow.

Moving to Another Hosting Provider

So I switched to another hosting provider that is also my go-to provider for domains and DNS, namecheap.com. Now this site costs me just a few EUR/month (a little over 3 EUR if I remember correctly), and the performance dramatically faster than when I was running the site on Azure for close to a 100 EUR/month. If you’ve managed to set up WordPress in Azure and run it at a reasonable price, I’d be happy to hear about it in the comments below.

Content Production

As I already wrote in my previous annual review, I was going to get back to video production after a long break on my YouTube channel. Well, that break is now one year longer ;(. I was really going to bring my YouTube channel back to life. I even turned my desk at home into a recording studio with green screen background and everything, as you can see from the picture below.

But then Corona happened and everything shut down here in Finland. Companies went into remote working mode. Even the schools shut down, as I wrote in the beginning of this article. Ever since, this house has not been empty long enough to give me the peace I would like to have to do recording. Yes I know, that’s just an excuse, but that’s how it is.

I will still try to bring my YouTube channel back to life in 2021. Maybe I could use our offices for recording, now that everybody is working remotely anyway.

Not Related to IT

Now this article might give you the impression that cloud services and application development is all I do. Well, that’s a big part of my life for sure, but it is definitely not everything.

Working Out

For a long time now, I’ve been trying to find a way of working out that I would like and stick to. Already back in 2019 I found LesMills Bodypump that I really started liking quite a lot. As if 2020 was not miserable enough, I had a shoulder injury that prevented me from doing Bodypump. I even went to surgery, but it turned out to be just a frozen shoulder. Well, I’m still recovering from that one year later, and I haven’t been able to return to a Bodypump class for a year now.

To make things worse, most of the gyms here in Finland closed down in March to battle the C-pandemic. That’s when me and my wife discovered LesMills On-Demand and Bodycombat. We’ve been doing Bodycombat at home ever since, 3 to 5 times a week. That has really had a very positive impact on my physical stamina. Since May 2020, I’ve lost close to 15 kg. I also soon need to start punching in new holes in my belt, because I’m on the last hole.

After the summer, the gyms opened, and I was able to go to a Bodycombat class at my gym. I still kept the on-demand subscription, and was trying a lot of the other programs they have. For instance, I tried Sh’bam a couple of times with my daughter. It’s a workout that is street dance influenced, so it feels like partying just as much as working out.

At least for now, I think I have found something that I could keep on doing on a regular basis.

Building a House

I guess our plans are so far already that I can make this official. During the lockdown in March 2020 (again), we realized with my wife that we don’t have to live in the same place all the time. We both can do our work remotely, so we don’t have to live in any specific place for that. The kids are in school, but they have long holidays during the summer, around Christmas, in the winter and during Easter, so we could actually spend a lot of time somewhere else.

So, we are building a second home for us in the Finnish archipelago. It is just about a two-hour drive from where we currently live, so we can use it whenever we like. It will be a fully equipped house suitable for living all year around, so we’ll be there during the summer as well as during the winter. We will still continue living where we live now, but spend a lot of time in this second home away from home.

Don’t have any pictures of that yet, but the deals on the property and house are done. We’re currently in the initial planning phases. The house will be delivered in the beginning of June, and it will be assembled by the end of that month. More on that project later.

Flying – A Long-Time Dream

I’ve had a dream for a long time that I would like to pick up FPV flying with quadcopters. I am mainly interested in exploring places from a different point of view, and just generally flying around. One thing that would be really cool would be to travel around and explorer places that you normally would not be able to explore, like mountain surfing for instance. I’ll have to get back to that when travelling becomes safe again.

So, during the summer, I started researching into the gear I need, and learning how to fly a quad. At first, I got myself just a radio transmitter that I hooked to a simulator, Velocidrone. With the simulator, I clocked well over 10 hours of stick time before I got my first tiny whoop from Beta FPV. A tiny whoop (or mini whoop) is a small quadcopter that typically has the propellers protected quite well. That makes it suitable for flying indoors as well. However, you can fly with them outside too.

After the first quad, I’ve gotten myself a bit bigger quads. The last one, which is still in the mail, is an Emax Buzz. Really looking forward to the spring, when it gets a bit warmer outside, which makes it more enjoyable to fly. In practice, you’ll have to be bare handed to handle the sticks, so warm weather helps a lot.

I also started another YouTube channel that is focusing on my flying hobby. Currently there are a few flying videos on the channel, but I also plan on doing instructional videos, to help others get into the hobby. I can tell you that it’s not the easiest hobby to get into.


So, all in all, there has been a lot of positive things happening in 2020. I know that’s not the case for so many others, unfortunately. Still I hope that something good can come out of all of this.

I will keep on writing about things I find interesting. Mainly related to Azure and Microsoft 365, with the occasional articles about something else I find interesting.

Hoping your 2021 is better than 2020 was. See you around!


Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *