Skills I Learned at Microsoft

Social

  • How to manage managers.
    • Detailed time tracking.
      • I’ve done this internally at every job I’ve had, but only at Microsoft did I need to report on it externally.
    • Managing expectations.
    • The no-surprises principle.
      • Bad news is okay (socially) if it is known in advance.

  • How an A-grade SDET (technical tester) thinks.
    • Techniques for making designs mure testable, especially in the presence of multi-threading.

  • How an A-grade PM (Program Manager) can manage politics for you.

  • How to work around certain mediocre coworkers. (This is not common.)

  • Don’t use made up words until you’ve looked them up first.
    • Counterintuitive. However your “made up word” may actually exist and it may not be a pleasant word.

Productivity

  • How to aggressively filter my email inbox.

  • The zero-inbox style of email management.

  • Macro programming on Windows via AutoHotkey.
    • Keyboard Maestro on the Mac is more capable and more polished, but AutoHotkey was the best thing I found for Windows.

Technical

  • Microsoft-specific tooling:
    • Visual Studio
    • TAEF (for testing)
    • Octopus (for deployment of MSIs)
    • WiX (for development of MSIs)

  • Formalized code review via CodeFlow.
    • (Also did this at Google with Mondrian.)

  • Heap profiling to track down memory leaks.
    • Failing to unregister listeners can cause memory leaks, particularly if an object registers a listener on another longer-lived (or immortal) object.

  • How to write detailed technical specifications.
    • However the utility of such highly detailed specifications is limited.