<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aleksandr Polenkov</title>
    <description>The latest articles on DEV Community by Aleksandr Polenkov (@apolenkov).</description>
    <link>https://dev.to/apolenkov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3686620%2Fe083d592-53b4-4845-9f7c-2776bc8fed26.png</url>
      <title>DEV Community: Aleksandr Polenkov</title>
      <link>https://dev.to/apolenkov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/apolenkov"/>
    <language>en</language>
    <item>
      <title>Battle for Context: How We Implemented AI Coding in an Enterprise Project Feature</title>
      <dc:creator>Aleksandr Polenkov</dc:creator>
      <pubDate>Tue, 30 Dec 2025 20:57:01 +0000</pubDate>
      <link>https://dev.to/apolenkov/battle-for-context-how-we-implemented-ai-coding-in-an-enterprise-project-11hd</link>
      <guid>https://dev.to/apolenkov/battle-for-context-how-we-implemented-ai-coding-in-an-enterprise-project-11hd</guid>
      <description>&lt;p&gt;&lt;em&gt;425 commits, 672 files, 1.5 billion tokens — and one form. A story about learning to work with AI in a real product.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
  ⚡ TL;DR — Quick Summary
  &lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; AI coding in Enterprise projects fails because of context limitations. Models "forget" after 20-30 minutes of work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Figma → Prototype → Production&lt;/strong&gt; — Design first, then AI implements in small steps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Opus + Gemini combo&lt;/strong&gt; — Opus plans (200K), Gemini implements (1M tokens)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict Quality Gates&lt;/strong&gt; — ESLint, TypeScript, Vitest, commitlint, Secretlint&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two-level tracking&lt;/strong&gt; — Jira for team, Beads for AI atomic tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Bank&lt;/strong&gt; — External memory so AI doesn't lose context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SuperCode Workflows&lt;/strong&gt; — Smart Actions for automated multi-step pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MSW Mocking&lt;/strong&gt; — Local development without network access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Lesson:&lt;/strong&gt; AI without constraints is like a broken combine harvester on fire — it will "optimize" everything, including things you didn't ask for.&lt;/p&gt;



&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction: A Task Nobody Had Solved
&lt;/h2&gt;

&lt;p&gt;Imagine this: you need to give an analyst the ability to code. Not "write a prompt to &lt;a href="https://chat.openai.com/" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;," but actually make changes to an Enterprise product with a three-year history and a million lines of code.&lt;/p&gt;

&lt;p&gt;The developer isn't sitting next to them dictating every line. They set up the environment, control quality, and only intervene when something goes wrong.&lt;/p&gt;

&lt;p&gt;Sounds like science fiction? We thought so too. Until we tried.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzfnkuiusktl3ldk5h50.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzfnkuiusktl3ldk5h50.png" alt="Diagram 1: Traditional vs Our Approach"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Is Harder Than It Seems
&lt;/h2&gt;

&lt;p&gt;When a programmer uses an AI assistant, they control every step. They see what's happening "under the hood." They notice oddities in the code immediately.&lt;/p&gt;

&lt;p&gt;With an analyst, everything is different. They see the result: "the form appeared" or "the form doesn't work." But code quality, architectural decisions, potential bugs — all of this remains behind the scenes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjb36a8bq0s1u42ue0kti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjb36a8bq0s1u42ue0kti.png" alt="Diagram 2: What Analyst Sees vs Hidden"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We decided to create a system that compensates for this blindness. A system where AI can't "cause trouble" even if it really wants to.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tool Selection: Why Cursor
&lt;/h2&gt;

