EXP boosting:
Don't just evolve Pokémon one at a time whenever you can. Save them all and bulk evolve with a Lucky Egg active. If you're at the point where you have a dozen Beedrills or Pidgeots, continue to catch Pidgeys and Weedles and use the excess candy you accumulate to bulk evolve them, then transfer the secondary stage.
Just between yesterday and this morning, I'm sitting on ~140 Rattata candies with 8 Rattatas waiting in the wings. At this very moment, I can evolve five Rattatas. With a Lucky Egg active, that would be 5,000 EXP right off the bat. That adds up fast across different types of Pokémon.
Gym Runs:
If you're going to rely on "play-to-win" methods to obtain coins (rather than pay-to-win) for purchasing consumables, then you're going to have to build an economy. Each day (usually at the end of the day after work), I would gather a few friends on my team to initiate a "gym run," meaning we drive around town taking out and leveling up gyms. The more people we have, the faster the process and generally the longer the gyms will last.
As soon as the run is complete, which in my case could range from 3-5 gyms, turn in the rewards immediately at the shop. In hotspots, gyms don't tend to last long at all. Even level 6+ gyms can go down in less than an hour if challengers are coordinated with high level teams. This obviously varies depending on the size of your town/city. Since I'm in a densely populated metropolitan area, every gym is highly contested and exchanges hands multiple times every hour. That's why I pick times when fewer people are active and groups of us execute a fast takeover while the window of opportunity is available.