I've been running volunteer computer clubs at schools my daughters attend, pre-covid anyway. I've also run a summer immersion program for basic software design principles using the Scratch language for Girls Who Code. We've played with Adafruit Circuit Playground dev boards, written a "choose your own adventure" engine with Python, and added pixel graphics to some simple Javascript games, where the kids drew animation frames in a barely functional editor I wrote.
The first thing I'd call out is that 7 is really young. 5th grade is the point where kids can start to "get it" beyond basic maze problem solving things (e.g., code.org's Minecraft puzzle - hop Alex around the creeper and into the house). Since you're a dev, and he's enthused about it already, he can probably flex those muscles a little early.
Beyond age, the complexity of what you're doing matters a lot. Kids want to see something get on the screen right away, and they want to make a code change that changes what it does. Building a program from scratch is a chore, and something as simple to us as nested if statements will throw them for a loop.
The most success I had was building a simple program without them, and letting them experiment with changing values. That may sound like cheating, but it gets the gears turning, and before too long they're able to follow along with making a broader logic change, and soon enough even following along with you adding a new feature.
I was in a classroom setting with a bunch of kids, and they tended to like being in small groups and comparing notes, or play each others games.
Sideways thinking is important. For example, the main draw of Circuit Playground is making the LEDs do things, but they also have an accelerometer. A good exercise was figuring out how to read the tilt position, and figure out which light was lowest, and light up just that one. Instant fidget spinner. Building on that, I threw them for a loop by using the same principle where the tilt was input to a computer program. Suddenly the thing they were programming before to flash lights was now a game controller.
Keep it fun, let him screw around too long on things he builds instead of learning software engineering at an "acceptable" rate. He can learn fast, but complexity will probably be a struggle, so growing slowly is just fine. Encourage him to explore concepts from different angles.
Hope that helps.