Blog: How AI Cut 40% Off Development Time in a 1M+ Line Video Streaming Platform

Key takeaways

30–40% acceleration is real, repeatable, and measured on a 1M+ line production system. On VALT — a 12-year-old browser-based video surveillance platform with 200K lines of custom code, 50K+ active users and 770+ US sites — AI-augmented engineering compressed feature, bug and review cycles by roughly a third, without rewriting the codebase or changing the team.

The leverage is in cognitive overhead, not typing. In mature systems, code is the cheap part. Tracing dependencies, understanding permission flows, and verifying side-effects consume 60–70% of task time. AI compresses that orientation phase from minutes to seconds.

AI does not fix architectural chaos — it amplifies what is already there. Clean structure, code reviews, and refactoring discipline are preconditions. Drop AI into a tangled monorepo with no tests and you will get fluent suggestions that quietly break things.

Bug investigation, context exploration and code review compound the most. Adding a new device type to VALT used to take ~50 minutes (30 min orientation + 20 min implementation). With AI, the same task lands in ~15 minutes — a 70% reduction. Repeated 200 times a sprint, those minutes become weeks.

Every generated line still gets read. AI does not remove accountability. Architectural decisions, security boundaries and performance trade-offs remain human calls. The principle: AI generates options, engineers make decisions.

Why Fora Soft wrote this case study

Most "AI in software development" content is either vendor marketing or a Twitter thread about a 200-line side project. Neither survives contact with a real production system. Fora Soft has been shipping real-time video and AI products for 21 years and 625+ shipped products, and we have used AI inside long-running engineering teams for the last two and a half years — on systems with regulators, paying customers and SLAs.

This piece is the report we wish we had had in 2023, when every "AI cuts development time by 50%" claim came with neither a system description nor a baseline. We pick one platform — VALT, a video surveillance product running across 770+ US installations — describe its scale, the engineering culture around it, the workflows we changed, and the actual measurements. The numbers (30–40% acceleration overall, 70% on isolated context-bound tasks) come from running the team with and without AI assistance over comparable sprints.

If you lead a complex, mature product and you are deciding whether to invest in AI-augmented engineering, this is the honest version. We will tell you where it works, where it does not, and what preconditions you need in your codebase before AI can earn back the cost of a Cursor or Claude Code seat.

Want a 30–40% velocity lift on your platform?

Bring your codebase’s rough shape, your team size, and your current sprint pain. We will tell you where AI Engineering will move the needle and where it will not.

Book a 30-min call → WhatsApp → Email us →

The system: 12 years in production

VALT is a browser-based video observation and recording platform used by training labs, universities, behavioral health programs, simulation centers and law-enforcement agencies. Operators run live observation sessions with up to 50 HD IP cameras per site, review clips with annotations, share recordings with stakeholders, and manage retention and access policies through the same browser session. Today it serves more than 50,000 active users across 770+ US installations.

The codebase has grown to roughly 200,000 lines of custom code inside a 1M+ line repository (vendor SDKs, third-party libraries and generated code included). The stack is TypeScript and Vue.js on the frontend, PHP with Symfony on the backend, Wowza Streaming Engine (Java) for the video pipeline. RabbitMQ for events, PostgreSQL for application data, S3-compatible storage for recordings.

This is not an early-stage product. It has paying customers, scheduled maintenance windows, regulators in the room, and the kind of accumulated context that lives in senior engineers’ heads more than in documentation. It also has — and this is the part that matters — a culture of clean architecture, code review, and routine refactoring that long predates AI.

That cultural baseline is the precondition for the gains we are about to describe. AI did not fix VALT. The team had already done that. AI compressed the time it takes to do clean engineering on a complex system.

Reach for AI Engineering when: your codebase has consistent module boundaries, code review is enforced, tests exist for critical paths, and senior engineers can review generated diffs in minutes. Without those preconditions, AI accelerates the wrong things.

Where development time was actually going

In a system with 200K lines of custom code and twelve years of decisions, writing code is rarely the slow part. We instrumented sprint time before the AI rollout and found a consistent breakdown across feature, bug and refactor work:

Activity % of sprint time (pre-AI) What it actually meant
Context exploration ~28% Tracing dependencies, reading neighboring modules, understanding flow before changing anything
Bug investigation ~22% Reproducing, narrowing, finding the broken seam — not writing the fix
Code review ~18% Mentally simulating logic, edge-case checks, architecture verification
Writing code ~17% Actually typing implementation
Tests & QA hand-off ~10% Writing or updating tests, validating regressions
Documentation & communication ~5% Tickets, technical notes, async hand-offs

