<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The Engineering Log]]></title><description><![CDATA[The Engineering Log]]></description><link>https://theengineeringloghub.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>The Engineering Log</title><link>https://theengineeringloghub.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 06:39:36 GMT</lastBuildDate><atom:link href="https://theengineeringloghub.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[From Writing Code to Designing Systems: How AI Changed the Way I Develop]]></title><description><![CDATA[I started learning software development at a time when AI wasn't writing applications for me.
Coming from a diploma background and later pursuing Computer Engineering, I spent a lot of time learning p]]></description><link>https://theengineeringloghub.hashnode.dev/from-writing-code-to-designing-systems-how-ai-changed-the-way-i-develop</link><guid isPermaLink="true">https://theengineeringloghub.hashnode.dev/from-writing-code-to-designing-systems-how-ai-changed-the-way-i-develop</guid><category><![CDATA[AI]]></category><category><![CDATA[software development]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[Developer]]></category><dc:creator><![CDATA[Atharva Butte]]></dc:creator><pubDate>Sun, 06 Sep 2026 09:44:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a9b98b2676ac13023a8419c/0825f70b-f70d-4028-b1bc-8cefe3dbe5c8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I started learning software development at a time when AI wasn't writing applications for me.</p>
<p>Coming from a diploma background and later pursuing Computer Engineering, I spent a lot of time learning programming the traditional way — writing Java, solving DSA problems, debugging errors, searching documentation, and building projects line by line.</p>
<p>Back then, if I didn't know how to implement something, I had to figure it out.</p>
<p>Today, I can describe a feature to an AI coding agent and watch it modify multiple files, create APIs, connect the frontend, write SQL, and sometimes even debug its own implementation.</p>
<p>That change has been fascinating — but also slightly uncomfortable.</p>
<h2>The World Before Coding Assistants</h2>
<p>Before AI coding assistants became part of everyday development, building a project was a much more manual process.</p>
<p>At least, that's how I experienced it.</p>
<p>When starting a project, the first challenge wasn't opening an AI agent and asking it to build the application. We had to think about the system ourselves.</p>
<p>What are the components?</p>
<p>What should the backend look like?</p>
<p>What APIs do we need?</p>
<p>What database tables are required?</p>
<p>How will the frontend communicate with the backend?</p>
<p>Sometimes this meant drawing the architecture on paper, using diagrams, or simply trying to visualize the flow in our heads. Tools such as draw.io existed, of course, but as a student, I wasn't even exposed to many of these tools initially.</p>
<p>Then came the actual implementation.</p>
<p>We relied on what we had learned through academics, tutorials, documentation and practice. If we were writing Java, we needed to know the syntax. If we were working with SQL, we needed to understand SQL.</p>
<p>And when something broke, we had to debug it.</p>
<p>An error would appear.</p>
<p>Copy the error.</p>
<p>Search Google.</p>
<p>Open a few results.</p>
<p>Maybe find a matching Stack Overflow question.</p>
<p>Follow the solution manually.</p>
<p>Sometimes it worked.</p>
<p>Sometimes the accepted answer was from 2017 and had absolutely nothing to do with our version of the framework. 😄</p>
<p>And sometimes we could spend an hour finding out that the problem was a missing semicolon, a wrong dependency, or one variable named differently in another file.</p>
<p>It sounds inefficient now.</p>
<p>But there was something valuable about that process.</p>
<p><strong>We were forced to understand what we were doing.</strong></p>
<p>If I wanted to implement something, I had to learn enough to implement it.</p>
<p>If something broke, I had to understand enough to fix it.</p>
<p>Development was slower.</p>
<p>But the person writing the code was much closer to the implementation.</p>
<p>Then something changed.</p>
<h2>Then AI Entered Development</h2>
<p>Towards the end of my second year, especially in the fourth semester, AI started becoming something different for us.</p>
<p>Not AI in the abstract.</p>
<p>Not some futuristic technology.</p>
<p><strong>ChatGPT.</strong></p>
<p>And honestly, the first reaction was mostly:</p>
<blockquote>
<p><em>Wait... it can actually do this?</em></p>
</blockquote>
<p>At first, it was simple.</p>
<p>We asked it questions.</p>
<p>We asked it to explain concepts.</p>
<p>We gave it errors.</p>
<p>We asked it to generate small pieces of code.</p>
<p>And slowly, our relationship with it changed.</p>
<p>Instead of only asking:</p>
<blockquote>
<p>"What does this error mean?"</p>
</blockquote>
<p>we started asking:</p>
<blockquote>
<p>"How should I design this API?"</p>
</blockquote>
<p>Then:</p>
<blockquote>
<p>"What should my database schema look like?"</p>
</blockquote>
<p>Then:</p>
<blockquote>
<p>"Can you help me design the architecture?"</p>
</blockquote>
<p>AI was no longer just answering questions.</p>
<p><strong>It was becoming part of the development process.</strong></p>
<p>Previously, the process was something like:</p>
<p><strong>Think → Search → Learn → Implement → Debug</strong></p>
<p>Now it started becoming:</p>
<p><strong>Think → Ask AI → Refine → Implement</strong></p>
<p>And because the answers were so fast, it was very easy to start depending on them.</p>
<p>At first, AI was something we used when we were stuck.</p>
<p>Then we started using it before starting a task.</p>
<p>Eventually, it became part of almost every development session.</p>
<p>But even then, we were still the ones moving the code around.</p>
<p>We would ask AI for the implementation, copy it, paste it into the project, run it, modify it and continue.</p>
<p>The AI was helping us write code.</p>
<p>But the next shift was much bigger.</p>
<p><strong>The AI wouldn't just give us the code. It would start working inside the codebase itself.</strong></p>
<h2>The Jump to Agentic AI</h2>
<p>This is where, for me, the change stopped feeling incremental.</p>
<p>With a normal chatbot, the interaction was still:</p>
<p><strong>Me → Prompt → AI → Code → Me</strong></p>
<p>I still had to take the output and integrate it.</p>
<p>Coding agents changed that.</p>
<p>Now it was closer to:</p>
<p><strong>Me → Give the goal → Agent → Inspect → Implement → Run → Debug → Modify</strong></p>
<p>The important difference wasn't simply that AI could generate better code.</p>
<p><strong>It could take actions.</strong></p>
<p>I could describe what I wanted to build, explain the constraints, point the agent toward the existing project, and let it work through multiple files and multiple steps.</p>
<p>That was a very different experience for someone who had learned development by writing those pieces manually.</p>
<p>And then this wasn't limited to coding.</p>
<p>Tools started appearing that could generate interfaces from descriptions. The whole development process started feeling faster.</p>
<p>Instead of:</p>
<p><strong>Idea → Design → Code → Build UI → Connect backend → Debug</strong></p>
<p>it was increasingly becoming:</p>
<p><strong>Idea → Describe → Generate → Refine</strong></p>
<p>And suddenly, writing the code wasn't always the biggest bottleneck anymore.</p>
<p>It was deciding <strong>what should be built.</strong></p>
<p>At the same time, AI was becoming impossible to ignore outside our editors too.</p>
<p>Image generation exploded. AI-generated content was everywhere. The conversation around AI shifted from simply being impressed by what it could do to asking what it meant for jobs and careers.</p>
<p>The question became:</p>
<blockquote>
<p><strong>Is AI going to replace us?</strong></p>
</blockquote>
<p>And for someone still learning software development, that question felt much more personal.</p>
<p>Because if AI can increasingly build the things I'm learning to build...</p>
<p><strong>what exactly should I be getting better at?</strong></p>
<p>That was the question that stayed with me.</p>
<h2>If AI Can Code, What Am I Learning?</h2>
<p>This was probably the most uncomfortable part of the transition.</p>
<p>At some point, I started wondering:</p>
<blockquote>
<p><strong>Am I becoming a better developer, or am I simply becoming better at telling AI what to do?</strong></p>
</blockquote>
<p>Because the things I was learning to build were increasingly things AI could already generate.</p>
<p>CRUD APIs?</p>
<p>AI can build them.</p>
<p>React components?</p>
<p>AI can generate them.</p>
<p>SQL queries?</p>
<p>AI can write them.</p>
<p>A bug?</p>
<p>Give it the error.</p>
<p>A feature?</p>
<p>Describe it.</p>
<p>And when you're still learning software development, that's a strange feeling.</p>
<p>You spend years learning how to write code, understand syntax and debug problems — and suddenly, a large part of the implementation can be produced in seconds.</p>
<p>So where does the value of a developer move?</p>
<p>I don't think the answer is that developers become useless.</p>
<p>I think the answer is more uncomfortable:</p>
<blockquote>
<p><strong>The parts of development that require understanding become more important.</strong></p>
</blockquote>
<h2>What AI Actually Made Cheaper</h2>
<p>Looking back, I don't think AI made software engineering cheap.</p>
<p><strong>It made implementation cheaper.</strong></p>
<p>There is a difference.</p>
<p>Boilerplate became faster.</p>
<p>CRUD APIs became faster.</p>
<p>Basic UI became faster.</p>
<p>SQL became easier to generate.</p>
<p>Documentation became easier.</p>
<p>Debugging got a much faster starting point.</p>
<p>Refactoring became easier to explore.</p>
<p>But if an AI generates a Spring Boot controller in ten seconds, it doesn't mean building the entire system became a ten-second problem.</p>
<p>The controller was never the whole problem.</p>
<p>The real questions are:</p>
<p><strong>Should this endpoint exist?</strong></p>
<p><strong>Who should be allowed to use it?</strong></p>
<p><strong>How should the data be stored?</strong></p>
<p><strong>What happens when something fails?</strong></p>
<p><strong>Is the architecture correct?</strong></p>
<p><strong>Is it secure?</strong></p>
<p>AI can help answer these questions too.</p>
<p>But someone still needs to evaluate those answers.</p>
<p>And that's where I started looking at my own projects differently.</p>
<h2>What Became More Important</h2>
<p>While building my <strong>AI Workflow Management Engine</strong>, I started noticing that getting an endpoint implemented wasn't necessarily the hardest part anymore.</p>
<p>The harder part was deciding what the system should actually do.</p>
<p>How should workflows be represented?</p>
<p>How should nodes and edges be stored?</p>
<p>How should execution move between nodes?</p>
<p>What happens when a node fails?</p>
<p>AI can help implement these pieces.</p>
<p>But I still need to understand why those pieces exist and how they fit together.</p>
<p>SecureVault made this even more obvious.</p>
<p>I could ask AI to create a file-upload endpoint.</p>
<p>That's relatively easy.</p>
<p>But the important question wasn't:</p>
<blockquote>
<p>"Can we upload a file?"</p>
</blockquote>
<p>It was:</p>
<blockquote>
<p><strong>"Can we upload a file without giving the server access to the plaintext?"</strong></p>
</blockquote>
<p>That question changes the architecture.</p>
<p>The file is encrypted on the client.</p>
<p>The encryption keys need to be handled carefully.</p>
<p>Private keys shouldn't be sent to the backend.</p>
<p>Different users may need access to the same encrypted file.</p>
<p>Revoking someone's access shouldn't require decrypting and re-encrypting the entire file.</p>
<p>Authorization also needs to work together with the encryption model.</p>
<p>Suddenly, the difficult part wasn't typing the code.</p>
<p><strong>It was understanding the system well enough to tell the AI what the code was supposed to accomplish.</strong></p>
<p>That was an important realization for me.</p>
<p>AI can generate implementation.</p>
<p><strong>But architecture is a set of decisions.</strong></p>
<p>And someone has to own those decisions.</p>
<h2>AI Can Make You Faster — But It Can Also Make You Weaker</h2>
<p>There is another side to this.</p>
<p>AI can make a developer dramatically faster.</p>
<p>But if used incorrectly, it can also make a developer weaker.</p>
<p>The biggest danger isn't necessarily that AI writes bad code.</p>
<blockquote>
<p><strong>It's that AI can write code that looks good enough for you to stop asking questions.</strong></p>
</blockquote>
<p>You can accept an architecture without understanding it.</p>
<p>You can copy a solution without understanding the problem.</p>
<p>You can fix an error without understanding why it happened.</p>
<p>And eventually, you can have an application that works — without really understanding the application.</p>
<p>That's especially dangerous in areas like security.</p>
<p>A generated authentication flow might work.</p>
<p>A generated encryption implementation might compile.</p>
<p>A generated authorization check might pass the happy path.</p>
<p>But:</p>
<blockquote>
<p><strong>"It works" and "it is secure" are not the same statement.</strong></p>
</blockquote>
<p>Working on SecureVault made me much more conscious of this.</p>
<p>When dealing with encryption, key management, access control and Zero Trust authorization, blindly accepting generated code isn't enough.</p>
<p>You need to be able to ask:</p>
<p><strong>Why is this key here?</strong></p>
<p><strong>Who can access it?</strong></p>
<p><strong>What happens when access is revoked?</strong></p>
<p><strong>Can this resource be accessed in a way I didn't intend?</strong></p>
<p>These aren't syntax questions.</p>
<p><strong>They're engineering questions.</strong></p>
<h2>So What Should I Learn Now?</h2>
<p>My conclusion isn't:</p>
<blockquote>
<p>"Don't use AI."</p>
</blockquote>
<p>That doesn't make much sense to me.</p>
<p>AI is already becoming part of software development.</p>
<p>Instead, I think the fundamentals matter even more.</p>
<p>For me, that means continuing to build depth in:</p>
<p><strong>DSA, Java, databases, operating systems, networking, backend architecture, security and distributed systems.</strong></p>
<p>Not because I expect to manually write every line forever.</p>
<p>But because I want to understand what those lines are doing when AI writes them.</p>
<p>At the same time, I don't want to spend three hours manually writing repetitive boilerplate just to prove that I can.</p>
<p>I'll let AI help with implementation, debugging, testing, documentation, refactoring and repetitive work.</p>
<p>The distinction is simple:</p>
<blockquote>
<p><strong>Let AI accelerate the implementation.</strong></p>
<p><strong>Don't outsource the understanding.</strong></p>
</blockquote>
<h2>Where I Am Now</h2>
<p>Today, when I use an AI coding agent, I don't want it to replace my understanding of the project.</p>
<p>I want it to replace the repetitive parts of implementation.</p>
<p>My role is increasingly becoming:</p>
<p><strong>Understand the requirements → design the system → make technical decisions → instruct the agent → review → test → debug → understand → improve.</strong></p>
<p>And ironically, AI has made me realize that knowing how to <strong>write code</strong> and knowing how to <strong>build software</strong> aren't exactly the same thing.</p>
<p>The first is about implementation.</p>
<p>The second is about understanding the entire system.</p>
<h2>What I Don't Know Yet</h2>
<p>I don't know exactly what software development will look like five years from now.</p>
<p>Maybe agents will write most of the implementation.</p>
<p>Maybe they'll handle testing, deployment and debugging too.</p>
<p>Maybe the definition of a developer will change again.</p>
<p>I'm still figuring out what that means for me.</p>
<p>But after experiencing the transition from writing code manually, to asking ChatGPT for help, to using coding assistants, and now to working with agents across an entire project, I've become convinced of one thing:</p>
<blockquote>
<p><strong>The less expensive code becomes, the more valuable understanding becomes.</strong></p>
</blockquote>
<p>I don't want to compete with AI at typing code faster.</p>
<p>I want to become better at understanding <strong>what should be built, why it should be built, and whether what was built is actually correct.</strong></p>
<p>Maybe that's what being a developer will increasingly mean.</p>
<p><strong>Not writing more code than AI.</strong></p>
<p><strong>Understanding the systems that AI helps us build.</strong></p>
]]></content:encoded></item></channel></rss>