Some Background
Even though I am a software developer, my video editing skills have come in handy for me many times. Before a meeting, often times I will make a screenrecording ahead of time with all my status updates, that way if anyone misses the meeting they can just watch my video to get my status update. Also, videos are inherently viral/sharable, so it's a handy way to get the word out about my work, and looks more polished than just showing up to a meeting and blathering something unscripted.
Tool of Choice: OBS
OBS is free and open source software. In my experience it is superior to any other screen recording software I have used so far on Windows or Mac.
How To
Launch OBS

In the sources panel near the bottom, click the Plus button.

Select Display Capture

Click "Add Existing" and select the screen that you want to share.

Select Video Capture Device:

Leave it on "Create New" and click OK.

Connect to your WebCam if you have one attached.

Now Click + again in sources and choose "Display Capture"

Click Add Existing and select one of your existing screens.

It's going to look like this now with your camera screen and your screen capture screen overlaid on top of eachother:

You can actually resize these in OBS however you want by dragging and dropping with their transform tool with the mouse.
Below I click my camera selfie and start resizing it to make it smaller.
You can click on anything in the main canvas to resize it and move it around.

Here's what it looks like in OBS after I'm done resizing:

Select "Audio Input Capture"

Choose "Add Existing" and select your existing Mic.

Click on "Mic/Aux" in the Sources panel and click the Gear Icon:

Select the device that works best for you. I had to experiment a little to find that this one gave me the best sound.

Click "Start Recording" to start:

and "Stop Recording" when you're done.
If you haven't joined Medium but would love to, click here. By signing up for Medium through my referral link, I will receive a small commission.