Note where the time goes. Writing code is the smallest pure-craft slice. Everything above it is cognitive: load the system into your head, find the right seam, predict the side effects. That is precisely where AI Engineering creates leverage — the cognitive layers compress, and the writing layer stays roughly constant.

How AI was integrated into the workflow

AI was not a one-off pilot. It became a daily tool, integrated through editor-side coding agents (Cursor and Claude Code) and CI-side review bots. The core stack of habits we standardized on:

1. Bug investigation as the entry point. A clear ticket description plus codebase access is enough. The AI traces the suspected flow, narrows the broken seam, and proposes a fix to verify. Engineers do not blindly accept — they read the diff and the surrounding code path. The win is the time saved on the search.

2. Implementation against well-defined tickets. “Add device type X with permissions Y, register it in module Z, expose it in admin UI.” AI drafts the change set across files, including refactoring opportunities it surfaces along the way. The engineer’s job becomes review and pruning rather than search and orientation.

3. Code review augmentation. AI gives a first analytical pass on every PR before human review. Surface edge cases, flag architectural mismatches, suggest tests. Reviewers still own the merge decision; they just walk in with more signal.

4. Documentation on demand. Generate or refresh module docstrings, README sections, and onboarding notes from the actual current code. The team treats this as a continuous activity rather than a quarterly chore.

5. Refactoring exploration. Before committing to a structural change, ask AI to map the blast radius. The answer is rarely complete, but it surfaces enough non-obvious dependencies to make the “is this worth it” conversation faster and cheaper.

A concrete example: the Quick Clip permission bug

A real ticket from VALT: “Duration Markers show Quick Clip button to users without Clip Right. Expected: user does not see the button. Actual: user sees it and gets 403 unauthorized when clicking.” In a system with multiple permission layers (role, license, feature flag, per-recording ACL) this would historically have been an hour-plus of tracing. The classic flow: open the relevant Vue component, follow the prop chain, jump to the permission resolver, find the missing condition, write the fix.

With the AI agent inside the IDE, the loop looked different: the ticket text plus “find where Quick Clip visibility is decided and tell me which permission check is missing” produced a focused short-list of three files in under 60 seconds. The actual missing check was a single conditional in the visibility predicate, two files deep. End-to-end fix time, including manual verification and writing a regression test, was under 25 minutes.

This is the unsexy version of AI productivity. It is not a model writing thousands of lines. It is a model collapsing the “where do I look” phase from 30–40 minutes to 1 minute. Repeat that across every bug ticket of the quarter, and the cumulative effect is the headline number.

Measured improvements, by activity

We measured per-activity speed across two comparable quarters — same team composition, similar ticket mix, only AI tooling different. The pattern was consistent across multiple engineers and ticket categories.

Activity Pre-AI baseline With AI Reduction
Context exploration on a known module ~30 min ~5 min ~83%
Bug root-cause analysis (mid-complexity) ~60 min ~20 min ~67%
Adding a new device type (full feature) ~50 min ~15 min ~70%
Code review (mid-size PR) ~25 min ~15 min ~40%
Cross-layer feature (Vue + Symfony + Wowza) ~3–5 days ~2–3 days ~30–40%
Pure greenfield typing baseline ~10–15% faster marginal

The shape of the gain is the interesting part. AI helps least where engineers are typing pure new code on a clean canvas (because the bottleneck there really is keyboard speed). It helps most on context-bound work in mature systems — which is where most professional engineering time actually lives.

Reach for AI Engineering hardest when: your codebase is >100K lines, has 5+ years of history, has at least adequate test coverage on critical paths, and your bottleneck is “where do I look and what does this affect” rather than “what should I type.”

What did not change

A short and important section. AI did not eliminate engineering responsibility on VALT, and pretending otherwise is the fastest way to ship a regression to 50,000 users.

Architectural decisions. AI is comfortable proposing solutions that fit syntactically but conflict with project conventions, deployment topology, or multi-tenant boundaries. Senior engineers still own the design.

Security and authorization. Permission flows in VALT touch role, license, feature-flag and per-recording ACL layers. AI is helpful for finding existing checks; it is dangerous when asked to invent new ones. Every authorization-touching diff is human-reviewed line by line.

