Remote work isn't a new concept working with technology, be it sitting in an office in a different country than the customer, or the whole "I don't need to leave my bed to write code". If you work with Azure you should be fairly familiar with the concept of your compute power not being located in your basement.
Nonetheless, it is different if you find yourself in a position currently where you're simply not allowed to go into the office due to the circumstances most of the world is facing currently.
Granted, there's the whole gamut of fallout here. Some companies are laying off people since there is no business to speak of, and others have to work around the clock to keep up with the extra demand. So when I say downtime that can mean different things to different people, but I still think you understand what I mean using that term.
So, what can we make out of this as cloud enthusiasts, and how to turn it into level-up time?
Travel time equals learning time
I usually have thirty minutes travel time getting to the office in the morning. Most mornings I watch either Pluralsight or Channel9 to catch up on new tech (since I take the metro to work). This is great, but as I'm watching on my iPhone I have to make sure I do sessions that don't require me to code along at the same time.
Getting to work now has been reduced to mere seconds. Sure, I could spend extra time in bed, but getting up is a routine anyways so I get up at the same time. In addition to getting a few more minutes I can spend on videos I can choose from a wider range of videos (and enjoy it on a much larger screen). If you usually drive to work you should suddenly find yourself with plenty of extra screen time before booting up Visual Studio.
Go ahead and use that extra time for learning new things.
No colleagues around equals no guilt
If you have a private office at work with monitors facing the wall (and no windows nearby reflecting anything), you can do regular Netflix sessions at work. Most of us don't have that luxury. But have you ever felt guilty for watching technical training videos at work in an open office? For some reason it's more socially acceptable to be reading random web pages than lean back and enjoy a good tech video, because some people feel that passively watching something isn't real work.
None of these people are around. (Unless you have family members of the same type.) And since you're not hanging around the water cooler discussing what you watched on Netflix yesterday (when you were "reviewing code"), you should have a fifteen minute slot or two during the day to get some guilt-free learning time.
Of course this should be in moderation - if someone is paying you to configure pipelines in Azure DevOps they might not appreciate you spending three hours learning about TensorFlow on Google cloud.
No running into people on your way to the coffee machine equals small pockets of free time
Maybe you have an RSS feed hooked up to Outlook or subscribe to some great blogs (hint, hint), but you just don't have the time to prioritize catching up on all that in a hectic schedule.
Many of these articles could be short reads that don't require a lot of dedicated time. Pretend you stopped on your way back with the refill and spend five minutes clearing the queue. If it's a deep dive proceed to the section below, but sometimes it's enough to mentally archive "so they released this new feature in Azure" and retrieve it later when you actually need it.
No interruptions equals go deep
Have you ever found that really interesting article spot-on and relevant for your job with a thirty minute estimated reading time that you never managed to get through because "other people"?
I know, in this day and age there is no shortage of methods to disturb you 24x7 whereever you are, but as long as they don't see you it's valid to say "you called me an hour ago? Didn't notice - I must have been in the kitchen refilling my coffee cup. It's not like I carry the phone with me around the house."
Find something you like and do a focused reading session. Take for instance documentation on the Microsoft Identity Platform:
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols
Start with the top menu item and work your way down. OAuth still requires an effort to learn, but a good chair and some "me time" goes a long way to help.
No time spent having a beer on your way home equals learning a broader topic from A-Z
Tell your boss that now is the perfect time to do a Proof-of-Concept around this infrastructure as code (IaC) that seems to be all the rage these days.
Start with the defaults and take a look at Azure Resource Manager:
https://docs.microsoft.com/en-us/learn/modules/build-azure-vm-templates/
Find things you like or don't like?
Not everyone likes ARM so why not take a course on Terraform as the next step:
https://www.pluralsight.com/courses/getting-started-terraform
And do a nice little enterprisey walkthrough as a follow-up:
You're more a programmer than a "scripting guy" you say? Since you're already doing a full PoC you've got time for coding up some infra with Pulumi as well (IaC as C#):
https://channel9.msdn.com/Shows/On-NET/Getting-started-with-cloud-deployments-with-Pulumi-and-NET
There's pros and cons with each of these, but I'm not going to taint your evaluation so take them for a spin and go back to your boss (or client) and tell them where it's at.
Things you can't fix right now equals shiny objects you can play with now
Sure, there's a long list of tickets open on the Kanban board that you should be fixing. But one of them requires you to sit four guys in a room and do some whiteboarding. And another requires you to experiment along with an end-user. Surely those wouldn't be recommended to tackle now. But that "containerize your services" task has been dormant for a while. Maybe you should take lead on this and assign it to yourself.
The new Windows 10 update is right around the corner, and with that you get WSL2 (Windows Subsystem for Linux). It's probably close enough that the newest Insider build is stable enough to work with:
https://channel9.msdn.com/Shows/Tabs-vs-Spaces/WSL2-Code-faster-on-the-Windows-Subsystem-for-Linux
And you will want Windows Terminal to go with that
https://channel9.msdn.com/Shows/Tabs-vs-Spaces/Windows-Terminal-the-secret-to-command-line-happiness
With that you're ready to do phase one of containers - Docker.
https://www.docker.com/get-started
Which you should put into Azure DevOps (that's how I build and publish images of my code samples these days):
With that working you're sitting pretty, but why stop there? Kubernetes is the de facto next logical step on the microservices journey, and you want to impress the team with going all-in right?
Kubernetes is bigger than you might think when you start throwing in things like:
- Istio - https://istio.io/
- Calico - https://docs.projectcalico.org/introduction/
- gVisor - https://gvisor.dev/
And there's no guarantee I'm pointing you towards the best products for your use case so you might want to do some more internet searching too.
I don't expect people to remember this, but roughly a year ago I published an extensive guide on getting started with Azure Kubernetes Service:
I would love to say this is the end-all be-all guide, but I really have to write a 2020 edition since there have been so many new versions of both AKS and the tooling since. Maybe you'll beat me to it?
People with wrong opinions not nearby equals you in a position to decide
As devout C# devs we know that JavaScript is the work of the devil. But you just wrapped up this nice backend, and since you claim to be full-stack you want to build some UI on top of that. That front-end guy in the office that isn't able to tell the difference between Java and C# - he's not around to extoll on the virtues of Vue vs React vs this week's JS framework. (Why do Java developers wear glasses? Because they don't C#.)
Good thing Telerik is offering a free e-book on Blazor:
https://www.telerik.com/campaigns/blazor/wp-beginners-guide-ebook
You really don't want to hire me to create your next-generation graphical interface, but even I was able to whip up working model-binding in 1-2-3:
https://github.com/ahelland/Identity-CodeSamples-v2/tree/master/blazor-jwt_generator-dotnet-core
A global pandemic and Azure equals..well..
Cloud has been pushed as the ultimate solution to scaling problems by a lot of people. Of course you would rather be going to the Azure Portal than a noisy server rack and build up a sweat figuring out the cabling these days. Unfortunately even Microsoft's datacenters have physical limits and in some regions there are capacity issues. Both from people spinning up a lot of new resources, Teams and Office 365 setting new records, and capacity being reserved for companies in the health industry and the like.
This means that you might not be able to test out all the stuff you would like to, but this is one of those things that would be hard planning for. I'm sure the Azure infra teams are working on this as we speak, but it's not like you can order five containers full of servers for over-night delivery.
The above suggestions equals you being occupied for the rest of the week
The links I've included are just a couple of topics off the top of my head based on what I have found to be interesting and marketable knowledge. The topics are huge by themselves so my link collection is nowhere near exhaustive, so you'll need to do some research on your own to figure it all out. Submit your suggestions in the comments below if you have other good ideas.
Of course, we are still limited to 24 hours a day even if you could get the impression that I expect people to be able to do all of this during a regular work day. And as I said, it could very well be that Covid already has you working 12-hour shifts. Don't add another 12 hours to that load.
Yes, this was intented as a light-hearted take on the new workday from my side, but this is not to deride the situation a lot of people are in right now. Various stages of lockdown isn't fun, and if you or your family is knocked out by the Corona virus it is no laughing matter. I still believe a humorous approach is how I want to approach my change of routines and new daily schedules.
My thoughts go out to those that are facing this in more troublesome ways than I have done so far.