The Architectural Edge: Engineering for Purpose, Not Hype
Years ago, before AI could generate production-ready code in the blink of an eye, we built Eda’s personal website using pure…

Source: https://programmerhumor.io/react-memes/from-css-hell-to-javascript-purgatory-e3uy
Years ago, before AI could generate production-ready code in the blink of an eye, we built Eda's personal website using pure, straightforward HTML, CSS and Vanta JS animation library. It was fast, unpretentious, and perfectly suited to its purpose.
Recently, we sat down to push a few routine updates to the site's content and structure. As we reviewed the original codebase, a striking realization hit us: if we were to build this exact same website today from scratch using a generative AI assistant, the outcome would look radically different.
The AI would almost certainly default to a complex modern stack-likely React or Next.js. It would generate a massive dependency tree, require a sophisticated build pipeline, and force the browser to execute heavy JavaScript just to render static text and images.
Source: https://v8.dev/blog/cost-of-javascript-2019
In other words, by taking the "modern" AI-assisted route, a simple informational site would become slower, clunkier, and infinitely more fragile. This highlights one of the most critical challenges in current software development: the lost art of knowing exactly what you don't need.
The Problem with AI's Default Choice
Generative AI tools are incredibly powerful, but they possess a built-in bias toward modern complexity. Because they are trained on vast repositories of enterprise-level software, their default solution to almost any problem is to throw a modern framework at it.
If you prompt an AI to build a standard landing page, it rarely stops at an index.html file and a CSS stylesheet. It assumes you need state management, component lifecycles, and client-side routing. For a B2B agency site or a static portfolio, this is the definition of over-engineering.
The end-user pays the ultimate price. They experience delayed First Contentful Paint (FCP) metrics, layout shifts, and a degraded UX-all because the foundational architecture was misaligned with the actual business need.
Why We Should Not Blame Junior Developers
It is easy to point fingers at junior developers for adopting this bloated, AI-driven approach, but that would be missing the root cause. For an entry-level engineer, over-engineering a simple project with a trendy framework is often a survival tactic. They do it to pad their resumes, pass automated keyword filters (ATS), and secure job interviews. This is an entirely understandable, logical response to the market.
The real systemic failure lies within the companies hiring them.
Corporate tech cultures and recruitment processes frequently prioritize buzzwords over architectural wisdom. Hiring managers and technical recruiters rarely pause to ask a candidate, "Why did you use this specific framework for such a simple problem?" Instead, they simply check a box confirming the technology was used. By failing to question the strategic intent behind the code, companies inadvertently incentivize bloated, complex development over precise, user-focused engineering.
A satirical tech interview checklist
Calm Tech: The Architecture of Restraint
At its core, the philosophy of "Calm Tech" is about reducing digital noise. While we often apply this concept to user interfaces, it is equally vital in software architecture.
True engineering expertise is no longer just about knowing how to configure a complex frontend environment or set up a scalable backend. It is about architectural restraint. It is the ability to look at a project brief and confidently say, "This only requires HTML and CSS."
When you align your tech stack perfectly with your product's actual requirements, you unlock significant business value:
- Zero Maintenance: Static HTML sites do not break when a JavaScript library updates its major version. The only "maintenance" required is simply updating your actual content-text and images-when your business evolves, rather than wasting hours debugging broken dependencies.
- Instant Load Times: Delivering raw markup directly to the browser is always faster than waiting for a client-side framework to hydrate.
- Focus on the Product: By eliminating build times and dependency management, your team spends 100% of their time iterating on the user experience.
The Precision Test for Product Leaders
As AI continues to lower the barrier to writing code, the true differentiator for top-tier design and software teams will be architectural wisdom. The next time you sit down to build or update a digital product, or evaluate a new hire's portfolio, apply this simple framework:
- Define the Core Function: What is the absolute minimum interactivity required for this page to succeed?
- Challenge the Default: If your AI or your development team suggests a framework, ask for the specific business logic that justifies its inclusion.
- Optimize for the User, Not the Developer: Never sacrifice frontend load times for backend developer convenience.
The "Calm Tech" decision tree: A simple framework to determine if you actually need a modern JavaScript stack.
AI is an extraordinary co-pilot, but it cannot replace human judgment. Updating our old HTML site was a powerful reminder that the most sophisticated technical solution is often the simplest one. Building great software isn't about using every tool at your disposal to impress a hiring manager; it's about knowing exactly which tools to leave in the box to serve the user.
How does your company balance the need for modern tech skills with architectural simplicity during the hiring process? Have you ever questioned a candidate on why they used a specific stack, rather than just checking if they knew it? Let's discuss how we can fix this hiring culture in the comments below! 🎤
Originally published at https://www.linkedin.com.