Reminds me of how people think Bitcoin/blockchain tech can solve a lot of the inherently human problems in finance. At the end of the day, it's the group of core developers who change the codebase that are truly in power.
It's the same with governments and political parties. One group wants it done one way, another group wants it done a different way, and so two parties, styles of governing, blockchains emerge.
My main point though is that we tend to place too much emphasis on how much new tech can help solve age-old, human nature driven problems.
Our first step should be replacing first-past-the-post voting with something that isn't mathematically guaranteed to result in a polarized two-party system.
IRV has the problem where gaining support can actually cost one the election (nonmonotonicity). From http://zesty.ca/voting/sim it seems that approval voting would work reasonably well.