Making Your Own Tools
The ironic thing is that despite the emergence of more walled gardens and the decline of general purpose computing, high level tooling has exploded. Look at the amount of new JavaScript frameworks and tooling that come out every year. The areas that are most lacking in innovation are generally all difficult and boring with no quick pay-offs; VHDL/Verilog, cross platform GUI applications, low level code that can run on multiple hardware architectures. These are all important problems to tackle that would drastically improve general purpose computing but nobody's truly interested to work on those problems and make something production ready.