Performance work. Identifying that a query is slow is one thing. Choosing whether the right answer is an index, a denormalization, a cache layer, a different storage engine or a workflow change requires context the model does not have. AI surfaces options; engineers measure and choose.

Cross-layer business rules. The deepest features (recording lifecycles tied to retention policy, license-aware streaming, multi-site failover) require iterative prompting and significant human shaping. AI gives direction; humans deliver production-ready code.

Legacy code: AI as the cheap onboarding

One subtle but compounding gain: AI dramatically reduces the psychological friction of touching old, unfamiliar parts of the codebase. Instead of reading a 1,200-line PHP class to build a mental model, engineers ask the agent to summarize interactions and call sites, then verify on the source.

This is not new behavior — senior engineers have always built mental models before changing things — but it used to be expensive enough that teams avoided unfamiliar code when they could. The avoidance is itself a tax: it pushes work to the engineers who already know the area, creates single points of knowledge, and makes refactoring scarier than it should be.

Refactoring on VALT was already a routine practice before AI. What changed is the speed of the exploration phase. Risk is assessed faster. Dead ends are identified earlier. The threshold of “is this refactor worth it” tilted favourably, and the team takes on more housekeeping than it used to.

Reach for AI on legacy code when: the engineer about to touch unfamiliar territory is not the original author, the module is >500 lines, and you need a mental model in minutes, not days. Verify on the source — AI is the index, not the truth.

Sitting on a 200K+ line codebase that is slowing you down?

We will spend 30 minutes mapping where AI Engineering would compress your sprint — and where it would not. No slides, no pitch.

Book a 30-min review → WhatsApp → Email us →

The 2026 tooling stack we settled on

There is no single magic tool. We use a small, opinionated stack and re-evaluate every quarter. Snapshot of what is actually in production engineering use on VALT and adjacent projects:

1. Editor-side coding agents. Cursor and Claude Code, depending on developer preference. Both with project-specific rules files describing conventions, naming, no-go modules, and review expectations. The rules file is the most underrated artifact — it captures team taste and saves dozens of mediocre suggestions per week.

2. CI-side review bot. A first-pass diff reviewer that flags edge cases, missing tests, and style drift before a human looks. Tuned to be quiet on style nits and loud on potential regressions.

3. Long-context analysis for ad-hoc questions. When a senior engineer needs to understand “how does X interact with Y across the whole codebase,” we run a long-context model with the relevant directories loaded. This is not constant; it is a tool we reach for once or twice a week per engineer.

4. Privacy boundary. All AI tools used on production code are routed through enterprise plans with no data retention and clear data-handling agreements. For client work, BAA / NDA constraints further narrow the eligible vendors. We do not ship customer code into a free-tier model.

The new failure modes AI introduces

Acceleration brings its own risks. Three new failure modes have appeared on AI-augmented teams that did not exist before. Each one is fixable, but you have to know to look.

1. Plausible-but-subtly-wrong code. AI suggestions are fluent in your codebase’s style and conventions, which makes them easier to merge than they should be. The signal that helped reviewers in 2022 (“this looks weird”) is muted. The compensating control is mandatory, slow, line-by-line review for security-, billing-, and authorization-touching diffs — even when the diff is short.

2. Knowledge erosion in juniors. If juniors lean on AI to skip the orientation phase, they ramp faster but build shallower mental models. Twelve months in, they hit a problem AI cannot solve and discover they never internalized the fundamentals. Pair AI-assisted work with deliberate “explain this without the AI” sessions.

3. Documentation drift, but faster. Auto-generated docs are easy to ship and easy to ignore. We force every doc-PR through a human edit before merge; otherwise the team produces extensive, persuasive, slightly-wrong documentation that fools the next reader.

Why this matters for your project

When Fora Soft estimates a project, the productivity baseline we quote against is the AI-augmented baseline — not the 2022 baseline. That is why our timelines and budgets often look 20–30% lower than incumbent agencies for comparable scope. We are not cutting corners; we are pricing the actual work we do.

Concretely, that shows up in three places: software estimates assume an AI-augmented engineer; sprint commitments are sized for AI-assisted velocity; and we hire for engineers who can lead an AI agent rather than tolerate one. That last part is the cultural shift that makes the numbers above repeat across teams.

If you are picking a development partner in 2026, “do you use AI in engineering?” is the wrong question. Of course they do. The right questions are: can you show me the velocity delta on a real codebase you maintain, and what is your review discipline on AI-generated diffs? If a vendor cannot answer both, walk.

