Understanding Before Implementation: My Philosophy of Engineering in the AI Era

Understanding Before Implementation: My Philosophy of Engineering in the AI Era

●2 ●5
calendar_today • schedule3 min read
— Originally published at harshils.hashnode.dev

Today, an AI assistant can generate a working API endpoint, write a complex SQL query, or configure a multi-stage CI/CD pipeline in seconds. When code generation is nearly frictionless, it is easy to mistake generating an implementation for understanding a system.

AI coding assistants excel at boilerplate, syntax, API orchestration, and fast prototyping. But syntax was never the hardest part of software engineering. The harder part has always been framing the real problem, understanding how components interact, identifying constraints, evaluating trade-offs, and knowing how to verify that a system actually does what it is supposed to do.

Now that AI can execute code generation on command, conceptual understanding is not less important—it is the very foundation that allows us to command AI effectively.


The Difference Between Framework Proficiency and System Understanding

When picking up a new technology, there are two distinct ways to approach learning:

  1. Learning to reproduce an implementation: Memorizing specific APIs, following step-by-step tutorials, or asking AI to generate code for a framework without understanding its underlying mechanics.
  2. Learning to build a mental model: Understanding what problem the technology was created to solve, why its abstractions exist, where it fits into a larger architecture, and what trade-offs it introduces.

Frameworks and SDKs teach us how to interact with specific abstractions. Conceptual understanding helps us decide which abstractions we need, whether they are appropriate, and when a different approach is necessary.

This does not mean hands-on experimentation is secondary. Theory without practice can lead to rigid, over-engineered designs that fail in production. Rather, conceptual reasoning and hands-on implementation should reinforce each other in a continuous loop:

+-------------------------------------------------------------+
|                                                             |
|   1. Build a Mental Model ---> 2. Define Architecture      |
|              ^                             |                |
|              |                             v                |
|   4. Refine Architecture <--- 3. Implement & Test           |
|                               (via AI, SDKs, Experiments)   |
|                                                             |
+-------------------------------------------------------------+

When you understand the underlying mechanics, you learn a framework with clear intent rather than copying code blindly.


From DevOps to Agentic FinOps: A Personal Journey

I experienced the power of this philosophy firsthand when I transitioned into the world of AI agents.

My professional background was firmly rooted in DevOps—managing cloud infrastructure, automated pipelines, and operational reliability. I had minimal formal experience with AI or agentic frameworks when an opportunity arose to design an agentic solution for a complex DevOps problem: cloud financial operations (FinOps).

Faced with an unfamiliar domain, I had two choices:

  • Approach A: Spend weeks memorizing popular agentic framework APIs, copying example agent scripts, and trying to force-fit my problem into pre-built templates.
  • Approach B: Step back and build a mental model of agentic systems first. What makes an agentic system different from a script or a deterministic workflow? What components are required—reasoning, memory, tool access, state management? How should data and decisions flow?

I chose Approach B.

Before diving deep into specific agent frameworks or SDKs, I focused on understanding the system boundaries and architectural capabilities required for an Agentic FinOps solution:

  • What exact operational problem were we solving in cloud cost governance?
  • Which tasks required autonomous decision-making versus deterministic automation?
  • How would an agent reason about cloud resource data, evaluate policies, and execute actions?
  • What state and context would need to persist across executions?
  • Where were the potential security, cost, and reliability failure modes?
+-----------------------------------------------------------------+
|                   Agentic FinOps Conceptual Model              |
+-----------------------------------------------------------------+
|                                                                 |
|  [ Data Sources ]       [ Reasoning Engine ]    [ Action Layer ]|
|  - Cloud Metrics  --->   - Policy Rules    ---> - Remediation   |
|  - Usage Data           - Context/Memory        - Alerts        |
|                                                                 |
+-----------------------------------------------------------------+

By first mapping out the system's core requirements, I could evaluate frameworks objectively. Instead of letting a framework dictate what my system should look like, I used frameworks and SDKs—along with AI assistants—to implement specific, well-defined components of the architecture I had designed.

I began building and testing core components individually to validate feasibility. Did I have every answer upfront? No. Was every part of the system immediately production-ready? No. The architecture continues to evolve as I learn more. But starting with conceptual clarity allowed me to make meaningful progress in an unfamiliar domain without getting lost in implementation details.


Engineering in the AI Era: Taking the Lead

AI tools have transformed how quickly we can move from an idea to a working prototype. But generated code is not inherently secure, performant, cost-effective, or architecturally sound.

To "take the lead to command AI" does not mean typing every line of code manually. It means taking responsibility for:

  • Problem Definition: Articulating clear, context-rich goals and constraints.
  • System Architecture: Deciding how components decouple, communicate, and fail.
  • Critique and Evaluation: Interrogating AI-generated code for security flaws, edge cases, and hidden performance costs.
  • Validation: Designing small experiments to verify that a proposed solution works under real conditions.

If you don't understand what you are asking AI to build, you cannot effectively evaluate what it returns.


A Transferable Framework for Learning New Technologies

Whether you are exploring agentic AI, Kubernetes, distributed databases, or service meshes, this iterative approach can guide your learning:

  1. Define the Problem: Understand what pain point the technology addresses before choosing tools.
  2. Build a Mental Model: Map out the core concepts, data flows, and state management mechanisms.
  3. Identify Component Responsibilities: Determine what each part of the system does and why it exists.
  4. Evaluate Trade-offs: Analyze cost, latency, security, and operational complexity across different options.
  5. Accelerate with AI and Frameworks: Use AI tools, documentation, and SDKs to rapidly write and prototype code.
  6. Test Core Assumptions: Run small, targeted experiments to validate critical capabilities.
  7. Inspect and Verify: Audit generated code—do not assume "working code" is correct code.
  8. Refine Iteratively: Adjust your architecture as practical findings reveal gaps in your mental model.

Why I Write Technical Content This Way

This philosophy directly shapes how I write technical articles. My goal is not to publish syntax cheat sheets or step-by-step code tutorials that become outdated with the next SDK release.

Instead, I aim to help readers understand why systems are built the way they are—their underlying components, decision points, and trade-offs. Once you grasp the foundational architecture, applying any specific SDK, API, or AI tool becomes straightforward.


Final Thoughts

The ability to generate code quickly is more accessible than ever. But true engineering value lies in judgment, critical thinking, and system architecture.

Before diving straight into implementation or asking AI to generate a solution, take time to understand the problem, the system, and the trade-offs. Use AI and modern frameworks to build faster, but keep your hands on the architectural wheel.

2 Comments

2 votes
2
🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Local-First: The Browser as the Vault

Pocket Portfolio - Apr 20

Why “Building in Public” Is Hollowing Out Your Developer Career

Karol Modelski - Jun 18

Dozens of email accounts: learning AI coding tools as a student

rahuldk1105 - Oct 27

The Languages of Machines and Humans: A Developer's Perspective

nevmenandr - Nov 4

The Sovereign Vault — A Comprehensive Guide to Protocol-Driven AI

Ken W. Algerverified - Jun 4
chevron_left
147 Points • 7 Badges
India, Andhra pradesh - Punganur
1Posts
1Comments
3Connections
I’m an engineer who enjoys turning messy engineering problems into simple, practical solutions. My w... Show more

Related Jobs

View all jobs →

Commenters (This Week)

4 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!