What more software could do though, is create more transparency. And I can't believe I'm saying this, but this may actually be one of those cases where blockchain could be useful.
It is absolutely absurd to me that we have thousands of non-experts deciding to keep or throw out ballots based on comparing a signature.
With a more electronic method, a citizen's vote could be signed with a key generated from a few unique identifiers like social security number, numbers in your street address and maybe a credit card number. My vote could then be forever logged in the blockchain. This could create more transparency because everyone could see and count the votes.
After voting, you could also give every voter a "receipt" where they could go online and check in the public blockchain to confirm that their vote was counted successfully.
And I don't think we would need any sort of shared and distributed blockchain. Just a public one that can be verified by 3rd parties.
AWS has a managed blockchain service that I'm sure would work fine.
So while it may not be a good idea to open the actual voting to the entire public internet, that doesn't mean that sound math and technology couldn't be used to make elections more transparent and thus, secure.