Cursor: The compression of mechanical work

Software engineering has always had a hidden cost: the gap between having an idea and making it work.

Consider a routine task: adding Google Login to an app. You know the plan in minutes, update the database, add the API route, configure the keys. The mental model is clear. But the implementation takes hours. You have to find the right files, type out the boilerplate code, fix the imports, and wrestle with configuration. This is the mechanical tax. It is the friction between your thought and the software.

Cursor reduces this tax. You describe what you want; the AI handles the typing.

What was once a three-hour slog becomes a forty-five-minute review session. But speed is just the bonus. The real shift is in your role: you are no longer the typist; you are the architect. The creative process stays with you, but the manual labor, the sheer act of writing code, is outsourced to a machine that types at the speed of light.


Beyond autocomplete: The semantic map

Traditional autocomplete is shortsighted. It predicts the next word based only on the file open in front of you. It doesn't know about the code you wrote yesterday in a different folder. It guesses words; it doesn't understand systems.

Cursor breaks this model by reading your entire codebase. It builds a "semantic map" of your project, learning your patterns, your naming styles, and your architectural decisions.

The first time I grasped the power of this, I typed a vague instruction:

"Refactor the user service to match how we handle organization entities."

It worked instantly. It didn't just match keywords; it inferred the structure. It understood "user service," it identified the pattern used for "organization entities," and it applied that logic to the new context.

This is reasoning, not just guessing. The context isn't just the text on your screen; it is your entire project, test outputs, documentation, and the unspoken rules of your team.


The workflow: Four gears of interaction

Cursor isn't a single feature; it is a system with four distinct "gears," each suited to a different kind of work.

1. The flow state (Tab)

Standard autocomplete predicts the next word. Cursor's "Tab" predicts the next thought.

It generates entire functions, anticipates your next move, and understands the rhythm of editing. If you add a new requirement to a function, it immediately highlights all the other places in your code that need to be updated.

It feels less like a tool and more like a partner who is always one step ahead. After a few days, it stops suggesting generic "best practices" and starts suggesting your code, adopting your specific style and preferences.

2. Inline mutation (Cmd+K)

Switching windows destroys focus. Going to a chat window to ask for a change breaks your flow. The Cmd+K interface lets you give instructions right where you are. You select code and describe the change:

"Refactor this to use async/await." "Add a limit of 100 requests per minute." "Handle the case where the user is missing."

A "diff" (comparison view) appears in place. You accept or reject.

This turns refactoring from a chore into a rapid-fire review process. Changes that usually demand five minutes of careful editing happen in seconds of careful verification.

3. Contextual query (Chat)

When you need to explore or understand, Chat provides an interface to ask questions about your specific codebase.

  • "How does our caching system work?"
  • "Why would this test fail?"
  • "Trace the data flow from the API to the database."

The power lies in the reference system. You can tag specific files or folders (like @auth or @database) to give the AI exact context. It answers with facts about your system, not generic advice from the internet.

4. Agentic building

This is the frontier. Agent mode handles multi-step tasks that require navigating files and running commands.

"Add CSV export to the dashboard. Follow our existing PDF export patterns."

I watched it work: it searched the codebase to find the PDF logic, analyzed the pattern, implemented the backend code, updated the frontend, generated tests, ran them, saw a failure, fixed its own failure, and presented a complete solution.

It is disorienting. You stop coding and start supervising. You interrupt only if it goes off track. But the heavy lifting is done for you.


The illusion of competence

After months of daily use, I have learned that treating AI as magic is dangerous. It has specific weaknesses you must manage.

Novelty is Difficult The model excels at copying patterns. If you have done something before, it can do it again elsewhere. But creating a new architecture requires human leadership. If you ask it to design a system from scratch without guidance, it will produce a plausible-looking mess. You must break new problems into familiar steps.

Ambiguity Produces Garbage Vague instructions yield vague code. "Make this faster" achieves nothing. "Reduce response time by adding caching" works. Clear thinking is the requirement for clear code.

The "Looks Right" Trap This is the most dangerous pitfall. The code appears professional and correct.

I once shipped a bug because the generated code looked perfect and passed the tests. I hadn't understood it; I had only accepted it.

The lesson: Decide your review level upfront.

  • Prototype? Accept fast, fix later.
  • Internal Tool? Verify it works, ignore polish.
  • Payment System? Scrutinize every line. Test manually. Zero tolerance for errors.

The question isn't "Is the AI right?" It is "What is the cost if it's wrong?"


The skill of orchestration

These limitations are not blockers; they are just the rules of the game.

Working with Cursor is like training a junior engineer who types incredibly fast but lacks judgment. At first, you watch them closely. Over time, you learn their strengths.

My approach has evolved:

  • Chunk the New Stuff: Don't ask for a complex system all at once. Ask for the basic structure. Then add the details. Break the big problem into small, solvable pieces.
  • Show, Don't Just Tell: For unusual patterns, write one example by hand. Then tell the AI: "Do it like this."
  • Set Boundaries: Often, it's more effective to say what not to do. "No external libraries." "Keep it simple."

The agent is not a black box. It is a partner. The better you understand it, the more value you get.


Intent-driven development

Once you master this, the bottleneck shifts again. If the machine can execute any clear instruction, the challenge becomes giving clear instructions.

Natural language is fuzzy. Code is precise. The bridge is the test.

I have started writing tests before the code exists. A test defines the goal: user clicks buy → transaction succeeds.

Then I tell the AI: "Make this test pass, following our payment patterns."

The AI handles the mechanics, the logic, the API calls, the errors. I review the architecture. The test becomes the instruction, the intent, and the proof all in one.


The new bottleneck

Cursor compresses mechanical work. Tasks that used to take half my day now take an hour. The question remains: what do we do with the saved time?

The AI handles the how. The what and the why remain strictly human. A tool that builds the wrong feature perfectly is useless.

My value as an engineer used to be limited by how fast I could type and how much syntax I remembered. Now, my value is defined by:

  • Vision: Knowing the right system to build.
  • Understanding: Knowing the problem deeply.
  • Taste: Knowing the difference between a clumsy solution and an elegant one.
  • Clarity: The ability to explain what I want so clearly that a machine can build it.

Cursor doesn't replace the engineer. It removes the barrier between thought and software, ensuring that the only limit to what you can build is how clearly you can think.

Cursor: The compression of mechanical work | Jean-Baptiste Terrazzoni