The Genie Inversion Principle

How to AI

An interesting thought experiment.

On one hand, an engineer with some years of industry experience, a couple of books read (if any), and some hands-on scars.

On the other hand, an ominous AI thingymagic that knows the contents of everything ever written — perhaps everything ever filmed or recorded. When it comes to computer science, it knows everything: every approach, every design pattern, every technology.

So here’s the question: who should be driving the discussion when it comes to software design?

The genie

Infinite knowledge, on tap, instantly — that is a genie. The lamp is real, the wishes are infinite, and what the genie does depends completely on you.

It never forgets: every pattern catalog, every post-mortem, every framework manual, present all at once. It has no ego and no fatigue: no favorite framework to push, no pride to defend, no 6 PM slump. And like every genie in every story, it grants what you said, not what you meant — literally, instantly, without judgment.

So here is the choice the experiment is really about. You can ask it to tie your shoelaces — autocomplete this function, rename that variable, scaffold the boilerplate. Or you can ask it to explain the most complicated thing in the world — every approach humanity ever tried for your problem, with trade-offs attached, before your coffee cools. Same lamp. Same genie. The difference is entirely the wisher.

Spending infinite freedom on chores is stupid. Not because shoelaces don’t need tying — they do. But wishes are free, and that is exactly the trap: nobody runs out of them, so nobody notices they never asked for anything larger.

Which leaves the real question, the only question: what must the wisher know?

You don’t know what you don’t know. Nobody wishes for separation of concerns who never heard of boundaries; nobody asks for idempotency who never got burned by retries. These are the fundamentals that aren’t just the filter that judges granted wishes — they’re the vocabulary that makes wishing possible at all. Every pattern you truly understand adds a sentence to the language you speak to the lamp. Everything else stays unwishable.

Be careful what you wish for

Every genie story carries the same warning: be careful what you wish for. It was never about the genie’s malice — it was always about the wisher’s competence. A wish worded without fundamentals grants literally, and literal is rarely what you needed.

In computer science, fundamentals carry the weight: data structures, modeling, concurrency, networking — ideas that outlive every framework ever shipped. Know those and every granted wish lands on judgment. Skip them and the lamp just amplifies the guessing. What’s dying is the memorization of details: framework APIs, language trivia, table syntax, the exact incantation for the third argument of that function. That stuff was never the job; it was the overhead. Delegate all of it, gladly.

And it is the best teacher most of us have ever had. It shows you patterns you never met, approaches from ecosystems you’d never touch, designs you’d never stumble into alone. Ask it to teach, to explain, to pour out suggestions from everything ever known instead of handing it mundane chores. Used this way, it makes the engineer larger, not smaller.

Because the reverse fails in a very specific, observable way. Take an engineer who knows nothing about database design telling the genie: create this table, create that table, add a column here. The genie obeys — fluently, confidently — and the resulting model is poor. Not because the genie is weak, but because the prompting had no filter in it. Rub the lamp and wish for tables, and tables you shall receive — not a data model. Ordering details you don’t understand produces confident garbage at unprecedented speed.

The rule writes itself: never order what you don’t understand. Rely on the genie to provide the patterns; rely on yourself to understand the concepts behind them. Fundamentals are the filter. Details are the delegation.

The extraction skill

So the skill of the AI era is extraction: knowing how to pull the right thing from infinite knowledge — which question unlocks the useful answer, which of the twelve correct options fits here, what to wish for and what to ignore. The engineer becomes a wisher of wishes, and fundamentals are what let you word the wish so the literal grant matches the intent.

And “here” is doing all the heavy lifting. Every option the genie produces is correct somewhere — event sourcing somewhere, a shared database somewhere, a queue somewhere. The genie knows all the somewheres. Three things tell you about here, and all three live on the engineer’s side:

First, consequences. Nobody pages the model at 3 AM. The engineer takes the call and deals with it. Consequences teach you which questions are worth asking in the first place.

Second, the customer. Recall my Principles: boundaries come from customer needs, not implementation elegance. Which tradeoff this business accepts lives in conversations and contracts, not in training data.

Third, intuition. It’s the memory of past breakage surfacing as caution: I had problems with this before, so I’m careful about it now. Intuition doesn’t decorate the decision; it warns. And a warned engineer asks one more question before accepting the granted wish — which is often the question that matters.

Who drives

So who drives? The engineer — not by knowing more, but by knowing what to pull.

Knowledge enumerates; judgment selects. The genie’s job is to make sure no good option goes unmentioned and no concept goes untaught. The engineer’s job is to know the fundamentals, delegate the details, kill eleven good options, and live with the twelfth. If this sounds familiar, it is: invert the dependency — the high-level module owns the interface, the low-level module implements it — see my Practical Dependency Inversion Principle. The genie is simply the newest low-level module.

The lamp isn’t going back in the cave. Wishes keep getting cheaper, and the flood of granted wishes keeps rising. The engineers who thrive won’t be the fastest typists or the biggest memorizers. They’ll be the ones who own the interface and rub the lamp wisely.