1. Every sentence should begin with a capital letter. Many sentences in the post do not.
2. No explanation of buffer overflows is complete without an explanation of undefined behaviour in the C and C++ languages.
3. The colour scheme used gives somewhat low contrast to the text. It would also boost readability to use a dark-on-light style rather than light-on-dark, but I think it would be enough to just improve the contrast. I'm not saying it's unreadable or anything, but I think it could be improved.
4. It's annoying to have to horizontally scroll to read the code. I suggest tweaking the second code example so the comment gets its own line and no scroll-bar appears.
5. You say and these are just some of the basic mitigation used in 2020. This is true, but you've missed the big one: modern languages include runtime checks. Might also be worth mentioning that with formal verification frameworks, it's possible to definitively prove the absence of out-of-bounds array accesses.
6. It would be worth explaining the one-past-the-end rule in the C and C++ languages [0] and how these languages consider it an error (i.e. undefined behaviour) to even point to anything beyond that, whether or not you actually dereference the pointer. [0][1]
7. I have to agree with brudgers and jiveturkey that the article is a bit perfunctory. It's quite a deep topic.
Actually that's not the first time people address the low contrast issue in my color scheme, might as well change the default theme to a light one until I find a proper alternative.
As for the technical criticism, I wanted the blog to be a bit simple for the non tech savvy audience, there is a certain sweet spot between a technical blog and an ELI5 type of explanation which I haven't necessarily succeeded at achieving yet.
I really enjoyed writing that blog and might go deeper on the subject and possible cover more valuable aspects of the topic rather than a simple bird's eye view.
https://www.merriam-webster.com/words-at-play/words-were-wat...
Did you enjoy writing the article?