Five pitfalls we kept stepping on

1. Treating AI suggestions as defaults instead of options. The first generation of suggestions is often plausible-sounding and locally fine. The right behavior is to treat them as the start of a discussion, not the final answer. Teams that auto-merge AI diffs ship subtle regressions.

2. Skipping tests because “the diff looks right.” AI-generated code makes the surface area of a change look smaller than it is. Insist on the same test discipline you would apply to human-written code; ideally, AI also writes the test.

3. Generating documentation that nobody verifies. AI-generated docs are persuasive and sometimes wrong. We treat them as drafts that a human commits only after reading the code. Anything else is technical debt with extra steps.

4. Putting customer code into the wrong vendor. Free-tier models with retention defaults are not where production code goes. The privacy and BAA story has to be settled before any agent is allowed near a repo.

5. Underweighting the rules file. A bad rules file produces fluent slop. A good one captures naming, module boundaries, banned patterns, and review expectations. Time invested in this artifact compounds for the whole team.

Pause AI rollout when: review discipline drops below 1 substantive comment per ~50 changed lines. The acceleration is only safe if the review layer is keeping up. If reviews thin out, slow down.

A decision framework: should you invest now

Five questions, in order. The answers tell you whether to invest in AI Engineering this quarter, next quarter, or not yet.

Q1. Is your codebase old enough that context exploration dominates? If new engineers take more than two weeks to ship their first meaningful change, the answer is yes — AI will compress this aggressively.

Q2. Do you have at least adequate tests on critical paths? AI accelerates change. Without a test net, that acceleration produces regressions faster than you can ship. If coverage is poor, fix that before rolling out AI broadly.

Q3. Does your team review code seriously today? AI raises the volume of diffs to review. Teams that treat reviews as rubber-stamps get worse outcomes with AI. If review discipline is weak, fix that first.

Q4. Are your vendors and data-handling boundaries clear? Customer code, regulated data, NDA-bound projects all require clean enterprise contracts and no-retention guarantees. If those are not in place, scope AI to internal tools only until they are.

Q5. Can a senior engineer own the rules file? Without a rules file that captures team taste, AI suggestions drift. If no senior is willing to own it, that is the first hire to make.

KPIs to put on the dashboard

Quality KPIs. Defect-escape rate (bugs found in prod / total bugs found) should be flat or improving after AI rollout, never worsening. Test coverage on critical paths >75%, and AI-generated diffs should ship with test coverage at least equal to the surrounding module.

Business KPIs. Cycle time per ticket (from "in progress" to "done"), tickets-per-engineer-per-sprint, and time-to-first-meaningful-change for new joiners. The 30–40% gain shows up here, not in lines-of-code-per-day.

Reliability KPIs. Production incident rate, mean time to detect, and mean time to recover. AI-augmented teams should not introduce more incidents per release. If they do, treat it as a review-discipline failure and adjust before doubling down.

When AI Engineering is the wrong investment

A short counter-position. AI Engineering is not always the right thing to invest in this quarter.

If your codebase is young (<25K lines), the bottleneck is product-market fit and customer interviews, not engineering velocity. Invest there. If your team has poor test coverage and weak review discipline, AI will accelerate the wrong things; spend a quarter on quality first. If you operate under data-handling restrictions you cannot satisfy with current vendors, defer until enterprise contracts catch up.

Also: if you are buying AI Engineering as a slogan to tell investors, you will get the slogan and not the velocity. The 30–40% number requires daily integration into actual workflows, not press releases.

Want this playbook applied to your codebase?

We will assess where AI Engineering will compress your sprint and ship a 12-week plan to get there. Custom software development services here.

Book a 30-min call → WhatsApp → Email us →

Orientation vs. typing: where the 70% comes from

The cleanest mental model: split every coding task into orientation (what do I need to know) and execution (write the code). On a mature system, orientation usually dominates. AI compresses orientation an order of magnitude more than it compresses execution.

For a context-bound task — say, “add device type X with permissions Y, register it in module Z, expose it in admin UI” — pre-AI we measured ~30 min orientation and ~20 min execution. With AI, orientation drops to ~3 min and execution drops to ~12 min. Total: 50 min → 15 min, a 70% reduction. The orientation slice is what bent.

Conversely, on a pure greenfield typing task — bootstrap a new microservice with a known stack — pre-AI was ~4 hours and post-AI is ~3.5 hours. The orientation phase was already short; the gain is marginal. This explains why teams shipping greenfield code report “AI didn’t do much” while teams maintaining mature systems report “AI changed our quarter.” They are both right; their work mixes are different.

