The Employment Theater of AI Code Review

3 AM. A senior developer stares at the monitor, eyes red. On screen: a massive diff. The AI generated five hundred lines of code in three seconds. Now our hero is spending half an hour reading every single line — checking brackets, variable names, indentation. In their head: "This is real engineering work."

From the outside — surrealist tragicomedy: the AI spent a moment, the human spent thirty minutes reading the output. Meanwhile, this same developer refused to spend five minutes before running the model to write clear acceptance criteria, boundary conditions, and an automated test that would verify the code in milliseconds.

The pattern is everywhere.

Continue reading “The Employment Theater of AI Code Review”

The core role of people in software development is over

Try getting a development team to consistently write tests before every commit. Not "agree in principle" — actually do it, without reminders. Or document their code. Or have a senior engineer support code three juniors wrote six months ago.

If you've never managed developers, this sounds like a process problem. If you have — you understand why what I'm about to describe doesn't surprise me anymore.


Continue reading “The core role of people in software development is over”

AI Is Not Just a Coder: How AI Covers the Entire Software Development Lifecycle

‘AI is just a very fast intern coder’ is an accurate description of stage one. At stage two, AI becomes an executor of thinking at every step of the SDLC — from clarify dialogs with stakeholders in Jira to multi-agent pipelines that catch, fix, and verify themselves.

"Writing code is only a small part of the SDLC. There's also stakeholder interviews, requirements formulation, architectural design, testing, monitoring. AI is just a very fast coder — not a thinking member of the team."

That argument is right. For stage one.

At stage one, someone watches AI write code and concludes: "AI = coder." Then they notice that coding isn't the whole of software development. "Therefore AI won't replace engineering entirely." The logic holds. The conclusion doesn't.

At stage two, AI covers exactly what that argument says is missing.

Continue reading “AI Is Not Just a Coder: How AI Covers the Entire Software Development Lifecycle”

How we built a hybrid reels pipeline: a real expert plus AI B-roll

The expert films the talking-head himself; the cutaways between his points are AI-generated — faceless video under synthesized speech. The story of how a one-off script grew into a five-stage pipeline, with the gotchas: hypnotic loops, ‘free’ voices that answer 402, and a Seedance that refuses to shoot 3 seconds.

The brief sounded deceptively simple: short vertical clips where a real-estate expert talks to camera, and between his points sit clean AI cutaways — construction sites, transit, a document in close-up, a phone in hand. The face is filmed by a human; the atmosphere is generated by a neural net. What started as a one-off generation script grew into a five-stage pipeline, and along the way we collected nearly every gotcha this kind of build has to offer.

Continue reading “How we built a hybrid reels pipeline: a real expert plus AI B-roll”

AI Job Demand in 2026: What Hiring Signals Show in Job Postings

Hype says “hire AI.” Job descriptions buy something else: production agents with evals and guardrails, Applied AI leadership, partner architecture, evaluation harness as a must-have. Method: read role clusters as an org chart under pressure.

Hype says “hire AI.” Real job descriptions buy people who own production agents, evals, Applied AI, and partner delivery. Below is a method for reading vacancy clusters as an org chart under pressure, plus five role clusters from a parsed corpus of open roles.

Continue reading “AI Job Demand in 2026: What Hiring Signals Show in Job Postings”

How to make eval a release criterion for AI features instead of a demo-grade approval

Demo-grade eval greenlights a feature on the same examples as the pitch. Production then shows the long tail. Three layers — incident-born regression, distribution diff vs the last snapshot, human spot-check — plus one named owner. Minimal harness: github.com/dobryakov/eval-harness.

Treat AI-output quality as a release criterion: a fixed regression set built from past incidents, a distribution diff against the previous release snapshot (20–50 real inputs), a human spot-check before the first production deploy of a new output type — and one person who signs off. Below: the demo-grade anti-pattern, the three-layer method, and a minimal harness that fails CI with a readable exit code.

Continue reading “How to make eval a release criterion for AI features instead of a demo-grade approval”

How to design professional software architecture with AI even if you don’t know the domain

Without a domain substrate, an agent ships FTP and CSV and calls it done. Book-as-context puts a book into the project as a wiki — next to LLM Wiki and book-to-skill — so a short prompt yields outbox, queues, idempotency, and fault tolerance.

Give the agent an authoritative book on the subject as a wiki in the repo — indexed and cross-linked, not a one-off file drop into the chat. Then even a short prompt designs in the source’s terms: queues, delivery guarantees, idempotency, fault tolerance. Below: the book-as-context method, a shop→ERP walkthrough, and the method’s limits.

Continue reading “How to design professional software architecture with AI even if you don’t know the domain”

Why AI skills need onboarding if you can just copy them into the folder

Three skills are fine. Thirty — style drifts, shared state gets overwritten, behavior changes with no stack and no log line. Dropping markdown into `.claude/skills/` is a hire with no interview. Onboarding exists so you catch the conflict before it hits daily flow — not because process looks nice.

Because copying markdown into a folder is not installing a package. It is a hire: a new slice of behavior enters the assistant and will collide with its neighbors tomorrow. A skill here is an instruction pack for an AI assistant (Claude Code / Cursor): frontmatter, rules, declared reads/writes/calls. While the intake path is empty, every new file under .claude/skills/ is a silent hire with no interview and no record in the file.

Continue reading “Why AI skills need onboarding if you can just copy them into the folder”

How to secure an AI coding agent without relying on the system prompt

“Don’t delete prod” in a system prompt is not a security control. The real boundary is where the model physically cannot act: API surface, isolation, operation filter, audit. Working reference: enterprise-code-bastion.

A prompt is a wish. A perimeter is when the model physically cannot reach files or a shell: native tools off, an MCP intermediary, Docker per project+task, a filter before execution, an audit trail. Below is a working reference — and where the design gives way.

Continue reading “How to secure an AI coding agent without relying on the system prompt”

Hide and protect your AWS S3 endpoint (Rails+Nginx example)

It is very simple to use S3 as a storage for your static content in Rails application. Just add paperclip and aws-sdk gems. But what to do if you want to hide the direct links to S3 items, or even restrict access to some files by user’s roles and access rights? Here is a working example: Continue reading “Hide and protect your AWS S3 endpoint (Rails+Nginx example)”