I do the first part: finding smaller to medium company. Smaller companies have better visibility, more work than people can finish so everyone gets to work on big whales. There's in general a better comradeship too. Revenue per employee in good smaller companies are usually larger than that in big companies, so people don't have to fight for resources as much.
I'm not sure about "non-tech" companies, though. IT in non-tech companies are usually cost center, so there's usually insufficient investment in tech workers in those companies. Some line of work can be hard to find in non-tech companies: distributed systems, large-scale database systems, high traffic systems that require deep optimizations on throughput, latency, and etc.