· Yogesh Mali · programming  · 5 min read

Thoughts on AI and Changes in Engineering

In last year or so, there have been significant changes in engineering on how software is built and who is writing the code. In this post, I am reflecting on what things have changed from my personal experience and how LLMs are changing the software field.

Introduction

Everyday we hear industry leaders predicting the future, but no one talks about the challenges LLMs are throwing. Not everything is rosy in the field though.

It’s been more than a year that I have been using different tools to write code now. And so far the tools have done a great job. I have also changed on how I use these tools.

All the models like Claude Sonnet, Opus, GPT 4, GPT 5, Gemini 2.5 Flash have evolved really fast. And then there are other open source models like Kimi K2.5, Kimi K2. Tools like Claude Code, Cursor, Codex have improved fast and now most engineering organizations have adopted one of these tools.

And as the time progresses, these models will continue to get better as they learn from more code. The challenge with the feedback loop is that if you are using LLM to write all of your code, the LLM will only learn from the LLM-written code. Humans might have to come in between and add some feedback of their own, bring some new ideas of implementation.

LLM is good at following the instructions. It does even a great job if you provide right instructions, examples and detail concepts on what to do.

So I use all tools, Claude Code, Cursor and Codex in that order. All three tools provide different set of models, Cursor being an editor provides all the models. All three tools have pretty generous plan for their pro plans. I am not here to compare which one is the best tool. I think everyone should try to use all of them as much as possible to figure out what works for them.

Claude Code

I love CLI tool and Claude brings that flexibility to me so I don’t have to leave command line. I definitely start with plan mode and then implement. I also use AskUserQuestion tool to let Claude know that it should ask me more questions about the feature or bug we are trying to implement. I meticulously review the plan and find gaps in that plan. One thing I have noticed that if there are gaps in the plan, then it is not because Claude has done anything wrong, but it is because I didn’t provide enough instructions or example in my initial prompt.

Once the plan is finalized, if I don’t want to implement the plan immediately, I will ask Claude to save the plan for later. Another good thing about Claude is that it can restore the session. So usually, I will save the session id that I can resume from.

If I am implementing it immediately, I will ask Claude to implement it. In most cases, Claude does great work in one-shoting the feature and fixes.

Before I create a pull request for the changes, there are still few things left. I will review the code line by line. Despite Claude’s accuracy has improved over the time, I absolutely want to read every line of code.

I have created couple of skills with Claude that helps me also review the code automatically if I missed anything. Skills of an experienced Principal Engineer and an experienced Security Engineer. Both skills let me review the code from performance, regression, quality, memory loopholes, security loopholes.

At last, I create a pull request which I then read myself again and ask other engineers to review. Depending on if it is bug fix OR feature enhancement, I also test this in test environment.

Cursor

My usage of cursor is mostly for personal projects. There are few things I do differently compared to Claude. First I will prepare product requirements markdown file with Claude and feed that to cursor plan mode. Product requirements at times can be ambiguous and I clarify them in Cursor plan mode. Cursor does a great job in preparing the plan similar to Claude Code.

Once I verify the plan document, I ask Cursor to implement it. For both planning and implementing - I use different models. I have not seen much difference in the implementation quality if I use higher model. Like I will use Claude Opus for planning, but Sonnet for implementation. If I use Opus for planning and Opus for implementation, most of the code quality still stays similar if not exactly same.

Rest of the process is same where I review the code and ask Cursor to review through a different model usually GPT or Gemini models.

Codex

In all three tools, I have used Codex the least. And this is despite it being a really good tool and have improved exceptionally well. GPT 5 Codex models are good at coding tasks.

I follow the same pattern here. I will ask Codex to first plan and then implement. I try to use Codex if I am doing frontend tasks. For majority of backend work, I prefer Claude or Cursor.

One key differentiator between Claude and Codex is that Claude performs much better UI design wise compared to Codex. Codex is still good with frontend skills.

Other AI Coding Tools

I have also used Gemini, Grok and Windsurf in different capacities. There are a lot of tools available. There is also OpenCode - the open source tool. Many of these tools do decent job and can be used for code writing. Generally, you should use one or two tools and learn in depth about their capabilities so you can become really good at them. In the following posts, I will cover different capabilities of Claude Code tool along with different LLMs.

    Share:
    Back to Blog

    Related Posts

    View All Posts »

    Building Saas in 2024

    A comprehensive guide to the technology stack and considerations for building a full-stack SaaS application in 2024.

    System Thinking

    Learn how to think in systems and apply systems thinking to software engineering and architecture decisions.

    How Databases Work

    How Databases Work

    An in-depth exploration of how databases work under the hood, from storage engines to query processing.