I use SoundCloud and Pocket Casts to listen to podcasts and both start playback almost immediately when I click on a show. Any idea on how they cache to achieve this?
I assume you are asking how they stream so fast, there are a few factors here and it largely has to do with how you (as the engineer of the backend system) decides to set things up.
First off, over the years internet speeds and device capabilities have increased very quickly. An audio file is no longer considered a "large" file in terms of some of the performance we see today.
One major factor here is SSD drives. For no other reason than read time and subsequently load time to the client has decreased because we can simply get the data off disk faster.
Another thing that you can do is run your system in memory instead of on disk. Since you can now get servers with RAM that was unheard of a decade ago its possible to store audio files in main memory even further decreasing read time.
Internet bandwidth is something people almost dont consider any more. Remember loading an image in the 90's over dialup? MP3's have not really gotten bigger but the internet has gotten faster so there is no time to load them.
When you stream you generally send pieces of the file and start playing the file when you have enough that you are sufficiently ahead of your self. Again since internet speeds are so high now you dont have to wait long to get enough to start playing. Some video streaming services even have progressive quality changing as your internet speed fluctuates.
Many of the major streaming services also have the money to afford some serious infrastructure not to mention all the streaming protocols that have been developed over time have been refined again and again to perfection.
Interestingly the solutions to the problems historically posed by real-time streaming of media content are now moving away from custom protocols and back towards plain old HTTP - largely as a result of (and as per Dave's answer) available transmissions speeds growing far faster than the content they're carrying.
A look at the DASH protocol, as used by Netflix etc, should give you a pretty good impression of how this functionality is achieved at present. Due to the fact that any given media's chunks are perceived by infrastructure to be "just another file", it can be cached in an manner identical to any other plain-old-file by HTTP.