Both are small projects by small teams (though I don't know how small Redis team is now). They have insane performance characteristics with rather small footprints and a wealth of functionality.
My experience is that small, dedicated teams of high-performing individuals are the only way to build tools like these. The level of architectural and design coherence starts to decrease at 5 people, and falls like a rock beyond 10-20.
The key problem is building a firewall so that such people can focus. The *organizational* problems there are hard. If you have a firewall around five people, you can't tell if:
- They're sitting at home drinking beer and watching cat videos
- Are developing the world's fastest database
Which leads to meetings, presentations, funding proposals, and so on. Which, in turn, leads to the need for large teams.
The key problem is building a firewall so that such people can focus. The *organizational* problems there are hard. If you have a firewall around five people, you can't tell if:
- They're sitting at home drinking beer and watching cat videos
- Are developing the world's fastest database
Which leads to meetings, presentations, funding proposals, and so on. Which, in turn, leads to the need for large teams.