The crucible – My first training week as a Senior Support Escalation Engineer at Microsoft Charlotte.

Anyway I wrote this partly for me to remember. More than anything really. The mind, has a way of filing things off in those weak brain cells that slip and falls destroy it seems. So this is sort of a log. Week 1 at Microsoft.


In my face-to-face interview with Microsoft, I had a great time (after my horrible experience with Google in Mountain View, on which I may write someday). In the manager portion, I was teased on my 4 page resume with jobs (not contracts) ranging from 6 to 18 months a piece for the last 12 years or so. “Why should we hire you knowing you don’t stay places for long?” – “Those jobs were too easy. I fixed everything, got bored, left. I hope this is different.”

But it was the technical portion that I really remember. I LOVED it. At ING, where I was at the time, I was basically the go-to engineer for weird stuff.

  • <redacted cause I sound pompous>

Someday I swear I’ll get a degree. Somewhere. Someday.

Anyway the guy who intervised me on Exchange storage/DB was a contributor to the white paper I read on Exchange 2003 storage tuning I used at ING to fix our issues. The client connectivity person I had read their content on for Exchange 2000 while at a previous job. Connectors person was an unknown, and an unknown part of Exchange to me really (I hadn’t touched connectivity to other systems at ING sadly).

So Nick, the storage tuning guy, started with a basic, level 100 question. I was nervous though, so I mistook it as a real question out of the gate. He asked, “What is the impact of adding the /3GB switch to the boot.ini in Windows 2003?”

“Obviously this was a trick question”, I thought to myself. Clearly they are looking for more than “it changes the kernel memory of Windows so Exchange runs better” or some such nonsense…

I was stopped maybe 10 minutes into my answer to question #1 in the tech panel. I thought I had done something wrong…

I was on the conference room whiteboard, drawing out the internal data structure of Page Table Entry and why when you switch /3GB in boot.ini, the architecture changes on what it holds where. Something like this I guess:

pte

And CPU architecture and and advent of x64 support and what /PAE and DEP did (because really, how can one discuss boot.ini and 3GB and NOT talk DEP and PAE…. and how AWE worked with SQL and and and …


So my start date was an unorthodox December 31st, 2007. New Years Eve for most of the world. I drove from Atlanta to Charlotte, filled out some paperwork and sat around on my first day. The place was pretty empty. I had New Years Day off as vacation. So I drove back to Atlanta at the end of the work day and had time with my family. Came back to learn that same week.

They were not prepared to train a new hire. Generally folks came in batches. And until recently, Escalation Engineers (EEs are they are known internally) are promoted from within rather than outside industry hires with no internal knowledge of a product. Combine these two and it is a somewhat unique scenario. My mentor, Nick Basile, lined up a week of training for me in January.  To say is was deep training was an understatement.

My first day, I learned internal database mechanics from him.

The differences of Jet Blue and Jet Red databases. Why Jet Blue was used at Microsoft so predominately (think Active Directory, Exchange, Branch Cache, Windows Search). How it worked. How each 4KB page was handled How B+ tree worked under the hood. How power failure was handled, what was the impact of antivirus filter drivers on saying “hey that 4KB write is virus activity” or “hey that .log file write is virus activity”.

Things like that.

Another day with Tim McMichael, aka Mr Cluster, who was not a Microsoft Certified Master of Exchange, but helped make the questions for the high availability portion of the exam just the same..

David Goldman spoke to me for 4 hours or so on the mechanics of OAB distribution and creation. David was a debugging engineer who later went on to help build out/support o365 as I recall.

Amy Mack mentored me on Netmon interpretation. Amy passed away recently. Survived by her husband, Austin Mack, who is one of the brightest engineers I know for troubleshooting/break fix. Hands down.

I wish I remembered the rest of the names. I see faces. But I can’t connect them anymore.

Anyway,

It was a humbling experience. A week of rigor with people who were essentially at the level 400/legendary skill level in their craft. It took me some time to regain composure from that experience. To, as I liked to call it, wear the mantle of Microsoft. The person who hops on a conference call with 10-15 people and someone says “Microsoft has joined the call, they are going to walk us through the solution”.

So much knowledge, in the halls of the Microsoft Charlotte office at that time.

My first ticket was a SEV-A. Colossal world-wide corporation was down. No email. No one was available to pick it up. So I figured, sink/swim, feet first, I was ready.

Docker on Windows: MobyLinuxVM failed to realize – fixed

Fix for MobyLinuxVM failed to realize on Docker for Windows install.

Scenario:

  1. Download Docker for Windows (edge or stable branch, doesn’t seem to matter).
  2. Boot up and Docker will fail to start with MobyLinuxVM failed to realize.DBTDIHvU0AAdvLk

The hint is the text “<No file>” in the window above, for my scenario fix anyway.

To fix:

  1. Further investigation reveals the vhd is actually not there, nor is the VM present in Hyper-V manager. Looking further, something is amiss.
  2. Right-click the Docker icon in your system tray, select Settings.2017-06-02_3-44-56
  3. Select Advanced and validate your path for “Images and volumes VHD location”.2017-06-02_3-46-59
  4. Note the path. Does it exist? For me, no. It’s an old setting from a previous installation of Hyper-V on this system. The path is invalid as I removed Hyper-V to a dedicated host and deleted the directories post migration.
  5. Uninstall Docker (rerun the installer you downloaded, select Remove).
  6. Open Hyper-V Manager. (start, type “Hyper-V” and click it) 2017-06-02_4-03-38
  7. Right click your host name in Hyper-V Manager and select “Hyper-V Settings”.
  8. Browse your “Virtual Hard Disks” and “Virtual Machines” paths and set to valid directories, Save/Ok/Apply/etc.2017-06-02_4-05-33.png
  9. Reinstall Docker from the downloaded installer. Now that the Hyper-V path for VM/disks is valid, Docker can place the MobyLinuxVM disk and create the Virtual Machine in Hyper-V and start it. yay.
  10. ???
  11. Profit

 

Suggestion: Pre-flight installer for Docker for Windows might want to check that the paths are valid for the creation of the vhd file/VM.

Further suggestion: When you run Hyper-V for a bit, then remove the feature from Windows. MAYBE, just maybe, Windows should remove the damn settings so when you re-enable Hyper-V it starts off fresh, instead of with stale info.

Further further suggestion: Live long and prosper.

This is the bug I filed, looks like they might fix it (should be a hyper-v fix too honestly, maybe I’ll feedback that too).

 

Dude out