&lt;p&gt;We tried several options: &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot&lt;/a&gt;, &lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt;, &lt;a href="https://codeium.com/windsurf" rel="noopener noreferrer"&gt;Windsurf&lt;/a&gt;, various API wrappers. We settled on &lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt; for several reasons:&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Coding Tools Comparison (2025)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;&lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://codeium.com/windsurf" rel="noopener noreferrer"&gt;Windsurf&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://openai.com/codex" rel="noopener noreferrer"&gt;Codex&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes: Opus, Gemini, GPT&lt;/td&gt;
&lt;td&gt;No: GPT-4/o1 only&lt;/td&gt;
&lt;td&gt;No: Claude only&lt;/td&gt;
&lt;td&gt;Yes: Multiple&lt;/td&gt;
&lt;td&gt;No: codex-1 only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MCP Integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Built-in&lt;/td&gt;
&lt;td&gt;Via Extensions&lt;/td&gt;
&lt;td&gt;Built-in&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom Rules&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.mdc&lt;/code&gt; files&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CLAUDE.md&lt;/code&gt; only&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;td&gt;Workspace (beta)&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;td&gt;Cascade&lt;/td&gt;
&lt;td&gt;Full (sandbox)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context Window&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1M+ (Gemini)&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;200K&lt;/td&gt;
&lt;td&gt;1M+&lt;/td&gt;
&lt;td&gt;192K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Enterprise SSO&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Beta&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IDE Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fork VSCode&lt;/td&gt;
&lt;td&gt;Extension&lt;/td&gt;
&lt;td&gt;Terminal CLI&lt;/td&gt;
&lt;td&gt;Fork VSCode&lt;/td&gt;
&lt;td&gt;Cloud sandbox&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt; &lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt; is the only tool that combines multi-model support with built-in MCP integration and flexible context-aware rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-model Support
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt; allows using different models for different tasks:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favjafxytzp1cw5o5t2l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favjafxytzp1cw5o5t2l5.png" alt="Diagram 3: Multi-Model Support"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.anthropic.com/claude" rel="noopener noreferrer"&gt;Claude Opus 4.5&lt;/a&gt;&lt;/strong&gt; for architectural planning (smart but "expensive" in tokens)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://deepmind.google/technologies/gemini/" rel="noopener noreferrer"&gt;Gemini 3 Flash&lt;/a&gt;&lt;/strong&gt; for implementation (fast, cheap, and most importantly — 1 million tokens of context)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  MCP Integration
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt; — a way to connect external tools to AI:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bs6pz3mq6hqezdty2rz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bs6pz3mq6hqezdty2rz.png" alt="Diagram 4: MCP Integration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;MCP Server&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;Jira&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Task management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/upstash/context7" rel="noopener noreferrer"&gt;Context7&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Library documentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.npmjs.com/package/@allpepper/memory-bank-mcp" rel="noopener noreferrer"&gt;Memory Bank&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Context preservation between sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://github.com/steveyegge/beads" rel="noopener noreferrer"&gt;Beads&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Atomic task tracking&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Flexible Rules
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt; allows creating &lt;code&gt;.mdc&lt;/code&gt; files with rules that automatically load depending on context. Working on a &lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React&lt;/a&gt; component — get React rules. Writing a script — get &lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; rules.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Design-to-Code Pipeline: Figma → Prototype → Production
&lt;/h2&gt;

&lt;p&gt;One crucial part of our workflow that made AI coding possible: &lt;strong&gt;we started from design, not from code&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Three-Step Process
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Figma Design&lt;/strong&gt; — The analyst creates UX/UI mockups in &lt;a href="https://www.figma.com/" rel="noopener noreferrer"&gt;Figma&lt;/a&gt;. No code yet, just visual design and component structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prototype Implementation&lt;/strong&gt; — We ask AI to transfer the Figma design to a clean, minimal project (10-15 files). This is where AI shines — small context, clear requirements, fast iteration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Production Migration&lt;/strong&gt; — Once the prototype works perfectly, we migrate it to the main product. AI handles the integration with existing patterns and styles.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Why this works:&lt;/strong&gt; AI struggles with large codebases but excels at small, focused tasks. By breaking the work into "design → prototype → production," we keep each step within AI's effective context window.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With &lt;a href="https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Figma-MCP-server" rel="noopener noreferrer"&gt;Figma MCP&lt;/a&gt;, the AI agent can even read design specs directly from Figma files — colors, spacing, component hierarchy — and apply them automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  Security Requirements: Working Locally
&lt;/h2&gt;

&lt;p&gt;Our security team set strict requirements: no access to the corporate network during development. No cloning of the production database.&lt;/p&gt;

&lt;p&gt;This meant we needed a full mocking system. We built it on &lt;a href="https://mswjs.io/" rel="noopener noreferrer"&gt;MSW (Mock Service Worker)&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajqsbqhhv5zgnziotrdo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajqsbqhhv5zgnziotrdo.png" alt="Diagram 5: MSW Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;50+ handlers for all API endpoints&lt;/li&gt;
&lt;li&gt;Realistic data generators using &lt;a href="https://fakerjs.dev/" rel="noopener noreferrer"&gt;@faker-js&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Full business logic emulation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quality Gates: The Stricter, The Better
&lt;/h2&gt;

&lt;p&gt;Here's the key insight we took from this project: &lt;strong&gt;AI needs strict constraints&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Without them, it starts to "create." Sees outdated code — refactors. Notices a potential vulnerability — "fixes" it. Finds a style mismatch — reformats.&lt;/p&gt;

&lt;p&gt;Sounds useful? In practice, it means a simple task "add a field to a form" turns into a PR with 100,000 lines.&lt;/p&gt;

&lt;h3&gt;
  
  
  Our Quality Gates Pipeline
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gpgymavogfh3yna7uwa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gpgymavogfh3yna7uwa.png" alt="Diagram 6: Quality Gates Pipeline"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://commitlint.js.org/" rel="noopener noreferrer"&gt;commitlint&lt;/a&gt;&lt;/strong&gt; — checks commit message format&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;/strong&gt; — strict &lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt; rules, import order&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;&lt;/strong&gt; — strict mode, no &lt;code&gt;any&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://vitest.dev/" rel="noopener noreferrer"&gt;Vitest&lt;/a&gt;&lt;/strong&gt; — unit tests must pass&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/secretlint/secretlint" rel="noopener noreferrer"&gt;Secretlint&lt;/a&gt;&lt;/strong&gt; — checks for accidentally committed secrets&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;AI cannot bypass these checks. If the code doesn't pass — the commit won't happen.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Context Problem: The Main Pain Point
&lt;/h2&gt;

&lt;p&gt;Now for the most important part. The thing that almost killed the entire project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you work with a simple 10-file application, AI handles it perfectly. The entire project fits in its "memory." It sees the complete picture.&lt;/p&gt;

&lt;p&gt;But what happens when the project is a million lines of code accumulated over three years? AI sees only a fragment. The tip of the iceberg.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hulmxn5dajiyfpggxoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hulmxn5dajiyfpggxoy.png" alt="Diagram 7: Context Iceberg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are real numbers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Size&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;th&gt;AI Effective Work Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tutorial project&lt;/td&gt;
&lt;td&gt;100K&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium product&lt;/td&gt;
&lt;td&gt;500K&lt;/td&gt;
&lt;td&gt;2-3 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Enterprise (3+ years)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1M+&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20-30 minutes&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;After 30 minutes, AI starts to "forget." Repeats mistakes. Proposes solutions you've already rejected. Breaks what was just working.&lt;/p&gt;




&lt;h2&gt;
  
  
  Four Rakes We Stepped On
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4e035yffzgbzl4wyor14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4e035yffzgbzl4wyor14.png" alt="Diagram 8: Four Rakes &amp;amp; Solutions"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Rake #1: "It Worked on a Simple Example"
&lt;/h3&gt;

&lt;p&gt;We ran an experiment. Asked an analyst to create a registration form on a clean boilerplate — minimal &lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React&lt;/a&gt; project, reference rules, 10 files.&lt;/p&gt;

&lt;p&gt;Result: 15 minutes, everything works perfectly.&lt;/p&gt;

&lt;p&gt;The same task on a real project: nothing works. AI gets confused by dependencies, uses outdated patterns, conflicts with existing code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; It's not about AI being "dumb." It's about lack of context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rake #2: AI "Fixed" the Entire Project
&lt;/h3&gt;

&lt;p&gt;This was a catastrophe. We set a task: add one feature. AI completed it. And also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Replaced all &lt;code&gt;any&lt;/code&gt; with specific types&lt;/li&gt;
&lt;li&gt;"Fixed" potential vulnerabilities&lt;/li&gt;
&lt;li&gt;Reformatted half the project&lt;/li&gt;
&lt;li&gt;Updated outdated dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result: PR with &lt;strong&gt;100,000+ lines&lt;/strong&gt;. &lt;a href="https://gitlab.com/" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt; physically couldn't display the diff. We spent &lt;strong&gt;two weeks&lt;/strong&gt; figuring it out. The product was broken.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;😰 &lt;em&gt;"This was very painful."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🚜 Imagine a combine harvester that suddenly decided it's not just harvesting wheat, but also "optimizing" the entire field — plowing, seeding, and building a barn. Except the harvester is broken and on fire. That's what uncontrolled AI looks like on a large codebase.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; You need rules that explicitly limit the scope of AI work. Otherwise, you get a "helpful" AI that turns your simple feature into a full-scale renovation project — with demolition included. 🔥&lt;/p&gt;

&lt;h3&gt;
  
  
  Rake #3: Token Limitation
&lt;/h3&gt;

&lt;p&gt;We didn't immediately understand that most models have context limited to 100-200K tokens. For an Enterprise project, this is enough for 3-5 iterations.&lt;/p&gt;

&lt;p&gt;Then AI starts "forgetting" the beginning of the conversation. Proposes solutions you've already rejected. Repeats mistakes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; For Enterprise, you need models with at least 1 million tokens of context.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 &lt;em&gt;"Enterprise projects require at least 1 million tokens of context. Otherwise, it doesn't work."&lt;/em&gt; — &lt;strong&gt;Opus&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Rake #4: Auto-Mode Is a Trap
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt; can automatically select a model. Sounds convenient? In practice, it often chooses a "cheap" model with a small context.&lt;/p&gt;

&lt;p&gt;We wasted a lot of time before we understood: for serious work, you need to manually select the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Opus for planning, Gemini Flash for implementation. No auto-mode.&lt;/p&gt;




&lt;h2&gt;
  
  
  How We Solved the Context Problem
&lt;/h2&gt;

&lt;p&gt;After all the rakes, we developed a system. It's not perfect, but it works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two-Level Task Tracking
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihm04bjv2ea1o1hj7l6c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihm04bjv2ea1o1hj7l6c.png" alt="Diagram 9: Jira + Beads Tracking"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;Jira&lt;/a&gt;&lt;/strong&gt; — top level. Tasks for the team: "VP-385: Add registration form."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/steveyegge/beads" rel="noopener noreferrer"&gt;Beads&lt;/a&gt;&lt;/strong&gt; — atomic level. Tasks for AI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"bd-1: Review file UserForm.tsx"&lt;/li&gt;
&lt;li&gt;"bd-2: Add email field"&lt;/li&gt;
&lt;li&gt;"bd-3: Write test"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/steveyegge/beads" rel="noopener noreferrer"&gt;Beads&lt;/a&gt; is stored locally, syncs with git. AI always knows what step it stopped at.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.npmjs.com/package/@allpepper/memory-bank-mcp" rel="noopener noreferrer"&gt;Memory Bank&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is "external memory" for AI. We store:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6h8k92df6xsnmd3zvnn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6h8k92df6xsnmd3zvnn.png" alt="Diagram 10: Memory Bank Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;activeContext.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Current focus — what we're working on now&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;progress.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Implementation status — what's already done&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;research-*.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Investigations — what we found out&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;archive-*.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Completed tasks — historical reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Usage example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI: "Look at all my commits and summarize them"
Memory Bank → Indexing → Result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;💡 &lt;em&gt;"Memory Bank is a lifesaver. Without it, context is lost forever."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When AI "forgets" context, it can access Memory Bank and restore understanding.&lt;/p&gt;

&lt;h3&gt;
  
  
  SuperCode Workflows
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://supercode.sh/" rel="noopener noreferrer"&gt;SuperCode&lt;/a&gt; adds another layer of acceleration:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9nrqv2fqjv3463fc31x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9nrqv2fqjv3463fc31x.png" alt="Diagram 11: SuperCode Workflow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Smart Actions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom automation workflows via JSON/YML in &lt;code&gt;.supercode/actions/&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prompt Updaters&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Transform prompts via AI, URL, or shell commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Voice Commands&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Trigger actions by voice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Nested Workflows&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sequential execution with &lt;code&gt;run: true&lt;/code&gt; for multi-step pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Workflow Example&lt;/strong&gt; (from &lt;a href="https://supercode.sh/en/how-it-works/smart-actions" rel="noopener noreferrer"&gt;SuperCode docs&lt;/a&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Architecture Design"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SC:Architect"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"o3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Design the architecture for: $prompt"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"run"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Implementation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-4-sonnet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Implement based on the design: $prompt"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"run"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Full Feature Workflow"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"actions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Architecture Design"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Implementation"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;💡 &lt;em&gt;"I imagine myself as Tony Stark talking to Jarvis."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Model Combination
&lt;/h3&gt;

&lt;p&gt;We split work between two models:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.anthropic.com/claude" rel="noopener noreferrer"&gt;Claude Opus 4.5&lt;/a&gt;&lt;/strong&gt; — architect. Creates plans, writes specs, conducts reviews. It has "only" 200K tokens, but for planning that's enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://deepmind.google/technologies/gemini/" rel="noopener noreferrer"&gt;Gemini 3 Flash&lt;/a&gt;&lt;/strong&gt; — executor. Implements code according to plan. 1 million tokens of context — can work for hours without losing the thread.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5lyx9pra0i1ansq6w8v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5lyx9pra0i1ansq6w8v.png" alt="Diagram 12: Model Combination Cycle"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cycle: Opus plans → Gemini implements → Opus reviews.&lt;/p&gt;




&lt;h2&gt;
  
  
  Project Statistics
&lt;/h2&gt;

