I'm sorry but the contract was screwing me. I worked (decades ago) as a third shift janitor in a 24 hour supermarket. My responsibilities included cleaning the customer and employee restrooms and also cleaning the meat cutting room. My union negotiated maximum hourly wage was less than the starting wage for stockers and cashiers. Why? Because there were maybe 10 janitors per store, whereas there were 100+ stockers and cashiers. So the union represented votes and 10 votes per store amounted to exactly what you think it would. This is why any sort of generic 'tech union' is going to be a failure in my opinion, because if you have 150 developers and 20 QA, for example, where do you think the equality will actually land. People will vote for the common good up to a point. Single occupation unions would possibly work, i.e. a QA union, a Developers union but would introduce other problems.
Contracts and unions aren't some magical cure all. Unions are political organizations and come with all the problems that political organizations have.