So we have a browser that mostly works on Linux. Ship it, right?
But it turns out there are a million different tiny corners that will just take a lot of time to track down and flush out. As a good example, consider my fix to make us not reuse your terminal for opening a download. Or how invoking an IME can cause it to spawn an IME daemon, so you'd better mark all your internal-use-only file descriptors close-on-exec.
Is this work difficult? Not really. There's something in just knowing all the corners you're going to run into, but it's not hard in the way I think of as Google hard -- algorithms and systems. It seems I spent enough time within the Google bubble that I forgot about this side of software development.