have revolutionized the way I program. When I first learned coding back in 2019, I wrote all the code, character for character. In hindsight, I’m grateful for this experience, due to the problem-solving mindset coding taught me.
However, with AI agents, I believe I’m at least 10x more effective as an engineer than I used to be. This is because I’m utilizing AI agents to perform as many of the repetitive, mundane tasks as possible that I used to have to do. Previously, I had to:
And a long list of other tasks I don’t spend much time doing now. Some would say you shouldn’t let AI do all the work for you, because it makes you a worse coder. I would counter that AI is only doing the mundane repetitive work, while I can perform the most cognitive-straining tasks, organizing and orchestrating the AI agents.

This infographic highlights the main contents of this article. I’ll discuss how to be a far more effective engineer by acting like an orchestrator, rather than an implementor. I’ll discuss three of the main techniques I use for programming with AI agents: Planning mode, browser actions ,and checking logs with AI agents. Image by Gemini.
In this article, I’ll provide you with an insight into three of the most important techniques I implement to effectively utilize AI agents for coding. I believe these techniques both make me a lot more efficient as an engineer, and it also maximizes the potential of AI agents.
I’m always looking for ways to be a more effective engineer, so if you have more suggestions, I would greatly appreciate any feedback!
Throughout the article, I’ll refer to both Cursor and Claude Code. I’m not sponsored by any of them, and it’s simply the tools I use for my agentic coding.
I first want to start off with why you should use AI agents when coding. The main argument is that you can do more in less time.
AI agents allow you to do more, in less time
Features that used to take 5 hours to implement can now be realistically implemented and tested in 15 minutes.
Bugs that took you an hour to figure out and 30 minutes to solve can now simply be solved by your agent in 5 minutes. With the Linear MCP, you can even just copy the issue URL and have your agent read the request, find the error, implement a solution, and create a ready-made PR for you.
This is simply amazing. You can read reports on how AI only increases effectiveness in 5% of implementations. However, if you start using agentic coding tools and the techniques I’m presenting in this article, I’ll guarantee you see a noticeable change in your productivity.
I’m pushing code more than ever before, without a significant increase in bugs. That’s the literal definition of what makes a programmer more effective.
The first and probably most important technique I utilize is the planning mode whenever implementing a new feature. Planning mode is available in all of the well-known agentic coding tools, such as Claude Code and Cursor. In Cursor, you can select it by pressing Shift-Tab while prompting your agent.
Planning mode makes it so the agent makes a plan for an implementation, either for a new feature, a bug report, or whatever you want to perform in your codebase. This plan is made by the agent reading through your request and the code repository in order to determine the best approach to solve your request.
Plan mode then writes the plan to a Markdown file, and might ask you some questions about how to implement your request:
Plan mode is so effective because natural langauge is inherently ambigoutous
This is the reason we came up with a programming language: A piece of code is deterministic, and always outputs the same, given the same input. There is no ambiguity in a piece of Python code, for example.
However, now we’ve reverted to coding through natural language, because the agents are implementing code instead. Still, we need an approach to eliminate ambiguity, where the plan mode comes in useful.
Cursor browser actions is another very useful technique I’ve started actively utilizing lately. Cursor browser actions allow your Cursor agent to perform actions while working on your implementation. These actions can be:
This is an incredible tool to help the agent solve one-shot problems, all by itself, instead of you having to manually test implementations in the browser and copy console logs containing errors.

This image highlights a repetitive, time-consuming loop when implementing a new feature in a browser app. You first implement a feature. Then you have to open the browser and test if the feature works. Oftentimes, it doesn’t work on the first try, so you need to read the console logs and copy them over to your AI agent, which will iterate on the implementation. Then this loop continues until the solution works. Instead of performing this time-consuming loop, you can ask Cursor to perform browser actions, which will automatically open the browser, click around, and read the console logs to make sure everything works as intended. If not, Cursor reads the logs automatically and iterates on the feature until it works. All of this without you needing to manually intervene, simply to copy over console logs. Image by Gemini.
Instead, you can simply ask Cursor to open the URL, click around, and make sure there are no issues with the implementation. You essentially make Cursor perform an end-to-end test for you, which is super effective at discovering challenges in your implementation.
It saves a lot of time to prompt Cursor to open the browser, click around, and check the browser logs every time I add a new implementation.
Another useful technique I utilize heavily is to check logs with Claude Code or Cursor.
I use Claude Code to check logs if they’re unrelated to an implementation I’m working on. For example, if a document is suddenly stuck in the processing pipeline, without me having changed anything in the relevant code recently.
I use Cursor typically to check logs whenever I’m working on an implementation. I can, for example, prompt Cursor to send a test event to a Lambda function, and check the CloudWatch logs to make sure everything was processed as expected.
I previously spent a lot of time in the AWS console, manually navigating to the relevant log group and searching the log group, which takes a long time. Thus, I started prompting my coding agents to check the logs for me instead, which saves me 10-60 minutes per day: an incredible efficiency gain.
Having agents check logs is super useful, and has almost no downside. Checking logs is usually a simple task that you just have to do. It’s not intellectually challenging or something you want to spend time on. Thus, utilizing agents to scan through logs is a super valuable use case of coding agents.
Checking logs is a simple and repetitive task: a perfect task to have coding agents perform, while you do more valuable work
If you use agents to scour through your logs, it’s important to provide your agent with as much background information:
This saves you a lot of time and money, because your agent doesn’t have to list all of your infrastructure as code and find the relevant service to look through. I’ve talked about this concept in my article on effective usage of AGENTS.md.
In this article, I’ve discussed three of the main techniques I use to effectively utilize coding agents. I believe that the use of coding agents and these techniques has made me at least 10x more effective as an engineer, from an overall perspective. It’s revolutionized the way I work, and saves me incredible amounts of time in my day-to-day work. I believe being effective at utilizing AI tools will be incredibly important for the programmers of the future.
👉 My Free Resources
🚀 10x Your Engineering with LLMs (Free 3-Day Email Course)
📚 Get my free Vision Language Models ebook
💻 My webinar on Vision Language Models
👉 Find me on socials:
🧑💻 Get in touch
✍️ Medium