Karel Zikmund shared lessons learned from investigating bugs on the .NET team. Some key investigations included: 1. Tracking down a hardware error that was corrupting the stack and only reproducing on some machines. 2. Discovering an issue with the metadata format allowing more methods to be defined than the limit. 3. Finding latent bugs triggered by unrelated changes, like a performance improvement breaking an application. The overall lessons were around the challenges of debugging obscure or intermittent bugs, avoiding breaking changes, and appreciating that anything could potentially cause issues.