Breaking Free from the Basic QuickQR

QuickQR Enhanced is finally complete.

The original QuickQR was, to put it bluntly, ugly to look at and only capable of converting text to QR codes—truly the embodiment of a “if it works, it’s good enough” mentality.

But during this site renewal, I casually thought “why not make it look better and add some features?” That was my downfall.

The result? A feature-packed tool far exceeding my initial expectations, complete with WiFi settings, contacts, events, location data, batch processing, preset management, history management, camera scanning, and printing functionality.

Feature Proliferation Through AI Brainstorming

“WiFi QR codes would be convenient”
“Contact vCards would be nice to support”
“Location QR codes sound interesting”
“Batch processing would be efficient”

As I bounced ideas off AI, more and more features kept emerging. Before I knew it, features were multiplying exponentially.

The generative AI kept suggesting “How about this feature?” and I kept responding “That sounds great too!” It was pure feature inflation.

The 1000-Line Wall - When I Hit AI’s Limits

The first 500 lines went smoothly. The AI’s code output worked almost perfectly on the first try, and I thought “this is going to be a breeze.”

But everything changed after crossing the 1000-line threshold.

  • Code generation took an absurdly long time (instant ramen cooking level)
  • Generated code wouldn’t run
  • Minor fix requests would break other parts
  • Endless cycles of fixes fixing fixes…

That’s when I realized “Ah, this is AI’s limit.”

When the codebase becomes large-scale, AI can no longer grasp the whole picture. Just like humans, it hits the complexity wall.

AI-Era Design Phase Revolution - Emerging New Methodologies

This experience reinforced the importance of the design phase. Actually, it’s beyond important—it’s life or death.

In traditional development, you could get away with “build something that works first, refactor later.” But that doesn’t fly with AI.

80% Preparation, 10% AI, 10% Polish?

There’s an old saying about “80% preparation,” but in the AI development era, it might be “90% preparation”.

What became clear from this experience is the need to paint a high-resolution picture of the roadmap toward development completion.

Specifically:

❌ Bad example: "Add WiFi functionality"
⭕ Good example: "WiFiForm class manages SSID/password/security settings,
                 passes string to QRGenerator class for WIFI:T:WPA;S:... format"

When you tell AI “add WiFi functionality,” it gets lost figuring out where and how to integrate it with existing code. But when you clearly define interfaces and responsibilities upfront, AI can implement without confusion.

Dependency Visualization is Lifeline

Especially with loose coupling. You need structures where changes to one part don’t affect others by minimizing dependencies between functions and code.

What I painfully realized is that AI is bad at grasping dependencies. Humans can intuitively think “oh, changing this will affect that,” but AI doesn’t see it.

I eventually switched to a strategy of file separation and solidifying reliably working parts:

  • core_utils.js - Basic utilities (no dependencies)
  • ui_manager.js - UI-related (depends only on core_utils)
  • data_manager.js - Data management (depends only on core_utils)
  • qr_generator.js - QR generation logic (completely independent)

Each works independently with clear interfaces. A truly loosely coupled approach.

New Methodologies for AI Coexistence

I’ve gotten glimpses of this from this experience, but we need to establish better methods going forward.

This will likely become the new methodology born from coexistence with code-generating AI.

In addition to traditional design approaches:

  • Module boundary design that AI can understand
  • Feature division considering context volume
  • Understanding code sizes where AI output quality is maintained
  • Design granularity where humans can provide final quality assurance

It’s still trial and error, but one thing is certain: “AI got smarter so design can be sloppy” is dead wrong.

On the contrary, because we’re collaborating with AI, more precise design is necessary.

The 1000-Line Lesson - Living with AI’s Context Limits

I understood intellectually that “AI isn’t omnipotent,” but I experienced it viscerally with the 1000-line wall.

Humans also have limits to how much information they can grasp at once. Same with AI. In some ways, AI might have stricter constraints than humans.

