But I fail to find things that could be done that haven't been implemented yet.
It seems like all the low (and even medium, high) hanging fruit has been covered. [Of course not calling Redis and such low hanging fruits, but just to give examples of something fundamental.]
How would you explore what to work on? Especially something non-AI.
Challenge: make it require at most (1) opening a website (2) a single packet manager installation (3) a single app store installation
a good speech-to-text would help my hearing-impaired friend understand the world better
and a nice sounding text-to-speech would help me listen to Wikipedia articles
I believe there are already good AI models there that can serve as the core, but they aren't entirely developed (missing features such as "really real time" https://github.com/openai/whisper/discussions/608 and speaker separation: https://github.com/openai/whisper/discussions/264) and I haven't encountered a single good interface for them yet.
It would be helpful to understand why you feel like version control (git, not github), a programming language (javascript), a browser, a database are all fundamentals? They are not the first in their respective categories, just that they all became popular? I feel like your examples also lean heavily towards developer only tools?
You need to reduce your problem space. I suggest working on any real-world challenge, like climate change. You will quickly run into problems. Work on the biggest ones you can solve.
> It seems like all the low (and even medium, high) hanging fruit has been covered
Not at all. In software, fruit grows on top of fruit.
My personal wishlist: a desktop DB client with simple UX, tooling for DB functions, a tool for performance testing in various geographies, and a browser with symmetric encryption.
* Generally rebuilds everything from scratch, which get slow on large projects. Reducing overbuilding requires lots of manual work. * Hard to test, often you have to push a commit. * No flakey test detection and management.
There are some companies working on productionizing Bazel-based CI systems, like BuildBuddy, but there might be other ways of approaching this problem.
Bleeding edge in software is going to be all ML now, mainly in the research of new architecture, and low level stuff to make compute faster.
As far as holes go, this is where things like Redis fall. Nothing about Redis is really that novel, its just a nice package of pretty standard functionality, which has a very common use case.
And there are A LOT of holes to be filled.