You don't have to join but you usually still have to pay the dues. So you both have no vote on how that money get's spent but are also forced to give it to them anyway.
But you can't form a union if they vote against it, which is why you are here arguing with people. So we here we have clear proof that even if you spend years arguing it doesn't necessarily lead to the democratic results you want. Individual bargaining however seems to work very well, lots of people get what they want that way much faster and easier than any democratic process. And that is why people vote to not have unions.
The moment developers have a cause they can agree on, they will start to vote for unions. And no it isn't too late at that point, rather it is too early to vote for a union unless you have a cause you collectively care about.
> even if you spend years arguing it doesn't necessarily lead to the democratic results you want
Yes, this is how democracy works in general. You don't get everything (or necessarily anything) you want
Personally the only thing that would really make me quit is if they tried to make me go hybrid or back to the office in any way. My workplace is small (10 engineers) and so unionizing based on that could be pretty easy, but it would be easier for me to quit and find a new job that does do remote
That law has a loophole: Force the worker to pay the union even if they don't join it. So unless you live in a right to work state that law doesn't mean much.