That’s why the skill of breaking problems into granules AI can process at once becomes important. This is slightly different from traditional “separation of concerns”—perhaps a new perspective we could call “AI context separation”.

I’d like to explore these insights and methodologies in detail another time. AI-era engineering is still full of uncharted territory.

The Time Thief Called Perfectionism

I’m satisfied enough with what was ultimately completed, so “good enough” it is.

But looking back, my tendency to get perfectionist always comes back to bite me.

The printing functionality—honestly, who’s going to use that?—is where I spent the most time. Just because it was a weekend, I became a fool obsessing over features nobody would use.

// Create print HTML document
const printHTML = `
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>QR Code Print</title>
    <style>
        @page {
            margin: 2cm;
            size: A4;
        }
        // ... endless CSS continues

But maybe sometimes this kind of deep dive time is important. While I usually prioritize efficiency and build quickly, occasionally taking time to obsess and craft until you’re satisfied is necessary too.

Gratitude and Respect for QR Code Technology

While rebuilding QuickQR, I was reminded of the brilliance of QR code technology.

QR codes were invented in 1994 by Masahiro Hara and his team at Denso (now Denso Wave), a Japanese automotive parts manufacturer.

Technology Born from Denso’s Factory Floor

The development trigger was urgent requests from Denso’s manufacturing floor.

At the time, parts management required reading about 10 barcodes in sequence, making work extremely inefficient. Factory workers complained they were “exhausted” and asked “can’t we make barcode reading faster?”

Masahiro Hara had been working on barcode scanners and optical character recognition (OCR) devices since 1992, but responding to these field voices, he began developing “codes that could contain more information than barcodes.”

Inspiration from Go Stones

Interestingly, the idea for QR code position detection patterns (those square markers) came from Go game stones.

During lunch breaks, Hara played Go and noticed that “patterns with black-to-white ratios of 1:1:3:1:1 virtually don’t exist in nature,” which he applied to position detection.

Truly an invention born from playfulness and keen observation.

The Wise Decision of Patent Liberation

Most remarkably, Denso released QR code patents for free.

Normally, using someone else’s patent requires permission, but Denso Wave declared they would “not enforce rights on standardized QR codes.”

According to Hara, the reasoning was:

“No matter how good a code you create, if peripheral equipment and infrastructure aren’t developed, people can’t use it freely and safely. By opening the patent and having other companies develop infrastructure too, we thought we could spread QR codes quickly.”

“We wanted more people to use QR codes”

This developer’s pure intention enabled QR code’s global proliferation.

Global Recognition and Awards

This achievement has been recognized worldwide, winning the European Inventor Award’s “Popular Prize” in 2014 and the Japan Academy Prize in 2023.

Today, QR codes are used worldwide, especially with smartphone proliferation for payments, information sharing, authentication, and countless other applications.

Hara noted that “payment usage was unexpected,” but technology evolving beyond expectations was only possible because the patent was opened.

Gratitude as an Engineer

While building QuickQR Enhanced, I felt renewed appreciation for QR code technology’s benefits.

  • Easy WiFi setting sharing
  • Smooth contact exchange
  • Instant location information transmission
  • No need to manually type URLs

All of this is enabled by technology born in Japan 30 years ago and the engineer’s spirit that provided it freely to the world.

I want to send heartfelt gratitude and respect to Masahiro Hara and the entire Denso team.

Summary - Love and Legacy of Technology

Through developing QuickQR Enhanced, I realized that technological progress comes from many people’s accumulated efforts.

There’s wonderful foundational QR code technology, pioneers who provided it freely, and that enables us today to create new tools.

Sometimes I spend too much time on perfectionist details, but perhaps that’s also an expression of love for technology.

Most importantly, I learned firsthand that even in the AI era, engineers’ design skills and insight remain indispensable.

Just a QR code generation tool, yet so much more than a QR code generation tool.

Even small tools contain the history of technology and many people’s thoughts.


QuickQR Enhanced: https://aoiroinc.com/en/tools/quick-qr/

References and Sources

QR Code History and Development: