<?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: Nikolai Noskov</title>
    <description>The latest articles on DEV Community by Nikolai Noskov (@okoloboga).</description>
    <link>https://dev.to/okoloboga</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%2F3728074%2F20d7ed27-ac2a-43e0-8c91-ce40abe0110d.jpeg</url>
      <title>DEV Community: Nikolai Noskov</title>
      <link>https://dev.to/okoloboga</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/okoloboga"/>
    <language>en</language>
    <item>
      <title>I Haven't Written Code by Hand for a Year. And I'm Not Going Back.</title>
      <dc:creator>Nikolai Noskov</dc:creator>
      <pubDate>Fri, 06 Feb 2026 16:35:02 +0000</pubDate>
      <link>https://dev.to/okoloboga/i-havent-written-code-by-hand-for-a-year-and-im-not-going-back-1kfp</link>
      <guid>https://dev.to/okoloboga/i-havent-written-code-by-hand-for-a-year-and-im-not-going-back-1kfp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note: This article was originally written in Russian and adapted for international audience. &lt;a href="https://habr.com/ru/articles/985136/" rel="noopener noreferrer"&gt;Original version on Habr&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hey dev.to! I'm a freelance developer from Russia. This is my take on AI-assisted development — not theory, but a year of real production experience.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Freelance developer, 2 years of experience, no CS degree. Grew income 6x in two years using LLM-first development. 100% of my code is now generated by AI. Projects in production, clients happy, team growing. Here's how it actually works — and why most skeptics haven't even tried it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1. Numbers That Won't Convince Anyone
&lt;/h2&gt;

&lt;p&gt;Two years ago I started freelancing at around $400/month. Now — $2,500/month. 6x growth. For context — that's solid money for Russia, roughly equivalent to a senior developer salary in Moscow.&lt;/p&gt;

&lt;p&gt;I don't have a CS degree — just free online courses. Never worked at FAANG (or Yandex, our local equivalent), never wrote compilers, never contributed to major open source projects (though I'm itching to).&lt;/p&gt;

&lt;p&gt;I build Telegram bots, Mini Apps, marketplace seller assistants, RAG systems, business automation. Small to medium projects for SMBs. Not enterprise — I've had a couple enterprise clients approach me, but we couldn't agree on terms. Probably for the best.&lt;/p&gt;

&lt;p&gt;A year ago I stopped writing code by hand. Completely. And I don't recommend my interns do it either.&lt;/p&gt;

&lt;p&gt;At first it was just iterative fixes — letting LLM handle unclear parts. Then I started providing more project context to chat-based models. Then came Cursor, Claude Code, Codex CLI. I wrote about my methodology in detail elsewhere — this post is more about the philosophy.&lt;/p&gt;

&lt;p&gt;There was fear. Not doubt about the approach — actual fear. Like being afraid to forget how to walk. But it turned out — you need to stop walking to learn how to fly.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Concrete Cases
&lt;/h2&gt;

&lt;p&gt;Let me be specific:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Marketplace Seller Assistant — $4,500.&lt;/strong&gt; Bot that handles inventory, sales tracking, and reviews for Wildberries (think Russian Amazon). Sends notifications for new orders, pickups, cancellations, returns. Tracks critical stock levels relative to sales dynamics. Filters review notifications by star rating. Includes warehouse statistics, GPT-powered analytics with graphs over custom time windows. Competitor parsing, semantic core extraction from product descriptions for SEO. And the cherry on top — RAG for database queries via Postgres vectorization.&lt;/p&gt;

&lt;p&gt;This isn't a landing page. It's an inventory management system with analytics, integrations, and AI features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtual Try-On Bot — $1,300.&lt;/strong&gt; Bot accesses product catalog with photos. User uploads their photo, GPT validates it, then we use an AI try-on service to show the product on them. User gets direct marketplace links plus size recommendations based on their measurements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Online Backgammon in Telegram Mini App — $4,000.&lt;/strong&gt; With betting in TON cryptocurrency via smart contracts — escrow contract that holds the bet pool and sends winnings to the winner minus platform commission. Yes, the kind of project where "boldness and madness win," as one commenter put it.&lt;/p&gt;

&lt;p&gt;Prototypes for each stage — often with mocks — delivered in 1-2 weeks. Not months.&lt;/p&gt;

&lt;p&gt;These are projects from the last 3 months. 100% of the code generated by LLM. All in production. Clients satisfied. Ongoing maintenance and expansion.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Honest About Failures
&lt;/h2&gt;

&lt;p&gt;There was one serious failure that affected production. But the problem wasn't LLM — it was process.&lt;/p&gt;

&lt;p&gt;Client showed me requirements — I quoted $5,000. Too expensive, they said. Can we do cheaper? So I cut everything to a narrow MVP (removed smart contracts, monitoring, switched backend from Go to TypeScript, bunch of other stuff). New price: $1,800.&lt;/p&gt;

&lt;p&gt;I didn't set clear boundaries in the spec. Client started requesting things not mentioned initially. I kept agreeing — yeah, I was being an idiot. We lost context, documentation became outdated because we started building new features on top of an unfinished core. The core itself started falling apart and was hard to restore.&lt;/p&gt;

&lt;p&gt;My mistake — agreeing without setting boundaries. Explained to the client that we shouldn't deviate from the spec like that. Resolved it, learned my lesson.&lt;/p&gt;

&lt;p&gt;There were also cases where I missed deadlines due to wrong instructions for the AI. For example, not specifying in documentation that we strictly don't touch old code — only add new. Without this constraint, old logic started breaking, error cycles began.&lt;/p&gt;

&lt;p&gt;Key insight: don't let AI constantly fix its own errors. You need to inject new context yourself, test hypotheses. That's the difference — a non-developer can't even guess where the bug is buried.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. What Skeptics Say
&lt;/h2&gt;

&lt;p&gt;Under my posts and in comments on other LLM-development articles — same arguments every time. Let me address specific quotes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Not checking code after LLM — that's bold. No documentation will save you from hallucinations"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hallucinations exist. Bugs exist. And humans don't have bugs? The difference is I spend 10% of time on code generation and 90% on testing and debugging. Those 10% used to be not hours, but weeks. Documentation isn't protection from bugs — it's a way to maintain context and avoid loops. Without it, LLM starts circling through the same digested swamp.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Obviously these are projects where error cost is negligible. Better not vibe-code an inventory management system"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But we do build inventory management systems via LLM — with statistics, analytics, RAG. Everything works. Question for the skeptic: have you tried building such projects with LLM yourself? From actual experience?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"I would never trust LLM with a critical project. Errors can surface from unexpected angles. The owner will suffer serious losses"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've been running on this scheme for a year. There were complaints — but all resolved quickly. Within normal development error range. In terms of time and financial output — I see only positives. But I won't forget the warnings.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"If you're carefully checking the code — you spend more time than writing it yourself. You'll be slower than an experienced programmer"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not true. I had experience with manual development, completed many projects and smoothly transitioned to LLM. By all metrics — time and financial output — I see only positives. Bot in 3 hours instead of 3-4 days. Landing page with backend in 3 hours instead of a week. This isn't theory — it's my reality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"When the team has no awareness of the codebase, all decisions are 'fix it now', and there's no architecture in sight — things will go south"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agreed. That's exactly why AI-driven doesn't mean without humans. Engineer is essential. LLM won't replace architectural understanding. But it will become the primary tool. Look at the dynamics: in 2023-24 I couldn't even imagine things like Cursor and Claude Code. What will exist in another two years?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"This won't last. We'll forget how to write code quickly by hand"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What does "won't last" mean? What's the practical point of coding by hand? It's slower for clients — they value speed, that's the main competitive advantage. They're willing to pay more for that speed.&lt;/p&gt;

&lt;p&gt;At first I was tormented by thoughts that this is wrong, that I'll forget how to read and write code. But then I realized: it's analogous to how wooden abacuses were replaced by calculators, and calculators by Excel. This is progress. Resisting it costs you — in every sense.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. About Interns
&lt;/h2&gt;

&lt;p&gt;I hire beginners with minimal experience — primarily because their minds aren't cluttered with patterns, no rigid frameworks. People for whom this isn't their main activity — I can't yet afford to pay them full salaries. We agree on terms where they spend no more than 8 hours per week.&lt;/p&gt;

&lt;p&gt;I get on calls and show them specifically on my project examples, on concrete tasks — live — how to manage AI. Then I give them real tasks. Always real, never toy projects. I get results, review, identify errors — and explain how to avoid them. Again, using LLM.&lt;/p&gt;

&lt;p&gt;Two months is enough for people to become independent. So I don't spend much attention on them anymore. ROI is excellent.&lt;/p&gt;

&lt;p&gt;One intern initially denied using LLM, was embarrassed about it. But when I showed how to work with documentation and tests — things took off. Now thinks like an engineer and architect, not a code-typing machine.&lt;/p&gt;

&lt;p&gt;I have a student intern studying CS — they aggressively tell them in university that code must be written strictly by hand, that any projects suspected of generation will be rejected. So at first she also hid this fact, wrote slowly — until I clearly said: LLM only.&lt;/p&gt;

&lt;p&gt;Now my intern builds a landing page with backend integration in 3 hours. I just explained the methodology. Used to be a week of work. She has free time for studies and even side freelance projects — how she works elsewhere is her business, but on our projects everything goes through AI.&lt;/p&gt;

&lt;p&gt;When needed — I pay for interns' Cursor subscriptions, or CLI tools — Codex or Claude Code + show them how to set up Gemini CLI for free. I personally run on Claude Code, sometimes add Codex — that's enough.&lt;/p&gt;

&lt;p&gt;Interesting observation: monthly LLM spending correlates with income. I spend no more than 2 subscriptions per month.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. About Fear and Comfort Zone
&lt;/h2&gt;

&lt;p&gt;Here's what really interests me: why do people with 10-15 years of experience, who've seen technology changes, frameworks, paradigms — suddenly dig in right here?&lt;/p&gt;

&lt;p&gt;Simple answer: fear.&lt;/p&gt;

&lt;p&gt;Not fear of technology. Fear that skills will depreciate — that years spent honing syntax, patterns, algorithms — will turn out not so important. That some guy without a degree from free online courses will do the same thing faster.&lt;/p&gt;

&lt;p&gt;It's uncomfortable and painful. I understand. But it's not a reason to deny reality. Those who do everything through LLM will only grow in numbers.&lt;/p&gt;

&lt;p&gt;I read comments: "yeah, probably cool, but I won't risk it on my projects." Or "too expensive." Or "let's wait until the technology matures." Or just "watching with curiosity, eating popcorn" (these are all real quotes from Russian dev community).&lt;/p&gt;

&lt;p&gt;This isn't risk analysis. It's fear rationalization. Armchair analytics from those who haven't tried but already know it won't work.&lt;/p&gt;

&lt;p&gt;I had no choice. No degree, no connections, no safety net of a salary. I just had to do it. Take it and do it — and it worked.&lt;/p&gt;

&lt;p&gt;People develop linearly. One year of experience, two years, ten years. Gradually, predictably, on track. For example — setting a goal to read 1 more book per month than last, increase income by $500 per year — these are examples of linear development. The thing is, linear development hits physical limits — that's when it's time to change approaches, systems — need to increase not quantity, but quality.&lt;/p&gt;

&lt;p&gt;The world develops exponentially. Three years ago ChatGPT wrote one-line Python functions. Two years ago — edited large files and found bugs. Now — Claude Code, Cursor, Codex. Entire systems in hours.&lt;/p&gt;

&lt;p&gt;Think about this dynamic. Three years. Not thirty, not ten. Three.&lt;/p&gt;

&lt;p&gt;Programmers used to be the ones driving this exponential growth. People created technologies that changed the world. Now a technology has appeared that we risk falling behind. It's not a threat — it's a paradigm shift.&lt;/p&gt;

&lt;p&gt;A person developing linearly in an exponential world — degrades relative to that world. Not because they're stupid. The world just accelerates faster than they can keep up.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. What Remains for the Engineer
&lt;/h2&gt;

&lt;p&gt;Important point, so there are no illusions.&lt;/p&gt;

&lt;p&gt;LLM doesn't replace understanding. You need to know what client-server architecture is. What HTTP requests are. How databases work. What microservices are. Why one solution is better than another. Without this — no Claude will help you. It's an amplifier, not a replacement. An army of juniors that needs an architect.&lt;/p&gt;

&lt;p&gt;Expertise hasn't gone anywhere. It's shifted. Now the main skill is context management, documentation, design. Ability to hold the whole system in your head and decompose it into manageable pieces.&lt;/p&gt;

&lt;p&gt;Honestly — this is harder than writing code by hand.&lt;/p&gt;

&lt;p&gt;Seriously. Requires constant concentration, control, understanding what's happening under the hood. Not giving in to the temptation to let error resolution run on autopilot, not specifying clear constraints for a specific project. As my friend says — "head like a house of advisors." This becomes the main requirement.&lt;/p&gt;

&lt;p&gt;AI-driven doesn't mean "without human." Engineer is essential. LLM just becomes the primary tool. Paradigm shift of tools — not singularity.&lt;/p&gt;

&lt;p&gt;There won't be magic wands. There won't be AGI that does everything for you (not in the near future anyway). But there will be a tool that's already necessary to master — because it's the primary tool of an already-arrived future.&lt;/p&gt;

&lt;p&gt;Last year the question wasn't this urgent. Now — it is.&lt;/p&gt;

&lt;p&gt;Don't get on this train now — you're already late. You can sit in comments and explain why it won't work. Eat popcorn and watch. Or you can try.&lt;/p&gt;

&lt;p&gt;I'm not evangelizing. Not selling courses. Not saying my path is the only one.&lt;/p&gt;

&lt;p&gt;I just do. Show results. Write about it.&lt;/p&gt;

&lt;p&gt;The world doesn't wait. It never did.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're interested in my methodology — I wrote in detail about documentation, TDD, and context management. Happy to share in comments.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ready for tomatoes. As practice shows — it only adds views.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Feel free to ask questions — I'll answer what I can about working from Russia, LLM tools availability, or anything else.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>development</category>
      <category>freelance</category>
    </item>
    <item>
      <title>I Don't Write Code Anymore. My Income Tripled. Here's the System Behind It.</title>
      <dc:creator>Nikolai Noskov</dc:creator>
      <pubDate>Fri, 23 Jan 2026 10:22:10 +0000</pubDate>
      <link>https://dev.to/okoloboga/i-dont-write-code-anymore-my-income-tripled-heres-the-system-behind-it-bkh</link>
      <guid>https://dev.to/okoloboga/i-dont-write-code-anymore-my-income-tripled-heres-the-system-behind-it-bkh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This article was originally written in Russian and adapted for international audience. &lt;a href="https://habr.com/ru/articles/971496/" rel="noopener noreferrer"&gt;Original version on Habr&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let me start with something that might get me roasted: &lt;strong&gt;I don't read code. I don't write it either&lt;/strong&gt;, except for occasional debug logs. Everything I ship is generated by LLMs.&lt;/p&gt;

&lt;p&gt;Before you close this tab, hear me out. This isn't another "AI will replace developers" hot take. It's the opposite, actually.&lt;/p&gt;

&lt;p&gt;Over the last six months, my income nearly tripled. I brought on two junior developers. I'm handling bigger projects than ever. And paradoxically, I'm doing &lt;em&gt;more&lt;/em&gt; engineering work than before, not less.&lt;/p&gt;

&lt;p&gt;People keep calling this "vibe coding." I hate that term. What I do requires more discipline, more architectural thinking, and more systematic rigor than when I wrote every line myself.&lt;/p&gt;

&lt;p&gt;Let me show you the system.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick background
&lt;/h2&gt;

&lt;p&gt;I'm a freelance developer, 2 years in. Mostly Telegram bots and mini-apps, sometimes landing pages, smart contracts, or pentests. I work through freelance platforms, think Upwork/Fiverr equivalents.&lt;/p&gt;

&lt;p&gt;Six months ago, I went all-in on LLM-assisted development. Not as an experiment. As my entire workflow.&lt;/p&gt;

&lt;p&gt;Here's what happened:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Income: ~3x growth&lt;/li&gt;
&lt;li&gt;Team: Found 2 junior devs who now work the same way&lt;/li&gt;
&lt;li&gt;Project size: Went from small gigs to multi-month enterprise projects&lt;/li&gt;
&lt;li&gt;Client satisfaction: Not a single complaint about quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But getting here wasn't straightforward. I burned through a lot of failed approaches first.&lt;/p&gt;




&lt;h2&gt;
  
  
  The evolution: why chat-based AI didn't scale
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: The naive approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Like everyone else, I started using ChatGPT for isolated tasks. Generate a function here, debug an error there. It worked... for small stuff.&lt;/p&gt;

&lt;p&gt;As projects grew, this fell apart fast. I was constantly copy-pasting context, reminding the AI what files existed, re-explaining project structure. It was like having a brilliant colleague with amnesia who needed everything re-explained every 10 minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2: Cursor, better but still broken&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Switching to Cursor (AI-native IDE) solved the context problem. The AI could see my files. Great.&lt;/p&gt;

&lt;p&gt;New problem: project structure started drifting. The AI would fix one thing and break another. Old bugs came back. Without explicit guidance, the codebase slowly turned into spaghetti.&lt;/p&gt;

&lt;p&gt;That's when it clicked: &lt;strong&gt;the AI needed constraints. It needed a source of truth that wasn't the code itself.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The system: documentation as foundation
&lt;/h2&gt;

&lt;p&gt;Here's the insight that changed everything: &lt;strong&gt;documentation isn't just for humans anymore. It's the primary interface between you and the AI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I now create three layers of documentation for every project:&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%2F9a39of6fhfqc0p0ma0qx.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%2F9a39of6fhfqc0p0ma0qx.png" alt=" " width="517" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1: Client-facing specs
&lt;/h3&gt;

&lt;p&gt;Stages broken down by what the client can actually &lt;em&gt;see and touch&lt;/em&gt;. Not "backend first, frontend second", clients can't evaluate a backend. Instead: "User authentication flow," "Dashboard with live data," "Export feature."&lt;/p&gt;

&lt;p&gt;Each stage has a price and timeline. Transparent. Clients love it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 2: Technical specs
&lt;/h3&gt;

&lt;p&gt;Architecture decisions, data flows, integration points. Written in plain language, &lt;strong&gt;no code examples&lt;/strong&gt;. This matters.&lt;/p&gt;

&lt;p&gt;Why no code? Because code will change constantly. If your documentation contains code snippets, it becomes outdated the moment the AI adapts something. You end up with conflicting sources of truth.&lt;/p&gt;

&lt;p&gt;Everything described in words. If I can't explain it without code, I don't understand it well enough.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3: Stage-specific deep dives
&lt;/h3&gt;

&lt;p&gt;For each stage, I create ~4 documents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stage objectives and mechanics&lt;/li&gt;
&lt;li&gt;Error log (more on this later)&lt;/li&gt;
&lt;li&gt;API documentation (external services we're hitting)&lt;/li&gt;
&lt;li&gt;Data structures and sources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For a 2-month project with 5 stages, I end up with ~20 markdown files.&lt;/strong&gt; Sounds like overkill? It's not. This is what keeps the AI, and my own memory, on track.&lt;/p&gt;

&lt;p&gt;Here's what a component checklist looks like in practice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Implemented Components&lt;/span&gt;

&lt;span class="gu"&gt;### Backend:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`Cabinet`&lt;/span&gt; model with &lt;span class="sb"&gt;`spreadsheet_id`&lt;/span&gt; field
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`ExportService`&lt;/span&gt; with table update methods
&lt;span class="p"&gt;-&lt;/span&gt; API endpoints for saving and updating
&lt;span class="p"&gt;-&lt;/span&gt; Celery tasks for automatic export
&lt;span class="p"&gt;-&lt;/span&gt; Google Sheets API integration

&lt;span class="gu"&gt;### Bot:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; "Export to Google Sheets" button in main menu
&lt;span class="p"&gt;-&lt;/span&gt; Table binding handler
&lt;span class="p"&gt;-&lt;/span&gt; FSM states for workflow
&lt;span class="p"&gt;-&lt;/span&gt; Manual table updates
&lt;span class="p"&gt;-&lt;/span&gt; User instructions

&lt;span class="gu"&gt;### Infrastructure:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Celery Beat for scheduled runs
&lt;span class="p"&gt;-&lt;/span&gt; Service Account configured
&lt;span class="p"&gt;-&lt;/span&gt; Environment variables set
&lt;span class="p"&gt;-&lt;/span&gt; Logging for all operations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI references this constantly. When it drifts, I point it back here.&lt;/p&gt;




&lt;h2&gt;
  
  
  The secret weapon: error documentation
&lt;/h2&gt;

&lt;p&gt;This one technique probably saved me dozens of hours.&lt;/p&gt;

&lt;p&gt;When a bug doesn't resolve in 2-3 iterations, and I see the AI starting to loop, trying the same fixes, going in circles, I stop and create an &lt;strong&gt;error document&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Bug: Export fails silently on large datasets&lt;/span&gt;

&lt;span class="gu"&gt;### Known facts:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Works fine for &amp;lt;1000 rows
&lt;span class="p"&gt;-&lt;/span&gt; Fails without error message for &amp;gt;5000 rows
&lt;span class="p"&gt;-&lt;/span&gt; Memory usage spikes before failure

&lt;span class="gu"&gt;### Attempted solutions:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Increased timeout (no effect)
&lt;span class="p"&gt;-&lt;/span&gt; Batch processing with 500-row chunks (partial fix, still fails at 8000+)
&lt;span class="p"&gt;-&lt;/span&gt; Streaming approach (testing now)

&lt;span class="gu"&gt;### Hypotheses:&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Memory limit on serverless function?
&lt;span class="p"&gt;-&lt;/span&gt; Google Sheets API rate limiting?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This document becomes the reference point. The AI won't suggest already-failed solutions because they're documented. I won't forget what we tried. The loop breaks.&lt;/p&gt;

&lt;p&gt;I keep these even after fixing the bug. They save time on future projects with similar issues.&lt;/p&gt;




&lt;h2&gt;
  
  
  TDD: your safety net when you don't read code
&lt;/h2&gt;

&lt;p&gt;Here's my time breakdown on a typical project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5-10% actual code generation (AI does this fast, but it's always buggy)&lt;/li&gt;
&lt;li&gt;25% writing documentation&lt;/li&gt;
&lt;li&gt;15% writing tests&lt;/li&gt;
&lt;li&gt;50% fixing errors, manual testing, client feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice something? &lt;strong&gt;Tests are the second source of truth&lt;/strong&gt;, alongside documentation.&lt;/p&gt;

&lt;p&gt;Documentation describes &lt;em&gt;what should happen&lt;/em&gt;. Tests verify &lt;em&gt;what actually happens&lt;/em&gt;. When these two align, I have confidence the code works, even though I haven't read it line by line.&lt;/p&gt;

&lt;p&gt;TDD isn't new. But with LLMs, it becomes necessary. You're not reviewing every line of code. Tests catch what your eyes don't.&lt;/p&gt;




&lt;h2&gt;
  
  
  Context management: the art of fresh starts
&lt;/h2&gt;

&lt;p&gt;LLMs degrade over long conversations. They start hallucinating, forgetting earlier decisions, contradicting themselves. You've seen this.&lt;/p&gt;

&lt;p&gt;My solution: &lt;strong&gt;aggressive context compartmentalization&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New stage = new chat/agent&lt;/li&gt;
&lt;li&gt;New feature within a stage = new chat&lt;/li&gt;
&lt;li&gt;New bug = new chat&lt;/li&gt;
&lt;li&gt;Architecture decisions = dedicated "architect" chat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Creating new chats is painless when you have documentation. Just feed the relevant .md files to a fresh agent, and it's up to speed in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The loop-breaking technique:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When an AI gets stuck in a loop, it's usually because it's churning through the same context over and over. The fix isn't better prompting, it's &lt;strong&gt;injecting new context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google the problem, paste in a StackOverflow answer or docs page&lt;/li&gt;
&lt;li&gt;Ask a &lt;em&gt;different&lt;/em&gt; LLM for suggestions, then feed those to your main chat&lt;/li&gt;
&lt;li&gt;Throw in a wild hypothesis, even if it's wrong, it can shake loose new thinking&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The more atomic your work units, the less this happens. Small, focused tasks = fewer catastrophic loops.&lt;/p&gt;




&lt;h2&gt;
  
  
  My current toolstack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;For documentation and planning:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatGPT, Claude, Grok, I use whatever's available&lt;/li&gt;
&lt;li&gt;Long conversations to hash out specs before touching code&lt;/li&gt;
&lt;li&gt;Output: .md files that become project foundation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For implementation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code (current favorite), works well in terminal, renewable limits&lt;/li&gt;
&lt;li&gt;Cursor + Gemini CLI, Gemini is free but loops more often; sometimes it just... gives up mid-task&lt;/li&gt;
&lt;li&gt;Cursor with Claude Sonnet for complex stuff, auto-select for simple tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hot take on LLM spending:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you know how to work with LLMs effectively, don't cheap out. My rough numbers: 80% increase in LLM costs led to 60% increase in income. Other factors contributed, sure, but the correlation is real.&lt;/p&gt;

&lt;p&gt;Good tools pay for themselves fast.&lt;/p&gt;




&lt;h2&gt;
  
  
  What still sucks
&lt;/h2&gt;

&lt;p&gt;Let's be honest about the limitations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart contracts, especially TON:&lt;/strong&gt; LLMs struggle hard here. Not enough training data, too many edge cases. I still have to dig through documentation manually and find examples myself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript vs Python:&lt;/strong&gt; Models are noticeably weaker with TypeScript. More hallucinated types, more incorrect generics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 1-in-5 problem:&lt;/strong&gt; About 20% of my projects hit these rough spots. They all reach release eventually, but some require significantly more manual intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My workarounds:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep documentation from old projects, reuse solutions that worked&lt;/li&gt;
&lt;li&gt;Maintain a personal library of code patterns for tricky areas&lt;/li&gt;
&lt;li&gt;Know when to stop fighting the AI and just write the code yourself&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The team angle
&lt;/h2&gt;

&lt;p&gt;I found two juniors who now work this way. One is still ramping up. The other has been with me for three months and it's working great.&lt;/p&gt;