&lt;p&gt;Over 1.5 weeks of work on the &lt;code&gt;feature/timeline&lt;/code&gt; branch:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Commits&lt;/td&gt;
&lt;td&gt;425&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Files changed&lt;/td&gt;
&lt;td&gt;672&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lines added&lt;/td&gt;
&lt;td&gt;+85,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lines removed&lt;/td&gt;
&lt;td&gt;-11,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tests added&lt;/td&gt;
&lt;td&gt;~200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tokens spent&lt;/td&gt;
&lt;td&gt;1.5 billion&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What was implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Full &lt;a href="https://mswjs.io/" rel="noopener noreferrer"&gt;MSW&lt;/a&gt; mocking system (50+ handlers)&lt;/li&gt;
&lt;li&gt;✅ Schedule Timeline with Gantt chart&lt;/li&gt;
&lt;li&gt;✅ Quality Gates (&lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;, &lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;, &lt;a href="https://typicode.github.io/husky/" rel="noopener noreferrer"&gt;Husky&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;✅ &lt;a href="https://github.com/steveyegge/beads" rel="noopener noreferrer"&gt;Beads&lt;/a&gt; integration&lt;/li&gt;
&lt;li&gt;✅ 200+ unit tests&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Comparison: Traditional Development vs AI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4di3jmwmp9bkg3v6tuti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4di3jmwmp9bkg3v6tuti.png" alt="Diagram 13: Traditional vs AI Development"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honest comparison:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Traditional&lt;/th&gt;
&lt;th&gt;With AI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time per feature&lt;/td&gt;
&lt;td&gt;2-3 weeks&lt;/td&gt;
&lt;td&gt;1.5 weeks*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code quality&lt;/td&gt;
&lt;td&gt;Depends on developer&lt;/td&gt;
&lt;td&gt;High (Quality Gates)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tests&lt;/td&gt;
&lt;td&gt;Often skipped&lt;/td&gt;
&lt;td&gt;200+ automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation&lt;/td&gt;
&lt;td&gt;Often none&lt;/td&gt;
&lt;td&gt;Generated&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Including infrastructure setup, learning, and all the rakes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Important nuance: &lt;strong&gt;the first time is expensive&lt;/strong&gt;. We spent 1.5 weeks understanding how this works. Setting up rules. Stepping on rakes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💰 &lt;em&gt;"First time is expensive. Second time is 10x faster."&lt;/em&gt; — &lt;strong&gt;Opus&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The second feature will take 10 times less time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Role Evolution
&lt;/h2&gt;

&lt;p&gt;AI coding changes team roles:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxdkgd1bk0uxnon6mqrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxdkgd1bk0uxnon6mqrg.png" alt="Diagram 14: Role Evolution"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analyst&lt;/strong&gt; no longer just "writes specs." They become a junior developer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Understand SQL queries&lt;/li&gt;
&lt;li&gt;✅ Work with Git (branches, commits, PRs)&lt;/li&gt;
&lt;li&gt;✅ Read code at a basic level&lt;/li&gt;
&lt;li&gt;✅ Use AI prompts effectively&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Developer&lt;/strong&gt; no longer just "writes code." They become an architect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Design patterns over language syntax&lt;/li&gt;
&lt;li&gt;✅ System architecture skills&lt;/li&gt;
&lt;li&gt;✅ DevOps fundamentals&lt;/li&gt;
&lt;li&gt;✅ Any language: Java, Node.js, Python, Go — AI writes them all&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🎖️ &lt;em&gt;"Developers become universal soldiers."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Developers become universal specialists. Can work with any stack because they understand principles, not syntax.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusions and Recommendations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Complete Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi91n5bpnfdc7a1u7dovu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi91n5bpnfdc7a1u7dovu.png" alt="Diagram 15: Complete Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.figma.com/" rel="noopener noreferrer"&gt;Figma&lt;/a&gt; → Prototype → Production&lt;/strong&gt; — design first, implement in small steps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.anthropic.com/claude" rel="noopener noreferrer"&gt;Opus&lt;/a&gt; + &lt;a href="https://deepmind.google/technologies/gemini/" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt; combination&lt;/strong&gt; — smart architect + fast executor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality Gates&lt;/strong&gt; — the stricter the constraints, the better the result&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two-level tracking&lt;/strong&gt; — &lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;Jira&lt;/a&gt; for team, &lt;a href="https://github.com/steveyegge/beads" rel="noopener noreferrer"&gt;Beads&lt;/a&gt; for AI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.npmjs.com/package/@allpepper/memory-bank-mcp" rel="noopener noreferrer"&gt;Memory Bank&lt;/a&gt;&lt;/strong&gt; — external memory to not lose context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://supercode.sh/" rel="noopener noreferrer"&gt;SuperCode&lt;/a&gt; Workflows&lt;/strong&gt; — chain automation for AI actions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data mocking&lt;/strong&gt; — complete development autonomy&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What Doesn't Work
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Auto-mode for model selection&lt;/li&gt;
&lt;li&gt;AI without constraints (will fix the entire project)&lt;/li&gt;
&lt;li&gt;Models with context less than 1M tokens for Enterprise&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Checklist for Getting Started
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Set up local development environment&lt;/li&gt;
&lt;li&gt;[ ] Implement Quality Gates (&lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;, &lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt; strict)&lt;/li&gt;
&lt;li&gt;[ ] Create a data mocking system (&lt;a href="https://mswjs.io/" rel="noopener noreferrer"&gt;MSW&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[ ] Connect &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;MCP&lt;/a&gt; (&lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;Jira&lt;/a&gt;, &lt;a href="https://github.com/upstash/context7" rel="noopener noreferrer"&gt;Context7&lt;/a&gt;, &lt;a href="https://www.npmjs.com/package/@allpepper/memory-bank-mcp" rel="noopener noreferrer"&gt;Memory Bank&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[ ] Train analyst on &lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;Git&lt;/a&gt; and SQL&lt;/li&gt;
&lt;li&gt;[ ] Choose the right models (&lt;a href="https://www.anthropic.com/claude" rel="noopener noreferrer"&gt;Opus&lt;/a&gt; + &lt;a href="https://deepmind.google/technologies/gemini/" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The battle for context hasn't been won yet. Technologies evolve, context windows grow, but the problem remains.&lt;/p&gt;

&lt;p&gt;Enterprise projects are too large for AI to "see" them in full. This means we need systems that help AI maintain focus. Task trackers, &lt;a href="https://www.npmjs.com/package/@allpepper/memory-bank-mcp" rel="noopener noreferrer"&gt;Memory Bank&lt;/a&gt;, Quality Gates.&lt;/p&gt;

&lt;p&gt;We spent 1.5 billion tokens to understand this. I hope our experience helps you spend less.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🏆 &lt;em&gt;"The battle for context hasn't been won yet. But we know how to fight."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;What's your experience with AI coding in large projects? Share in the comments!&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;
  🔗 Click to expand: All Resources &amp;amp; Links
  &lt;h2&gt;
  
  
  🔗 Resources &amp;amp; Links
&lt;/h2&gt;
&lt;h3&gt;
  
  
  AI Coding Tools
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AI-first code editor with multi-model support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AI pair programmer by GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Anthropic's agentic coding tool&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  AI Models
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.anthropic.com/claude" rel="noopener noreferrer"&gt;Claude Opus 4.5&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Anthropic's most capable model (200K context)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://deepmind.google/technologies/gemini/" rel="noopener noreferrer"&gt;Gemini 3 Flash&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Google's fast model (1M context)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.openai.com/" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;OpenAI's conversational AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  MCP Servers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Server&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Protocol for connecting tools to AI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/@allpepper/memory-bank-mcp" rel="noopener noreferrer"&gt;Memory Bank MCP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Persistent context storage for AI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Figma-MCP-server" rel="noopener noreferrer"&gt;Figma MCP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Design-to-code integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/upstash/context7" rel="noopener noreferrer"&gt;Context7&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Library documentation for AI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/steveyegge/beads" rel="noopener noreferrer"&gt;Beads&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Local atomic task tracking&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Workflow Automation
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://supercode.sh/" rel="noopener noreferrer"&gt;SuperCode&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AI workflow chains, voice input, prompt enhancement&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Quality Gates
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;JavaScript/TypeScript linter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Typed JavaScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://vitest.dev/" rel="noopener noreferrer"&gt;Vitest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Fast unit test framework&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://commitlint.js.org/" rel="noopener noreferrer"&gt;commitlint&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Commit message linter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/secretlint/secretlint" rel="noopener noreferrer"&gt;Secretlint&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Prevent committing secrets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://typicode.github.io/husky/" rel="noopener noreferrer"&gt;Husky&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Git hooks made easy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Mocking &amp;amp; Testing
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://mswjs.io/" rel="noopener noreferrer"&gt;MSW&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mock Service Worker for API mocking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://fakerjs.dev/" rel="noopener noreferrer"&gt;@faker-js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Generate realistic fake data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://playwright.dev/" rel="noopener noreferrer"&gt;Playwright&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;E2E testing automation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://snyk.io/" rel="noopener noreferrer"&gt;Snyk&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Security scanning for dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Project Management
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;Jira&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Team-level task management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://gitlab.com/" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DevOps platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;Git&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Version control system&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Design &amp;amp; Frontend
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.figma.com/" rel="noopener noreferrer"&gt;Figma&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UI/UX design tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UI library&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;JavaScript runtime&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;Software Engineer.&lt;/p&gt;

&lt;p&gt;Tools: &lt;a href="https://cursor.sh/" rel="noopener noreferrer"&gt;Cursor IDE&lt;/a&gt;, &lt;a href="https://www.anthropic.com/claude" rel="noopener noreferrer"&gt;Claude Opus 4.5&lt;/a&gt;, &lt;a href="https://deepmind.google/technologies/gemini/" rel="noopener noreferrer"&gt;Gemini 3 Flash&lt;/a&gt;, &lt;a href="https://supercode.sh/" rel="noopener noreferrer"&gt;SuperCode&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cursor.sh/" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Try Cursor IDE — The AI Code Editor&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;_ #ai #cursor #enterprise #programming #devjournal _&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cursor</category>
      <category>enterprise</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
