Today’s developers are growing up surrounded by AI and the ease of prompting for solutions. It’s in their search engines, their IDEs, their coding assistants—hell, even their memes. So naturally, every problem has to have an AI-shaped solution.

At a startup where I worked as CTO in residence, I had to mentor a junior data engineer who was assisting with an ETL pipeline. The company had a process that involved manually extracting images from numerous PDFs using a PDF reader, a tedious and time-consuming task. We decided to automate it and figured it was a perfect learning opportunity for the junior engineer. His job? Explore different approaches and pick the best one. Simple, right?

On one of my regular check-ins, I asked how his progress was going. I wanted to see what approaches he had explored and whether he needed help choosing one.

His response?

He shares his screen, proudly unveiling a 1000-line Notebook filled with colourful rectangles, edge detection experiments, and debug outputs. He narrates his process like an artist unveiling a masterpiece:

"Yes, I created a sophisticated method where I convert the PDF page into an image, apply grayscale conversion and bilateral filtering to reduce noise, and then use Canny edge detection to find contours. After that, I sort the detected rectangles based on their size, aspect ratio, and position. Finally, I encode the image to bytes and send it to GPT-4 Vision to analyze which rectangle contains the relevant content. The rectangle detection works in some cases already, but it's very complex."

Wait, what?

My brain didn’t just freeze—it crashed, rebooted, and showed me the blue screen of over-engineering.

This is the equivalent of taking your nicely structured PDF, printing it out, taking a blurry photo, and then asking a half-blind oracle to tell you what it sees. It’s like receiving an email, printing it, scanning it, faxing it to yourself, and then running OCR—just to get back 80% of what you originally had.

So, obviously, I do what any millennial would. I Google it.

First result? PyMuPDF. The de facto Python PDF library. Within seconds I found a good example.

Given the page number, only nine lines of code remain to extract all images. Nine.

I explained to him that PDFs are structured files—essentially glorified containers of text and images. There’s no need to hallucinate rectangles when you can just extract them directly. His world changed, then and there. I saw it in his eyes, with a little bit of disappointment (probably realising the waste of time).

AI is not the hammer for every nail

This isn’t an isolated case. It’s part of a broader trend where AI-first thinking is replacing basic problem-solving skills.

  • Need to classify some text? Fine-tune an LLM instead of using a simple regex.
  • Generating boilerplate code? Copilot spits something out—but no one understands it.
  • Extracting structured data? Call OpenAI’s Vision API instead of using the format’s built-in parser.

It's the "when all you have is a hammer, everything looks like a nail" phenomenon—except now, the hammer costs $0.002 per token and sometimes forgets that it's a hammer halfway through.

Did we take a wrong turn with AI?

The problem isn’t AI—it’s amazing. AI allows developers to do things that were previously impossible. The issue is that ChatGPT and other AI tools, which should be one tool in the toolbox, are now the go-to solution—even when they make no sense.

It’s like using a flamethrower to toast a marshmallow. Sure, it gets the job done, but now your house is on fire.

Somewhere along the way, foundational skills—understanding file formats, reading docs, breaking down problems—took a backseat to "Let’s just send it to OpenAI."

Just because you can, doesn't mean you should

AI should be an accelerator, not a crutch.

Hell, OpenAI could have helped here. Just ask it "I need to extract images from a PDF using Python." It will nicely show you the way to libraries such as the one mentioned above. Or use OpenAI as your favourite sparring partner "Hey OpenAI, I'm trying to extract images from PDF by transforming the PDF page to an image and do rectangle detection.". It'll probably talk about over-complicating things.

Most of the time, you’ll find that the answer is a well-documented library, a database query, or (god forbid) just writing some good old-fashioned code.

Because not everything has to be AI. And honestly? Not everything should be.