&lt;p&gt;Funny thing: at first he was embarrassed about using LLMs. Felt like "cheating." Then I showed him the documentation system, the testing discipline, the context management. He realized this isn't easier, it's just &lt;em&gt;different&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now he thinks like an engineer and architect, not a code typist. That's the shift.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What clients think:&lt;/strong&gt; Not once has a client asked if I use AI. I don't hide it, but they don't care. They care that the product works, it's delivered on time, and the quality is solid. All true.&lt;/p&gt;




&lt;h2&gt;
  
  
  The real skill: engineering hasn't gone anywhere
&lt;/h2&gt;

&lt;p&gt;Let me be clear: &lt;strong&gt;this methodology doesn't work if you don't understand development.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You still need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How databases actually work&lt;/li&gt;
&lt;li&gt;How requests flow through a system&lt;/li&gt;
&lt;li&gt;Why one architecture is better than another for a specific use case&lt;/li&gt;
&lt;li&gt;What trade-offs you're making&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LLMs don't replace this knowledge. They &lt;em&gt;leverage&lt;/em&gt; it. The AI is an amplifier, if you feed it garbage thinking, you get garbage code at scale.&lt;/p&gt;

&lt;p&gt;The difference? I'm no longer a human compiler, translating logic into syntax. I'm a full-time architect who happens to have a very fast (and somewhat unreliable) junior dev typing for me.&lt;/p&gt;

&lt;p&gt;If you don't understand what's happening under the hood, no amount of documentation or Claude subscription will save you. The system works because there's an engineer behind it.&lt;/p&gt;




&lt;h2&gt;
  
  
  So why isn't this "vibe coding"?
&lt;/h2&gt;

&lt;p&gt;"Vibe coding" implies casual, low-effort, go-with-the-flow development. Vibes.&lt;/p&gt;

&lt;p&gt;What I actually do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintain 20+ documentation files per project&lt;/li&gt;
&lt;li&gt;Write tests for code I haven't read&lt;/li&gt;
&lt;li&gt;Constantly manage and reset AI context&lt;/li&gt;
&lt;li&gt;Architect systems at a higher level than ever before&lt;/li&gt;
&lt;li&gt;Debug through systematic elimination, not intuition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This requires &lt;em&gt;more&lt;/em&gt; concentration than traditional coding, not less. The mental overhead of keeping documentation accurate, asking the right questions, catching AI drift before it compounds, it's exhausting in a different way.&lt;/p&gt;

&lt;p&gt;You know what actual vibe coding is for me now? When I have free time, no deadlines, and I just... write code. By hand. For fun. Feel the keystrokes. Watch the logic flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's become the luxury.&lt;/strong&gt; The meditative escape from real work.&lt;/p&gt;

&lt;p&gt;Traditional coding went from "the job" to "the hobby."&lt;/p&gt;

&lt;p&gt;I'm not sure how to feel about that yet.&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Documentation is your contract with the AI, no code examples, just clear descriptions of logic and architecture&lt;/li&gt;
&lt;li&gt;TDD isn't optional, tests are your eyes when you're not reading code&lt;/li&gt;
&lt;li&gt;Compartmentalize aggressively, new task = new chat, feed it relevant docs&lt;/li&gt;
&lt;li&gt;Document your errors, break loops by creating a reference point for failed solutions&lt;/li&gt;
&lt;li&gt;You need engineering fundamentals, AI amplifies competence, including incompetence&lt;/li&gt;
&lt;li&gt;Invest in good tools, if you're effective with LLMs, premium subscriptions pay for themselves&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Let's connect
&lt;/h2&gt;

&lt;p&gt;I write more about LLM-assisted development and building a freelance dev business on my Telegram channel: &lt;a href="https://t.me/post_devcore" rel="noopener noreferrer"&gt;@post_devcore&lt;/a&gt; (content is in Russian, but I'm considering English posts too).&lt;/p&gt;

&lt;p&gt;What's your experience with AI-assisted development? Have you found workflows that actually scale, or is it still chaos? Drop a comment, I'm genuinely curious how others are handling this.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;First time posting on dev.to, feedback on the article itself is also welcome!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
      <category>career</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
