In general firing people is a terrible way to improve quality.
People look to airline style investigations as a way to improve quality for good reasons.
Likewise, a programmer that doesn't provide deliverables that are maintainable is also disservicing the company, and society as a whole.
There's a difference between a legitimate error and negligence. In this case, the problem looks like negligence and was easily avoidable.
The code quality seemed low and to me it was negligence and a disservice to the employer that had to compromise their reliability for quite a long time and spend significant effort root causing the problem.
That's not just tone, that's the kind of personal attack that we ban accounts for. Please don't do this here.
Also, your tone is really not called for.
https://en.wikipedia.org/wiki/Magic_number_(programming)#Unn...
Exposing this value as an external configuration parameter in a place that is more often looked at might have helped someone to realize caching might be an issue earlier, but it could easily have been ignored as well.
Then, you can define the time length as an arithmetic operation. Such as 10 * (60 * 60 * 24) * 365.
These might be still considered magic numbers to certain extent, but it's simpler to recognize numbers such as 60, 24 and 365.