What this means for hiring

The engineer who shipped well in 2022 still ships well in 2026, but the bar has shifted. The differentiator is no longer typing speed or library familiarity. It is the ability to direct an AI agent, read its diffs critically, and refuse the wrong suggestions.

In our hiring pipeline, the strongest signal is a candidate who can explain when they overrode an AI suggestion in their last project, and why. That single answer separates engineers who are using the tools from engineers who are being used by them. More on how we select developers.

The other practical effect: junior engineers ramp faster on a mature codebase, because the AI assists with the orientation work that used to take them weeks. Junior productivity is up. The bar for "senior" is also up, because the things only seniors can do (architecture, security, performance, judgment) become a larger share of the work the AI cannot do.

FAQ

Does AI replace senior developers?

No. It increases their leverage. AI generates options and narrows the search space; senior engineers make architectural decisions, own security boundaries, and judge whether a suggestion fits the system. Teams that try to replace seniors with AI alone produce fluent regressions at speed.

Is AI safe for production systems?

Yes — if every suggestion is reviewed with the same rigor applied to human-written code, and if your tooling is on enterprise contracts with no retention. AI does not remove accountability; it shifts the engineer’s role from typing to reviewing.

Where does AI help the most?

Bug root-cause analysis, context exploration on mature codebases, repetitive feature extensions (new device types, new tenant variants), and code review augmentation. These are exactly the activities that consume the bulk of senior engineering time on long-lived systems.

Where does AI struggle?

Highly cross-layer features with deep business rules (e.g., recording lifecycles tied to retention policy across storage, indexing, billing, audit). AI can give direction but rarely produces the final code. Performance work, security boundaries, and architectural decisions are also human-led.

Does AI improve code quality?

The primary gain is speed; quality gains are indirect. Better review support and earlier edge-case detection help. Counterweight: teams that stop reading diffs because they "look right" will see quality fall. Net effect depends entirely on review discipline.

How long does it take a team to actually capture the 30–40%?

In our experience, 6–10 weeks of daily use, plus a written rules file owned by a senior. Teams that pilot AI for two weeks and quit usually quit before the curve bends. Teams that integrate it as a daily habit see the velocity shift inside a quarter.

Should we use Cursor, Claude Code, or both?

Both are credible in 2026; the differences are workflow-shaped rather than capability-shaped. We let engineers pick within an approved set, on the same enterprise contracts. Standardising the rules file matters more than standardising the editor.

Does this apply to mobile, embedded, or game engineering?

Mobile: yes, with the same shape of gains. Embedded: partially — tight memory and timing constraints reduce the safety margin and make human review more important. Game engineering: yes for tooling and content pipelines, less for the highly creative core gameplay loops.

Engineering

Code Refactoring in Plain Words

Why refactoring is the foundation AI accelerates — and how to time it on a mature system.

AI

How AI Can Transform Your Mobile App

Practical, mobile-shaped applications of the same productivity story — for product owners.

Estimating

Software Estimating: A Practical Guide

How we model AI-augmented velocity into fixed-scope contracts without lying about it.

Hiring

How Fora Soft Selects Top Developers

The hiring filters that produce engineers who can lead an AI agent rather than tolerate one.

Company

21 Years of Fora Soft

The track record behind these claims — real-time video, AI features, 625+ shipped products.

Ready to capture the 30–40% on your platform?

AI does not revolutionize engineering overnight. It removes friction. On a 12-year-old, 1M+ line system serving 50,000+ users, that friction lives in context exploration, bug investigation and code review — and removing it produced a 30–40% velocity lift across the team. The lift is real, repeatable, and measurable; it is also conditional on engineering culture you may already have or may need to build first.

If you maintain or are scaling a complex platform — video, communication, healthcare, AI-enabled product — the question is no longer whether AI can write code. It is whether your architecture, tests, and review discipline let you cash the acceleration. Fora Soft has been pricing and shipping against the AI-augmented baseline for two and a half years. We can usually tell you in 30 minutes whether your codebase will produce the same gain, what the preconditions look like, and what a 12-week rollout would cost.

Bring us your codebase — we’ll bring the playbook

Thirty minutes, no slides — just a candid review of where AI Engineering will compress your sprint and where it won’t.

Book a 30-min call → WhatsApp → Email us →

  • Cases