Good, realistic look at the situation many are currently in.
That said, the good news is that the internet is also making it realistic for those in similar situations to find a way out.
What should David do? My opinion:
Instead of taking a second job, he should start freelancing on the weekends through sites like Upwork, which allow him to work according to a much more flexible schedule.
There he will be able to leverage his marketing degree and the fact that he actually works in marketing to find clients. When he first starts out, he'll likely need to work for less money in order to get reviews and build his profile.
However, once he has 5-10 reviews, he can position himself as an expert at what he does and charge significantly more.
This will allow him to build an income that will outpace his $40k/year in 1 year.
Learn the internet arbitrage game. Find underpriced items at local garage sale, discount stores, etc. and sell them at higher prices through eBay, Amazon and Craigslist.
There are excellent courses on how to do this for smartphones and electronics, which are particularly lucrative.
Bottom line: David's situation is tough, I think everyone can agree on that. But the internet has created ways he can rise above it if he's willing to put in the work.
The issue, of course, is education. There are no shortages of free courses out there on YouTube and blogs that teach you how to make money online.
However, not enough people are aware of these options, and thus, continue to be stuck in the rat race.