First, congrats on launching the book. That's a huge achievement and you should be proud! It's also great that you've kept on it for 2 years, and published a lot of posts.
So the question is why hasn't it "worked" yet. There are TONS of new developers entering the field. The audience definitely exists, and they do hang out online.
I took Amy & Alex's 30x500 class a few years ago and it was a big factor in getting my blog + business (https://daveceddia.com) off the ground, so my ears perked up when you mentioned Amy!
I think you've got it right that she advocates for creating a tiny infoproduct first, but the emphasis is on tiny, less on education. Other tiny things are icon packs, or templates, or themes, etc. Small, quick-to-create, one-time-purchase products. Goal is to learn the entire build + market + launch cycle with low risk (vs building software for 6+ months that nobody wants). Once you get your footing with all of it, you can move up bigger/riskier products, if you want.
They also advocate that the content you create should deliver some kind of fix for a problem the reader has. Give the reader a win. Also, ideally, quickly helps the reader decide "this is for me". The easiest way to do that is to make it clear you understand their struggle.
I think this is where some of your posts could use tweaking. The "Write good commit messages" article, for instance, starts with "Take the time to write good commit messages." It's advice, yes, but is it for me specifically?
Contrast this with a title like "How to Write Better Commit Messages" and opening with "It's time to commit your code, and you need a commit message. What should you say? How long should it be? Should it describe every little detail? Or is shorter better? In this letter we'll look at some examples of bad commit messages and how to write better ones."
You mentioned that your email list hasn't grown much too. It's hard to figure out how to sign up though! There's a small sidebar link "Sign up to receive posts via email" and the "Subscribe to new posts" header link, but the copy isn't terribly compelling. Few people will go out of their way to click a link to sign up (as you've noticed!). You could probably improve signups quite a bit by writing more compelling copy and including those signup forms within the articles. I'd also remove the required field "how many years have you been a dev", it's just extra friction. Feel free to ask them that question in the welcome email though, it'd be a good way to connect.
Last strategy I'll mention is that hanging out in communities with your audience is a great way to learn what they struggle with, help them where they are (with comments/replies/tweets/etc), and occasionally, sometimes, share a link to something of yours if it's relevant. Goal is to be helpful and build a reputation, not just to share stuff.
Happy to chat more about this stuff any time.