<?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: joshua dyson</title>
    <description>The latest articles on DEV Community by joshua dyson (@joshua_dyson).</description>
    <link>https://dev.to/joshua_dyson</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3630751%2F8eb3c752-b819-466b-a56c-88b5b7a17f1a.png</url>
      <title>DEV Community: joshua dyson</title>
      <link>https://dev.to/joshua_dyson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joshua_dyson"/>
    <language>en</language>
    <item>
      <title>AI Platform Engineering: Building Smarter Internal Developer Platforms</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Thu, 29 Oct 2026 17:10:46 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/ai-platform-engineering-building-smarter-internal-developer-platforms-2ap</link>
      <guid>https://dev.to/joshua_dyson/ai-platform-engineering-building-smarter-internal-developer-platforms-2ap</guid>
      <description>&lt;p&gt;As engineering organizations grow, developers often spend more time navigating infrastructure, configuring environments, understanding deployment processes, and requesting access than focusing on application development.&lt;br&gt;
Platform engineering addresses this challenge by providing reusable capabilities and self-service workflows that help developers build, test, and deploy software without needing to understand every underlying infrastructure detail.&lt;br&gt;
AI introduces another opportunity. Instead of relying exclusively on predefined templates, documentation, and manual requests, engineering teams can use AI to help developers express their intent, understand platform capabilities, troubleshoot issues, and coordinate development tasks.&lt;br&gt;
The result is an emerging approach known as AI platform engineering: combining the foundations of platform engineering with AI-assisted and agent-driven workflows.&lt;br&gt;
The objective is not simply to add a chatbot to an internal developer portal. It is to make engineering workflows easier to use while preserving the reliability, security, and governance that platform teams are responsible for.&lt;br&gt;
What Is Platform Engineering?&lt;br&gt;
Platform engineering is the practice of building and maintaining internal platforms that provide developers with standardized, reusable capabilities for software delivery.&lt;br&gt;
These capabilities may include:&lt;br&gt;
Application templates and service scaffolding.&lt;br&gt;
Development and testing environments.&lt;br&gt;
Infrastructure provisioning.&lt;br&gt;
CI/CD pipelines.&lt;br&gt;
Secrets and identity management.&lt;br&gt;
Logging, metrics, and observability.&lt;br&gt;
Security controls and compliance checks.&lt;br&gt;
Deployment workflows and operational tooling.&lt;br&gt;
An internal developer platform (IDP) brings relevant capabilities together behind a consistent developer experience.&lt;br&gt;
Rather than requiring every development team to solve the same infrastructure problems independently, platform teams provide supported paths that developers can use to deliver software.&lt;br&gt;
A good platform reduces unnecessary cognitive load while allowing teams to retain flexibility where it matters.&lt;br&gt;
What Is AI Platform Engineering?&lt;br&gt;
AI platform engineering applies AI capabilities to the design, operation, and use of internal developer platforms.&lt;br&gt;
AI can help developers interact with platform capabilities using natural language, generate configurations, explain errors, and coordinate tasks across the software development lifecycle.&lt;br&gt;
For example, a developer might request:&lt;br&gt;
"Create a service with an API endpoint, configure a test environment, add the required validation checks, and prepare the changes for review."&lt;br&gt;
An AI-enabled workflow could interpret the request, identify the relevant templates and policies, generate a plan, and prepare the necessary changes.&lt;br&gt;
Depending on the platform, the workflow may execute some steps automatically and require approval for others.&lt;br&gt;
The platform remains responsible for defining the supported capabilities, permissions, policies, and operational boundaries within which AI can work.&lt;br&gt;
Why Internal Developer Platforms Need an AI Layer&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Developer self-service still requires technical knowledge
A conventional self-service portal may provide templates and deployment buttons, but developers still need to understand which template to select, which configuration values to provide, and how to resolve errors.
AI can help explain available options and translate a development requirement into an appropriate workflow.&lt;/li&gt;
&lt;li&gt;Platform documentation can be difficult to navigate
Large engineering organizations maintain documentation across infrastructure repositories, internal portals, runbooks, and team-owned systems.
An AI assistant with access to approved, current documentation can help developers locate relevant instructions and understand platform conventions.
Its answers should remain grounded in the actual documentation and supported capabilities.&lt;/li&gt;
&lt;li&gt;Repeated configuration work creates unnecessary overhead
Teams frequently repeat tasks such as creating service scaffolding, updating configuration files, preparing test environments, and adding standard checks.
AI can help generate these artifacts, while templates and deterministic validation enforce consistency.&lt;/li&gt;
&lt;li&gt;Platform teams become a bottleneck
When developers must request help for routine infrastructure and deployment tasks, platform engineers may spend a large portion of their time handling repetitive requests.
AI-assisted self-service can help developers resolve routine issues independently, leaving platform engineers more time for architecture, reliability, security, and platform improvements.&lt;/li&gt;
&lt;li&gt;Governance becomes harder as autonomy increases
Giving developers and AI agents more execution capabilities creates additional questions around permissions, approval, auditability, and policy enforcement.
An effective AI platform should make the approved path easier to follow without allowing agents to bypass the organization's controls.
Five Ways AI Can Improve an Internal Developer Platform&lt;/li&gt;
&lt;li&gt;Natural-language developer self-service
Developers can describe what they want to build rather than navigating a large set of disconnected tools and configuration forms.
An AI-enabled platform can interpret the request, ask for missing information, and recommend the appropriate template or workflow.
The generated plan should identify the changes it intends to make before execution begins.&lt;/li&gt;
&lt;li&gt;Automated project scaffolding
AI can help generate service structures, configuration files, initial tests, documentation, and other development artifacts.
Standard templates and validation rules can ensure the generated output follows the organization's conventions.
This can reduce repetitive setup work, especially when teams create many similar services.&lt;/li&gt;
&lt;li&gt;Environment provisioning assistance
Developers often need temporary environments for feature development, testing, or reviewing a change.
AI can help prepare environment configuration and initiate approved provisioning workflows.
The platform should enforce resource limits, access permissions, cost controls, and cleanup policies to prevent unnecessary infrastructure usage.&lt;/li&gt;
&lt;li&gt;Context-aware troubleshooting
When a build or deployment fails, developers need to understand the relevant logs, configuration, dependencies, and recent changes.
An AI assistant can help gather this information, explain likely causes, and suggest next steps.
Any proposed changes should still pass the platform's normal validation and security checks.&lt;/li&gt;
&lt;li&gt;Policy-aware software delivery
Platform engineering often standardizes requirements such as security scans, approved dependencies, required tests, and deployment approvals.
AI can help developers understand these requirements and prepare compliant changes.
However, the enforcement of critical policies should remain in reliable, independently validated controls rather than depending solely on an AI-generated explanation.
AI Platform Engineering Architecture
A practical architecture can be organized into five layers.
Layer 1: Developer experience
This is where developers express their intent and interact with the platform through a portal, command-line interface, code editor, or other supported interface.
Layer 2: AI orchestration
The AI layer interprets requests, gathers relevant context, creates execution plans, and coordinates the available tools.
It should distinguish between actions it can perform and actions requiring approval or additional information.
Layer 3: Platform services
This layer exposes reusable capabilities such as project scaffolding, infrastructure provisioning, repository management, testing, and deployment workflows.
Layer 4: Policy and security controls
Identity, permissions, secrets management, environment isolation, audit logging, and approval requirements define the boundaries within which AI and developers can operate.
Layer 5: Observability and feedback
Logs, metrics, traces, deployment outcomes, and developer feedback help teams monitor platform performance and identify areas for improvement.
These layers work together. An AI interface without reliable platform services will have limited execution capabilities, while powerful automation without appropriate governance can create operational risk.
How to Introduce AI Into Your Internal Developer Platform
Step 1: Identify developer friction
Interview engineering teams and review workflow data to identify repetitive requests, common configuration mistakes, long waiting periods, and frequent support tickets.
Select one problem with a measurable impact.
Step 2: Establish supported platform capabilities
Document the templates, APIs, workflows, environments, and integrations the platform supports.
AI should operate through defined interfaces wherever possible rather than inventing new procedures for every request.
Step 3: Start with read-only assistance
A useful first step is an AI assistant that can explain documentation, locate relevant configuration, summarize build failures, or answer platform questions.
Measure answer quality and ensure that the assistant distinguishes verified information from uncertainty.
Step 4: Add bounded execution
Once the read-only workflow performs reliably, allow the AI layer to prepare selected changes or execute low-risk tasks in a controlled environment.
Define explicit permissions and approval requirements for each type of action.
Step 5: Integrate validation and governance
Ensure that generated code and configurations pass the normal testing, security, and policy checks.
The AI layer should not be able to bypass mandatory controls simply because a task was expressed in natural language.
Step 6: Measure developer outcomes
Track time to create a new service, environment provisioning time, deployment lead time, platform support requests, failed changes, and developer satisfaction.
Use these measures to determine whether the AI layer genuinely improves the developer experience.
Common Challenges in AI Platform Engineering
Poor documentation and inconsistent standards: AI cannot reliably guide developers if platform documentation is outdated or conflicting.
Excessive autonomy: Agents with unrestricted access to infrastructure can create security, reliability, and cost risks.
Unclear ownership: Platform teams need to define who owns AI workflows, reusable templates, policies, and incident handling.
Tool fragmentation: Adding an AI interface across disconnected systems may create another layer of complexity instead of simplifying the developer experience.
Unmeasured productivity claims: Faster code generation does not necessarily translate into faster, safer software delivery.
Insufficient feedback loops: Teams must continuously evaluate whether AI-generated plans, configurations, and recommendations are useful and correct.
How Revolte Fits Into AI-Native Platform Engineering
Revolte is an AI-native software delivery platform designed to help engineering teams move from developer intent toward production-ready software through connected development and delivery workflows.
For teams exploring AI platform engineering, an important consideration is how developers can express their intent, review proposed plans, generate or modify code, run quality and security checks, and progress through delivery with appropriate controls.
The broader goal is to reduce unnecessary coordination between development and delivery activities without removing engineering oversight.
When evaluating &lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte&lt;/a&gt; for an internal developer platform use case, teams should verify the available interfaces, integrations, infrastructure support, governance capabilities, and deployment workflows against their requirements.
Final Thoughts
AI platform engineering extends the idea of developer self-service by making platform capabilities easier to discover, understand, and use.
The most effective approach combines AI-assisted interaction with standardized platform services, reliable automation, and enforceable governance.
Start with a specific developer pain point, build on a clear platform foundation, and measure the impact on developer experience and delivery performance.
Explore Revolte to learn more about AI-native software delivery and how developer intent can be connected to engineering workflows with visibility and control.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devops</category>
      <category>automation</category>
      <category>ai</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>7 Best Devin Alternatives in 2026: AI Software Engineers Compared</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Wed, 28 Oct 2026 08:18:41 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/7-best-devin-alternatives-in-2026-ai-software-engineers-compared-39m7</link>
      <guid>https://dev.to/joshua_dyson/7-best-devin-alternatives-in-2026-ai-software-engineers-compared-39m7</guid>
      <description>&lt;p&gt;Devin, from Cognition, made the "AI software engineer" mainstream. You tag it in Slack or a ticket, and it spins up its own virtual machine, writes the code, tests it and keeps going until a pull request is ready to merge. For well-scoped tasks, that kind of handoff is powerful.&lt;br&gt;
Full autonomy isn't what every team needs, though. Some engineering leaders want agents that are just as capable but easier to steer, with clear approval points and an audit trail. Some need help beyond the pull request: deployments, incidents and legacy migrations. Others just want an agent that lives in the editor their developers already use. This guide compares seven Devin alternatives on the trade-off that matters most here: how much autonomy you get, and how much control you keep.&lt;br&gt;
Disclosure: this guide is published by Revolte, one of the platforms listed. Each tool is described from its current public product pages, which are linked at the end.&lt;br&gt;
Why teams look for a Devin alternative&lt;br&gt;
Teams usually start looking for one of three reasons. Control: an agent that works on its own for hours is efficient, but regulated teams need to decide exactly which actions need human sign-off. Scope: Devin's job ends at a merge-ready pull request, while delivery continues through environments, releases, monitoring and incident response. Workflow fit: some developers prefer to pair with an agent in their IDE or terminal rather than hand tasks to a remote one.&lt;br&gt;
Devin alternatives at a glance&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Revolte: best for autonomy with governance, from code to production
&lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte&lt;/a&gt; is AI for the entire software delivery lifecycle. Where Devin focuses on getting a task to a merge-ready pull request, Revolte's agents carry on through testing, deployment and production operations. They also handle data migration and application modernization. Its promise is simple: you direct, Revolte delivers.
The difference is in the controls. Agents run inside the Revolte Harness, a sandboxed, permissioned execution environment. Context Management grounds them in your codebase, architecture decisions and prior work. The Revolte IDP and Platform layer connects their output to the environments, pipelines and infrastructure you already run. Human-in-the-loop controls set approval thresholds per workflow, team or risk level, so routine changes flow while high-risk ones wait for the right engineer. Delivery Intelligence turns every agent action into an audit trail. On top of that, Revolte adds runtime, delivery and FinOps observability, and a developer CLI.
Choose Revolte if: you want Devin-level autonomy, but with risk-based approvals, full traceability and coverage all the way to production. That's why teams in banking, legal and fintech use it. Consider: automated quality engineering and security and performance use cases are listed as coming soon.&lt;/li&gt;
&lt;li&gt;Factory: best for delegating across many tools
Factory is an agent-native development platform whose "Droids" plan, build, review, test and ship. Like Devin, it's built for handing off complete tasks. It reaches further into your existing tools, with Droids on the command line, desktop, web, mobile, Slack, Microsoft Teams, Jira, Linear and CI. Missions handle long-running, multi-phase work, and Automations run event-driven or scheduled workflows. It supports multiple model providers, persistent "Droid Computers", human approval checkpoints and enterprise deployment controls.
Choose Factory if: you like Devin's handoff model but want it built into more of your team's tools. Consider: like Devin, its core output is engineering work up to review. Check how far it reaches into deployment and operations for your stack.&lt;/li&gt;
&lt;li&gt;Augment Code: best for building your own agent loops
Augment Code's Cosmos platform is for building an "always-on software delivery system". You configure agent loops for first-pass code review, ticket-to-PR, vulnerability remediation and incident investigation. They are triggered by GitHub, GitLab, Slack, Linear, Jira, schedules or webhooks. Agents share context and memory across the lifecycle and run in managed cloud sandboxes or on your own machines, with permissions, audit trails and human review points.
Choose Augment if: your platform team wants to design its own automations rather than delegate one task at a time. Consider: it takes more setup than a ready-made agent.&lt;/li&gt;
&lt;li&gt;Cursor: best for developers who want the agent in their editor
Cursor takes the opposite approach to Devin. Developers stay in an AI-native IDE and work alongside an agent that can use models from several providers. When they want to delegate, Cursor's cloud agents run in parallel on their own machines and test their changes. There is also a CLI, an &lt;a class="mentioned-user" href="https://dev.to/cursor"&gt;@cursor&lt;/a&gt; Slack integration and Bugbot for pull request review. Cursor lists SOC 2, ISO 27001 and ISO 42001 certifications.
Choose Cursor if: you want to make developers faster rather than replace task handoffs. Consider: it's focused on code, so deployment and operations sit outside it.&lt;/li&gt;
&lt;li&gt;Claude Code: best for a scriptable, customizable agent
Claude Code is Anthropic's agentic coding tool. It reads your codebase, edits files, runs commands and opens pull requests. It runs in the terminal, VS Code, JetBrains, a desktop app and the browser. You can mention &lt;a class="mentioned-user" href="https://dev.to/claude"&gt;@claude&lt;/a&gt; in Slack with a bug report and get a pull request back, or run it in GitHub Actions and GitLab CI/CD for review and triage. Teams shape its behavior with CLAUDE.md instructions, skills, hooks and MCP connections. It can also run parallel agents and cloud scheduled tasks, and the Agent SDK lets you build custom agents.
Choose Claude Code if: your engineers want an agent they can script and adapt, from quick pairing to fully headless runs. Consider: it's a developer tool, so delivery-wide governance and environments are things you build around it.&lt;/li&gt;
&lt;li&gt;OpenAI Codex: best for teams already on ChatGPT
OpenAI Codex runs in the ChatGPT desktop, mobile and web apps, the Codex CLI, an IDE extension and Codex Cloud. Codex Cloud is where long-running tasks run on isolated machines. Scheduled tasks are among its listed workflows, and it signs in with a ChatGPT account.
Choose Codex if: your organization already runs on ChatGPT and wants autonomous coding in the same place. Consider: it's code-focused, not a delivery platform.&lt;/li&gt;
&lt;li&gt;GitHub Copilot cloud agent: best for GitHub-native teams
GitHub Copilot's cloud agent is the closest built-in equivalent to Devin for GitHub users. You assign it an issue or start a task from the agents panel. It researches the repository, implements the change, and runs tests and linters in an ephemeral cloud environment. Then it opens a pull request with session logs for review.
Choose Copilot cloud agent if: your code lives on GitHub and you want the lowest-friction option. Consider: it works only with GitHub-hosted repositories, on one repository and branch per task, and each session is capped at 59 minutes.
How to choose the right Devin alternative
Decide first how much you want to hand off. If you want developers to stay hands-on, pick an editor or terminal agent such as Cursor, Claude Code or Codex. If you want to hand off well-scoped tickets, Factory and Copilot's cloud agent work much like Devin, and Augment lets you design that handoff yourself. If the slow part of your delivery comes after the pull request, or you need provable control over what agents do, choose a platform that covers the whole lifecycle with governance built in. Revolte is built for exactly that.
Whichever you shortlist, ask the same four questions. Where do agents execute? What can they access? Who approves which actions? Can you show an auditor a complete record of what an agent did?&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>tools</category>
    </item>
    <item>
      <title>7 Best Factory AI Alternatives in 2026 (Compared for Enterprise Teams)</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Mon, 26 Oct 2026 11:02:07 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/7-best-factory-ai-alternatives-in-2026-compared-for-enterprise-teams-5caj</link>
      <guid>https://dev.to/joshua_dyson/7-best-factory-ai-alternatives-in-2026-compared-for-enterprise-teams-5caj</guid>
      <description>&lt;p&gt;Factory is one of the better-known names in agentic software development. It describes itself as an agent-native platform where "Droids" plan, build, review, test and ship code. You can run them from the command line, desktop, web, Slack, Microsoft Teams, Jira, Linear and CI. For many teams, that is exactly what they need.&lt;/p&gt;

&lt;p&gt;But no single agent platform fits every team. Some teams want agents that go past the pull request into deployment and production operations. Some need stricter governance because they work in a regulated industry. Others would rather keep agents inside the IDE or the GitHub workflow they already use. If you're in one of those groups, this guide compares seven Factory AI alternatives on what matters most: how much of the software delivery lifecycle each one covers, where its agents run, and how much control your engineers keep.&lt;/p&gt;

&lt;p&gt;Disclosure: this guide is published by Revolte, one of the platforms listed. We've tried to describe every tool, including our own, from its current public product pages, which are linked at the end.&lt;/p&gt;

&lt;p&gt;How we compared them&lt;/p&gt;

&lt;p&gt;We looked at four things. SDLC coverage: does the tool stop at code, or does it also handle review, testing, deployment and operations? Execution: where do agents run, and how isolated are they? Governance: are there approval checkpoints, permissions and audit trails? Fit: which team is each tool really built for?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Revolte: best for governed, end-to-end software delivery&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte&lt;/a&gt; is built as AI for the entire software delivery lifecycle, not just the coding step. Its agents handle application development, testing, deployment and production reliability, along with data migration and application modernization. The idea is that engineers direct the work and agents deliver it, from intent to production.&lt;/p&gt;

&lt;p&gt;What sets Revolte apart from Factory is how far it goes past the pull request and how much weight it puts on governance. Agents run inside the Revolte Harness, a sandboxed, permissioned environment. Context Management grounds them in your codebase, architecture decisions and prior work. The Revolte IDP and Platform layer connects their output to your existing environments, pipelines and infrastructure. Human-in-the-loop controls let you set approval thresholds per workflow, team or risk level. Delivery Intelligence records every agent action as an audit trail. Revolte also includes runtime, delivery and FinOps observability, and a developer CLI.&lt;/p&gt;

&lt;p&gt;Choose Revolte if: you need agents that ship to production and operate what they ship, and your security or compliance team needs traceability. Revolte's customers include banking, legal and fintech teams. Consider: automated quality engineering and security and performance use cases are listed as coming soon, so check the roadmap &lt;br&gt;
if those are your priority.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Devin: best for fully autonomous task handoff&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Devin, from Cognition, is an autonomous software engineer that spins up its own Windows, Mac and Linux virtual machines. It builds and tests its work there and keeps going until a pull request is ready to merge. Teams tag &lt;a class="mentioned-user" href="https://dev.to/devin"&gt;@devin&lt;/a&gt; in Slack or Microsoft Teams, or connect it to Linear, Jira and GitHub. It can split large tasks across parallel cloud agents, review code with Devin Review, and run scheduled or trigger-based workflows, including a "Security Swarm" that hunts for vulnerabilities and coverage gaps. On the enterprise side, it offers per-session VM isolation, SSO, SCIM, RBAC, audit logs and private networking.&lt;/p&gt;

&lt;p&gt;Choose Devin if: you want to delegate whole tasks and review finished pull requests. Consider: it's centered on producing code and pull requests. Deployment and production operations depend on what you connect it to.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Augment Code: best for always-on agent loops&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Augment Code now sells Cosmos, a platform for building an "always-on software delivery system". Agent loops cover first-pass code review, ticket-to-PR, vulnerability remediation and incident investigation. &lt;/p&gt;

&lt;p&gt;They are triggered from GitHub, GitLab, Slack, Linear, Jira, &lt;br&gt;
schedules or webhooks. Agents share context and memory across planning, coding, review, testing and incidents. They can run in managed cloud sandboxes or on machines you manage, with permissions, audit trails and human review points.&lt;/p&gt;

&lt;p&gt;Choose Augment if: you want to build your own event-driven agent loops. Consider: you design the loops yourself, so getting value takes some platform-engineering effort.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cursor: best for developers who live in the editor&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cursor is an AI-native IDE. Its in-editor agent lets you pick models from several providers. It also offers cloud agents that run in parallel on their own machines and test their changes, a CLI, an &lt;a class="mentioned-user" href="https://dev.to/cursor"&gt;@cursor&lt;/a&gt; Slack integration, and Bugbot for pull request review. Cursor lists SOC 2, ISO 27001 and ISO 42001 certifications.&lt;/p&gt;

&lt;p&gt;Choose Cursor if: your goal is to make individual developers faster. Consider: it centers on writing and reviewing code. Deployment, operations and delivery governance sit outside it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Claude Code: best for flexible agentic coding across surfaces&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Claude Code is Anthropic's agentic coding tool. It reads your codebase, edits files, runs commands and opens pull requests. It runs in the terminal, VS Code, JetBrains, a desktop app and the browser. It also connects to Slack, GitHub Actions and GitLab CI/CD for automated review and issue triage. Teams can customize it with project instructions (CLAUDE.md), skills, hooks and MCP connections to tools such as Jira and Google Drive. It can also run parallel agents and cloud scheduled tasks, and the Agent SDK lets you build your own agents.&lt;/p&gt;

&lt;p&gt;Choose Claude Code if: you want a powerful, scriptable agent that engineers can shape around their own workflows. Consider: it's a developer tool rather than a delivery platform, so environments, deployment governance and audit across the pipeline are things you build around it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OpenAI Codex: best for teams already on ChatGPT&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OpenAI Codex is available in the ChatGPT desktop, mobile and web apps, the Codex CLI, an IDE extension and Codex Cloud. Codex Cloud is for long-running work on isolated machines. Scheduled tasks and long-running work are listed among its workflows, and it signs in with your ChatGPT account.&lt;/p&gt;

&lt;p&gt;Choose Codex if: your organization has standardized on ChatGPT and wants coding agents in the same place. Consider: like Cursor and Claude Code, it's focused on building code, not running the full delivery pipeline.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GitHub Copilot cloud agent: best for GitHub-native teams&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Copilot's cloud agent takes work from an issue, a pull request or the agents panel. It researches the repository, plans and implements changes, and runs tests and linters in an ephemeral cloud environment. It then opens a pull request for review, with session logs that show what it did.&lt;/p&gt;

&lt;p&gt;Choose Copilot cloud agent if: your code and workflow already live on GitHub and you want the lowest-friction option. Consider: it works only with GitHub-hosted repositories and one repository and branch per task, and each session is capped at 59 minutes.&lt;/p&gt;

&lt;p&gt;How to choose the right Factory alternative&lt;/p&gt;

&lt;p&gt;Start with where your delivery actually slows down. If the bottleneck is writing code, an IDE- or CLI-based agent such as Cursor, Claude Code or Codex will help fastest. If it's the backlog of well-defined tickets, an autonomous agent such as Devin or Copilot's cloud agent can take tasks off your plate. If the slowdown sits after the pull request, in reviews, environments, releases, incidents or compliance sign-off, you need a platform that covers the whole lifecycle with governance built in. That's where Revolte, Augment Cosmos and Factory itself compete.&lt;/p&gt;

&lt;p&gt;For regulated teams, put governance first. Ask every vendor four questions. Where do agents execute? What can they touch? Who approves what? Can you produce a full audit trail of agent actions for your auditors?&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>AI SDLC Explained: Why Faster Coding Didn't Make Us Ship Faster</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Mon, 26 Oct 2026 08:02:23 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/ai-sdlc-explained-why-faster-coding-didnt-make-us-ship-faster-3kgp</link>
      <guid>https://dev.to/joshua_dyson/ai-sdlc-explained-why-faster-coding-didnt-make-us-ship-faster-3kgp</guid>
      <description>&lt;p&gt;We rolled out AI coding assistants and our pull request count went up. Our lead time to production barely moved. The reason turned out to be simple: writing code was never our bottleneck. Pull requests waited in review, flaky tests blocked merges, deploys waited for someone with the right access, and incidents kept pulling the same engineers off feature work.&lt;/p&gt;

&lt;p&gt;AI made one stage of the pipeline faster, and the queue just moved downstream. That is the problem the AI SDLC idea is trying to solve.&lt;/p&gt;

&lt;p&gt;What is AI SDLC?&lt;/p&gt;

&lt;p&gt;AI SDLC, short for AI software development lifecycle, means applying &lt;/p&gt;

&lt;p&gt;AI across every stage of delivery rather than at a single step. Planning, coding, review, testing, deployment and production operations all get AI support, and they share context. An agent reviewing a pull request knows why the change was planned. An agent responding to an incident knows what was deployed an hour ago. &lt;/p&gt;

&lt;p&gt;Without that shared context, you don't have an AI SDLC. You have a collection of disconnected AI tools.&lt;/p&gt;

&lt;p&gt;An agentic SDLC goes a step further. Instead of suggesting code for a human to paste, agents carry out multi-step work themselves. They build a change, write and run the tests, prepare the deployment and propose a fix when something breaks in production. Engineers set the intent, approve risky actions and stay accountable for what ships.&lt;/p&gt;

&lt;p&gt;Why coding assistants alone don't move the needle&lt;/p&gt;

&lt;p&gt;Delivery speed is set by the slowest stage, not the fastest. If code generation gets twice as fast but review, testing and release stay the same, lead time hardly changes. Many teams see the opposite effect: more pull requests, longer review queues and test suites that can't keep up. There is also a context gap. A coding assistant sees a file or a repository, but not your deployment history, runbooks, compliance rules or the reasons a service was built the way it was. &lt;/p&gt;

&lt;p&gt;So its output needs heavy human checking, which eats up the time it saved.&lt;/p&gt;

&lt;p&gt;What makes an SDLC genuinely agentic&lt;/p&gt;

&lt;p&gt;In practice, an agentic SDLC needs five things working together. Agents need deep context, grounded in your codebase, architecture decisions and production history rather than just the open file. They need safe execution in sandboxed, permissioned environments, where they can build and deploy without touching what they shouldn't. They need human-in-the-loop governance, with approval thresholds set by workflow and risk level. That way a dependency bump can ship on its own, while a schema change in a payments service waits for a senior engineer. Every action needs to be traceable, with a record of what changed, why and who approved it. Finally, agents have to work through the Git, CI/CD, cloud and observability tools you already run, instead of forcing you to rebuild your platform.&lt;/p&gt;

&lt;p&gt;Where to start&lt;/p&gt;

&lt;p&gt;Don't start where the demos look best. Start where your queue is longest. Measure lead time, review wait time, test flakiness and time to restore service. Then pick one bounded workflow, such as automated pull request review or incident triage for a single on-call rotation. &lt;/p&gt;

&lt;p&gt;Define the guardrails before you scale, connect the context agents need, and expand stage by stage once the first workflow has earned trust. The principle that holds it all together is simple: agents do the work, engineers own the outcome.&lt;/p&gt;

&lt;p&gt;Disclosure: I work at &lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte AI&lt;/a&gt;, where we're building an agentic platform for the full software delivery lifecycle.&lt;/p&gt;

&lt;p&gt;Which stage of your pipeline is the real bottleneck right now: review, tests, deploys or incidents?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>softwareengineering</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Build a Platform Engineering Team &amp; Internal Developer Portal: Lessons from Modern Engineering Organizations</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Sun, 26 Jul 2026 18:03:08 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/how-to-build-a-platform-engineering-team-internal-developer-portal-lessons-from-modern-40l3</link>
      <guid>https://dev.to/joshua_dyson/how-to-build-a-platform-engineering-team-internal-developer-portal-lessons-from-modern-40l3</guid>
      <description>&lt;p&gt;Platform engineering has become one of the fastest-growing disciplines in software engineering. As organizations scale, the number of services, pipelines, cloud resources, and operational tools grows just as quickly. Without a common platform, every product team ends up solving the same infrastructure problems independently.&lt;/p&gt;

&lt;p&gt;I've found that successful platform engineering initiatives don't begin with technology—they begin with understanding where developers are losing time. An internal developer portal isn't just another dashboard; it's a way to standardize workflows, reduce cognitive load, and let engineering teams focus on building products instead of managing infrastructure.&lt;/p&gt;

&lt;p&gt;This article walks through how I'd approach building a platform engineering team and an internal developer portal from the ground up.&lt;/p&gt;

&lt;p&gt;TL;DR&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a platform team to enable developers, not control them.&lt;/li&gt;
&lt;li&gt;Start by solving your biggest developer pain points.&lt;/li&gt;
&lt;li&gt;Treat the platform as an internal product with real users.&lt;/li&gt;
&lt;li&gt;Provide self-service workflows instead of manual requests.&lt;/li&gt;
&lt;li&gt;Build an Internal Developer Portal (IDP) that becomes the single place for documentation, services, deployments, and ownership.&lt;/li&gt;
&lt;li&gt;Measure success using developer adoption and delivery metrics—not the number of platform features shipped.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Platform Engineering Exists
&lt;/h2&gt;

&lt;p&gt;As organizations grow, engineering teams often experience the same challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers wait days for cloud resources.&lt;/li&gt;
&lt;li&gt;CI/CD pipelines are inconsistent across teams.&lt;/li&gt;
&lt;li&gt;Documentation is scattered across multiple tools.&lt;/li&gt;
&lt;li&gt;Nobody knows who owns a particular service.&lt;/li&gt;
&lt;li&gt;Security and compliance checks vary between projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventually, engineering teams spend more time navigating systems than building software.&lt;/p&gt;

&lt;p&gt;That's where platform engineering delivers value—by creating reusable capabilities that every team can consume.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Identify Developer Pain Points
&lt;/h2&gt;

&lt;p&gt;Before writing a single line of code, spend time understanding where developers lose time.&lt;/p&gt;

&lt;p&gt;Typical questions include:&lt;/p&gt;

&lt;p&gt;How long does it take to create a new service?&lt;br&gt;
How long does onboarding take?&lt;br&gt;
How many deployment steps are manual?&lt;br&gt;
How often do developers ask for infrastructure support?&lt;br&gt;
Which requests repeatedly go to the platform or DevOps team?&lt;/p&gt;

&lt;p&gt;The answers help prioritize what the platform should solve first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Define the Platform Team
&lt;/h2&gt;

&lt;p&gt;A platform engineering team isn't simply a renamed DevOps team.&lt;/p&gt;

&lt;p&gt;Its mission is to build reusable products for internal engineering teams.&lt;/p&gt;

&lt;p&gt;A typical team might include:&lt;/p&gt;

&lt;p&gt;Platform Engineers&lt;br&gt;
Site Reliability Engineers (SREs)&lt;br&gt;
DevOps Engineers&lt;br&gt;
Cloud Engineers&lt;br&gt;
Security Engineers&lt;br&gt;
Developer Experience (DevEx) Engineers&lt;/p&gt;

&lt;p&gt;Their customers are developers—not external users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Build an Internal Developer Portal
&lt;/h2&gt;

&lt;p&gt;The portal becomes the central place where developers interact with the platform.&lt;/p&gt;

&lt;p&gt;Instead of searching multiple systems, developers should be able to:&lt;/p&gt;

&lt;p&gt;Discover services&lt;br&gt;
View ownership&lt;br&gt;
Create new projects&lt;br&gt;
Deploy applications&lt;br&gt;
Request infrastructure&lt;br&gt;
Read documentation&lt;br&gt;
View dashboards&lt;br&gt;
Check service health&lt;/p&gt;

&lt;p&gt;One portal replaces dozens of disconnected tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Standardize Service Templates
&lt;/h2&gt;

&lt;p&gt;Every new microservice shouldn't start from scratch.&lt;/p&gt;

&lt;p&gt;Create reusable templates that include:&lt;/p&gt;

&lt;p&gt;Repository structure&lt;br&gt;
CI/CD pipeline&lt;br&gt;
Testing framework&lt;br&gt;
Logging&lt;br&gt;
Monitoring&lt;br&gt;
Security scanning&lt;br&gt;
Documentation&lt;/p&gt;

&lt;p&gt;Example template:&lt;/p&gt;

&lt;p&gt;service:&lt;br&gt;
  name: payments-api&lt;br&gt;
  language: nodejs&lt;br&gt;
  runtime: node20&lt;/p&gt;

&lt;p&gt;ci:&lt;br&gt;
  tests: true&lt;br&gt;
  lint: true&lt;br&gt;
  security_scan: true&lt;/p&gt;

&lt;p&gt;deployment:&lt;br&gt;
  environment: staging&lt;br&gt;
  strategy: rolling&lt;/p&gt;

&lt;p&gt;monitoring:&lt;br&gt;
  metrics: enabled&lt;br&gt;
  logs: enabled&lt;br&gt;
  tracing: enabled&lt;/p&gt;

&lt;p&gt;A developer can bootstrap a production-ready service in minutes rather than hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Automate Infrastructure
&lt;/h2&gt;

&lt;p&gt;Developers shouldn't create cloud resources manually.&lt;/p&gt;

&lt;p&gt;Infrastructure should be provisioned through reusable templates.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;apiVersion: platform.company.io/v1&lt;/p&gt;

&lt;p&gt;kind: Service&lt;/p&gt;

&lt;p&gt;metadata:&lt;br&gt;
  name: payments-api&lt;/p&gt;

&lt;p&gt;spec:&lt;br&gt;
  runtime: node20&lt;br&gt;
  database: postgres&lt;br&gt;
  cache: redis&lt;br&gt;
  monitoring: enabled&lt;/p&gt;

&lt;p&gt;Behind the scenes, automation provisions everything consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Build Self-Service Workflows
&lt;/h2&gt;

&lt;p&gt;Every manual ticket is an opportunity for automation.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;p&gt;Create a repository&lt;br&gt;
Provision Kubernetes namespaces&lt;br&gt;
Generate CI/CD pipelines&lt;br&gt;
Request databases&lt;br&gt;
Issue TLS certificates&lt;br&gt;
Configure DNS&lt;br&gt;
Rotate secrets&lt;/p&gt;

&lt;p&gt;Instead of waiting for another team, developers complete these tasks through the portal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Make Ownership Visible
&lt;/h2&gt;

&lt;p&gt;One of the most valuable features of an internal portal is service ownership.&lt;/p&gt;

&lt;p&gt;Every service should answer questions like:&lt;/p&gt;

&lt;p&gt;Who owns it?&lt;br&gt;
Which team supports it?&lt;br&gt;
Where is the documentation?&lt;br&gt;
Which environments exist?&lt;br&gt;
When was it last deployed?&lt;/p&gt;

&lt;p&gt;Example configuration:&lt;/p&gt;

&lt;p&gt;service:&lt;br&gt;
  name: payments-api&lt;/p&gt;

&lt;p&gt;owner:&lt;br&gt;
  team: payments&lt;/p&gt;

&lt;p&gt;repository:&lt;br&gt;
  github: company/payments-api&lt;/p&gt;

&lt;p&gt;slack:&lt;br&gt;
  channel: payments-alerts&lt;/p&gt;

&lt;p&gt;runbook:&lt;br&gt;
  docs/runbook.md&lt;/p&gt;

&lt;p&gt;Finding the right information should take seconds—not a series of Slack messages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Integrate CI/CD and Observability
&lt;/h2&gt;

&lt;p&gt;Developers shouldn't switch between multiple tools to understand what's happening.&lt;/p&gt;

&lt;p&gt;A portal should surface:&lt;/p&gt;

&lt;p&gt;Latest deployments&lt;br&gt;
Build status&lt;br&gt;
Test results&lt;br&gt;
Security findings&lt;br&gt;
DORA metrics&lt;br&gt;
Logs&lt;br&gt;
Metrics&lt;br&gt;
Traces&lt;br&gt;
Incident history&lt;/p&gt;

&lt;p&gt;The goal is to give developers a complete view of their services from a single interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9: Measure Success
&lt;/h2&gt;

&lt;p&gt;Platform engineering isn't successful because it launches a portal.&lt;/p&gt;

&lt;p&gt;It's successful when developers actually use it.&lt;/p&gt;

&lt;p&gt;Useful metrics include:&lt;/p&gt;

&lt;p&gt;Developer onboarding time&lt;br&gt;
Service creation time&lt;br&gt;
Deployment frequency&lt;br&gt;
Lead time for changes&lt;br&gt;
Self-service adoption&lt;br&gt;
Number of manual support requests&lt;br&gt;
Internal platform satisfaction&lt;br&gt;
Portal usage&lt;/p&gt;

&lt;p&gt;If the platform reduces friction, these metrics should improve over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Mistakes
&lt;/h2&gt;

&lt;p&gt;Some platform initiatives struggle because they:&lt;/p&gt;

&lt;p&gt;Build too many features before validating user needs.&lt;br&gt;
Focus on technology instead of developer experience.&lt;br&gt;
Force teams onto rigid workflows.&lt;br&gt;
Ignore documentation.&lt;br&gt;
Treat the platform as an infrastructure project rather than an internal product.&lt;/p&gt;

&lt;p&gt;The best platforms evolve through continuous feedback from engineering teams.&lt;/p&gt;

&lt;p&gt;A Typical Platform Architecture&lt;br&gt;
Developer&lt;br&gt;
     │&lt;br&gt;
     ▼&lt;br&gt;
Internal Developer Portal&lt;br&gt;
     │&lt;br&gt;
     ├── Service Catalog&lt;br&gt;
     ├── Documentation&lt;br&gt;
     ├── Templates&lt;br&gt;
     ├── Self-Service Actions&lt;br&gt;
     ├── CI/CD&lt;br&gt;
     ├── Infrastructure Automation&lt;br&gt;
     ├── Security&lt;br&gt;
     └── Observability&lt;br&gt;
            │&lt;br&gt;
            ▼&lt;br&gt;
Cloud Infrastructure&lt;/p&gt;

&lt;p&gt;The portal becomes the entry point, while automation handles the operational complexity behind the scenes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Platform engineering isn't about centralizing control—it's about decentralizing capability.&lt;/p&gt;

&lt;p&gt;When developers can create services, provision infrastructure, deploy applications, and access documentation through self-service workflows, they spend less time waiting and more time delivering value.&lt;/p&gt;

&lt;p&gt;The most effective platform teams don't measure success by the number of tools they've built. They measure it by how much engineering friction they've removed.&lt;/p&gt;

&lt;p&gt;If you're starting a platform engineering initiative, resist the urge to build everything at once. Solve one high-impact problem, gather feedback, and iterate. Over time, your internal developer portal will become more than just a collection of tools—it will become the foundation of how your engineering organization builds, ships, and operates software.&lt;/p&gt;

</description>
      <category>platformengineering</category>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Devin isn't a replacement for engineers,it's an AI teammate. It can explore codebases, implement features, debug issues, run tests, and open PRs. But it still needs clear requirements and human review. The real value is accelerating delivery, not replacing</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Sun, 26 Jul 2026 17:59:48 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/devin-isnt-a-replacement-for-engineersits-an-ai-teammate-it-can-explore-codebases-implement-557p</link>
      <guid>https://dev.to/joshua_dyson/devin-isnt-a-replacement-for-engineersits-an-ai-teammate-it-can-explore-codebases-implement-557p</guid>
      <description></description>
    </item>
    <item>
      <title>README.md explains the project to humans. AGENTS.md explains it to AI coding agents. I think it'll become a standard file for teams using AI-assisted development.

Are you using one yet?</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Sun, 26 Jul 2026 17:43:11 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/readmemd-explains-the-project-to-humans-agentsmd-explains-it-to-ai-coding-agents-i-think-itll-5e64</link>
      <guid>https://dev.to/joshua_dyson/readmemd-explains-the-project-to-humans-agentsmd-explains-it-to-ai-coding-agents-i-think-itll-5e64</guid>
      <description></description>
    </item>
    <item>
      <title>Preventing Hallucinated Package Dependencies in AI-Generated Code: A Practical Guide</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Fri, 24 Jul 2026 14:26:23 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/preventing-hallucinated-package-dependencies-in-ai-generated-code-a-practical-guide-2o6m</link>
      <guid>https://dev.to/joshua_dyson/preventing-hallucinated-package-dependencies-in-ai-generated-code-a-practical-guide-2o6m</guid>
      <description>&lt;p&gt;AI coding assistants are remarkably good at generating boilerplate, tests, and even complete features. But every now and then, they'll confidently import a package, function, or API that simply doesn't exist.&lt;/p&gt;

&lt;p&gt;These "hallucinated dependencies" can waste debugging time, introduce supply chain risks, and even make it into pull requests if nobody notices.&lt;/p&gt;

&lt;p&gt;This tutorial walks through a practical workflow to catch these issues automatically before they reach production.&lt;/p&gt;

&lt;p&gt;We'll build a simple CI workflow that:&lt;/p&gt;

&lt;p&gt;Detects missing or invalid dependencies&lt;br&gt;
Verifies package installation&lt;br&gt;
Scans for typosquatting risks&lt;br&gt;
Runs dependency and security checks&lt;br&gt;
Fails the pull request automatically when something looks suspicious&lt;/p&gt;

&lt;p&gt;Everything uses standard tooling that you can add to an existing GitHub repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a Hallucinated Dependency?
&lt;/h2&gt;

&lt;p&gt;Suppose you ask an AI assistant to build a feature.&lt;/p&gt;

&lt;p&gt;It returns something like this:&lt;/p&gt;

&lt;p&gt;import { SmartCache } from "fast-cache-ai";&lt;/p&gt;

&lt;p&gt;const cache = new SmartCache();&lt;/p&gt;

&lt;p&gt;Looks reasonable.&lt;/p&gt;

&lt;p&gt;Except...&lt;/p&gt;

&lt;p&gt;fast-cache-ai doesn't exist.&lt;/p&gt;

&lt;p&gt;Sometimes AI invents:&lt;/p&gt;

&lt;p&gt;Package names&lt;br&gt;
Functions&lt;br&gt;
SDKs&lt;br&gt;
API endpoints&lt;br&gt;
Configuration options&lt;/p&gt;

&lt;p&gt;The generated code looks convincing enough that developers often don't notice until CI fails—or worse, until someone tries to publish or deploy it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Beyond broken builds, hallucinated dependencies can create security problems.&lt;/p&gt;

&lt;p&gt;Imagine an attacker publishing a package with the same hallucinated name.&lt;/p&gt;

&lt;p&gt;If your build installs it automatically, you've just created a potential software supply chain risk.&lt;/p&gt;

&lt;p&gt;That's why validating dependencies should be part of every AI-assisted development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install Dependencies from the Lock File
&lt;/h2&gt;

&lt;p&gt;Always prefer deterministic installs.&lt;/p&gt;

&lt;p&gt;For Node.js:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name: Install packages
run: npm ci&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Avoid:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;run: npm install&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using the lock file ensures everyone—and your CI system—is installing exactly the same dependency versions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Verify Package Availability
&lt;/h2&gt;

&lt;p&gt;A simple validation step can prevent many mistakes.&lt;/p&gt;

&lt;p&gt;npm view express version&lt;br&gt;
npm view react version&lt;/p&gt;

&lt;p&gt;If the package doesn't exist, the command exits with an error.&lt;/p&gt;

&lt;p&gt;For Python:&lt;/p&gt;

&lt;p&gt;pip index versions requests&lt;/p&gt;

&lt;p&gt;For Go:&lt;/p&gt;

&lt;p&gt;go list -m all&lt;/p&gt;

&lt;p&gt;These checks are lightweight and easy to automate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Enable Dependency Review
&lt;/h2&gt;

&lt;p&gt;GitHub's Dependency Review Action helps identify risky dependency changes in pull requests.&lt;/p&gt;

&lt;p&gt;name: Dependency Review&lt;/p&gt;

&lt;p&gt;on:&lt;br&gt;
  pull_request:&lt;/p&gt;

&lt;p&gt;jobs:&lt;br&gt;
  dependency-review:&lt;br&gt;
    runs-on: ubuntu-latest&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;steps:
  - uses: actions/checkout@v4

  - uses: actions/dependency-review-action@v4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This highlights newly introduced dependencies before they're merged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Scan for Vulnerabilities
&lt;/h2&gt;

&lt;p&gt;After validating dependencies, scan them.&lt;/p&gt;

&lt;p&gt;Example using npm:&lt;/p&gt;

&lt;p&gt;npm audit&lt;/p&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;p&gt;npm audit --audit-level=high&lt;/p&gt;

&lt;p&gt;For Python:&lt;/p&gt;

&lt;p&gt;pip-audit&lt;/p&gt;

&lt;p&gt;Security scanning won't catch hallucinations directly, but it helps identify risky packages before deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Detect Typosquatting
&lt;/h2&gt;

&lt;p&gt;Hallucinations sometimes resemble legitimate packages.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;expressx&lt;br&gt;
react-core&lt;br&gt;
lodashjs&lt;br&gt;
fast-cache-ai&lt;/p&gt;

&lt;p&gt;A simple review process should flag packages that:&lt;/p&gt;

&lt;p&gt;Are newly introduced&lt;br&gt;
Have very few downloads&lt;br&gt;
Have recently been published&lt;br&gt;
Closely resemble well-known packages&lt;/p&gt;

&lt;p&gt;Even a manual review of new dependencies adds an extra layer of protection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Add an Automated CI Check
&lt;/h2&gt;

&lt;p&gt;Here's a minimal GitHub Actions workflow:&lt;/p&gt;

&lt;p&gt;name: Validate Dependencies&lt;/p&gt;

&lt;p&gt;on:&lt;br&gt;
  pull_request:&lt;/p&gt;

&lt;p&gt;jobs:&lt;br&gt;
  validate:&lt;br&gt;
    runs-on: ubuntu-latest&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;steps:
  - uses: actions/checkout@v4

  - uses: actions/setup-node@v4
    with:
      node-version: 20

  - run: npm ci

  - run: npm audit --audit-level=high

  - run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If dependency installation fails, the pull request never reaches production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Repository Structure
&lt;/h2&gt;

&lt;p&gt;example-app/&lt;br&gt;
│&lt;br&gt;
├── .github/&lt;br&gt;
│   └── workflows/&lt;br&gt;
│       └── dependency-check.yml&lt;br&gt;
│&lt;br&gt;
├── package.json&lt;br&gt;
├── package-lock.json&lt;br&gt;
├── src/&lt;br&gt;
├── tests/&lt;br&gt;
└── README.md&lt;/p&gt;

&lt;p&gt;This keeps validation close to the code and makes it easy for contributors to understand the workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;To see the workflow in action:&lt;/p&gt;

&lt;p&gt;Create a simple Node.js application.&lt;br&gt;
Add the GitHub Actions workflow above.&lt;br&gt;
Introduce a fake package into package.json (for example, "fast-cache-ai": "^1.0.0").&lt;br&gt;
Open a pull request.&lt;br&gt;
Watch the workflow fail during dependency installation.&lt;/p&gt;

&lt;p&gt;It's a simple exercise, but it demonstrates how automated validation can catch AI-generated mistakes before they become production issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Best Practices
&lt;/h2&gt;

&lt;p&gt;A few habits can significantly reduce dependency-related issues:&lt;/p&gt;

&lt;p&gt;Review every new dependency in a pull request.&lt;br&gt;
Prefer well-maintained, widely adopted packages.&lt;br&gt;
Commit lock files.&lt;br&gt;
Enable automated dependency updates.&lt;br&gt;
Run security scans in every CI pipeline.&lt;br&gt;
Treat AI-generated imports the same way you treat manually written code—verify them before trusting them.&lt;/p&gt;

&lt;p&gt;AI should accelerate development, not replace engineering judgment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Hallucinated dependencies aren't a flaw unique to any one AI coding assistant—they're a natural consequence of language models generating plausible-looking code.&lt;/p&gt;

&lt;p&gt;The good news is that they're also one of the easiest AI-related risks to mitigate.&lt;/p&gt;

&lt;p&gt;A few automated checks in your CI pipeline can catch missing packages, identify suspicious dependency changes, and stop broken pull requests long before they reach production.&lt;/p&gt;

&lt;p&gt;As AI becomes a routine part of software development, building lightweight validation into your workflow is no longer just a nice-to-have. It's part of writing secure, reliable software.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>coding</category>
    </item>
    <item>
      <title>Avoiding CI/CD Vendor Lock-In with Portable YAML: Lessons Learned Building Flexible Pipelines</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Fri, 24 Jul 2026 13:26:32 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/avoiding-cicd-vendor-lock-in-with-portable-yaml-lessons-learned-building-flexible-pipelines-18l3</link>
      <guid>https://dev.to/joshua_dyson/avoiding-cicd-vendor-lock-in-with-portable-yaml-lessons-learned-building-flexible-pipelines-18l3</guid>
      <description>&lt;p&gt;Over the last few years, I've worked with teams using GitHub Actions, GitLab CI/CD, Jenkins, CircleCI, Azure DevOps, and newer AI-native delivery platforms. One lesson keeps coming up:&lt;/p&gt;

&lt;p&gt;The more vendor-specific your pipeline YAML becomes, the harder it is to migrate later.&lt;/p&gt;

&lt;p&gt;By keeping pipeline definitions modular, separating business logic from platform-specific configuration, and relying on portable scripts where possible, teams can significantly reduce migration effort while preserving flexibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Most CI/CD platforms use YAML.&lt;/p&gt;

&lt;p&gt;At first glance, they look remarkably similar.&lt;/p&gt;

&lt;p&gt;steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checkout&lt;/li&gt;
&lt;li&gt;install&lt;/li&gt;
&lt;li&gt;test&lt;/li&gt;
&lt;li&gt;build&lt;/li&gt;
&lt;li&gt;deploy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But beneath that familiar syntax are platform-specific features:&lt;/p&gt;

&lt;p&gt;Custom actions&lt;br&gt;
Proprietary expressions&lt;br&gt;
Vendor-specific runners&lt;br&gt;
Secret management APIs&lt;br&gt;
Environment variables&lt;br&gt;
Deployment strategies&lt;/p&gt;

&lt;p&gt;Over time, those dependencies become difficult to untangle.&lt;/p&gt;

&lt;p&gt;I’ve seen teams realize this only when they wanted to migrate to a different platform—or simply evaluate another option.&lt;/p&gt;

&lt;h2&gt;
  
  
  YAML Isn't Portable by Default
&lt;/h2&gt;

&lt;p&gt;Many developers assume YAML equals portability.&lt;/p&gt;

&lt;p&gt;It doesn't.&lt;/p&gt;

&lt;p&gt;This GitHub Actions example:&lt;/p&gt;

&lt;p&gt;name: CI&lt;/p&gt;

&lt;p&gt;on:&lt;br&gt;
  push:&lt;br&gt;
    branches: [main]&lt;/p&gt;

&lt;p&gt;jobs:&lt;br&gt;
  test:&lt;br&gt;
    runs-on: ubuntu-latest&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;steps:
  - uses: actions/checkout@v4

  - uses: actions/setup-node@v4
    with:
      node-version: 20

  - run: npm ci
  - run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;works perfectly...&lt;/p&gt;

&lt;p&gt;...inside GitHub Actions.&lt;/p&gt;

&lt;p&gt;Moving it to GitLab CI or another platform usually means rewriting jobs, triggers, environment variables, authentication, and deployment steps.&lt;/p&gt;

&lt;p&gt;The YAML file survives.&lt;/p&gt;

&lt;p&gt;The workflow doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Travels Well?
&lt;/h2&gt;

&lt;p&gt;I've had much better results treating the pipeline as an orchestrator—not the place where all the logic lives.&lt;/p&gt;

&lt;p&gt;Instead of embedding everything inside YAML, move reusable logic into scripts.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;run: ./scripts/install.sh&lt;/li&gt;
&lt;li&gt;run: ./scripts/test.sh&lt;/li&gt;
&lt;li&gt;run: ./scripts/build.sh&lt;/li&gt;
&lt;li&gt;run: ./scripts/deploy.sh&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now those scripts can be reused almost anywhere:&lt;/p&gt;

&lt;p&gt;GitHub Actions&lt;br&gt;
GitLab CI/CD&lt;br&gt;
Jenkins&lt;br&gt;
CircleCI&lt;br&gt;
Azure DevOps&lt;br&gt;
Self-hosted runners&lt;/p&gt;

&lt;p&gt;The pipeline simply decides when to execute them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Vendor-Specific Features at the Edge
&lt;/h2&gt;

&lt;p&gt;Some platform-specific features are worth using.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;p&gt;GitHub Actions Marketplace&lt;br&gt;
GitLab Review Apps&lt;br&gt;
Azure DevOps Environments&lt;br&gt;
CircleCI Orbs&lt;/p&gt;

&lt;p&gt;The mistake is building the entire delivery process around them.&lt;/p&gt;

&lt;p&gt;Instead, I try to isolate vendor-specific functionality to small sections of the pipeline.&lt;/p&gt;

&lt;p&gt;That makes future migrations far less painful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standardize the Workflow
&lt;/h2&gt;

&lt;p&gt;Across projects, I like keeping the same delivery stages regardless of platform:&lt;/p&gt;

&lt;p&gt;Checkout&lt;br&gt;
    ↓&lt;br&gt;
Dependencies&lt;br&gt;
    ↓&lt;br&gt;
Lint&lt;br&gt;
    ↓&lt;br&gt;
Tests&lt;br&gt;
    ↓&lt;br&gt;
Build&lt;br&gt;
    ↓&lt;br&gt;
Security Scan&lt;br&gt;
    ↓&lt;br&gt;
Package&lt;br&gt;
    ↓&lt;br&gt;
Deploy&lt;/p&gt;

&lt;p&gt;The orchestration tool can change.&lt;/p&gt;

&lt;p&gt;The workflow remains familiar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure Should Be Portable Too
&lt;/h2&gt;

&lt;p&gt;The same philosophy applies outside CI/CD.&lt;/p&gt;

&lt;p&gt;Instead of relying on deployment features tied to one platform, use portable infrastructure tooling where practical.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;p&gt;Docker&lt;br&gt;
Kubernetes&lt;br&gt;
Terraform&lt;br&gt;
OpenTofu&lt;br&gt;
OpenTelemetry&lt;/p&gt;

&lt;p&gt;These standards make changing CI/CD platforms much less disruptive because the surrounding ecosystem remains consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI Can Help
&lt;/h2&gt;

&lt;p&gt;As AI becomes more integrated into software delivery, I think portability becomes even more important.&lt;/p&gt;

&lt;p&gt;An AI system that understands your delivery workflow shouldn't depend entirely on one CI/CD vendor.&lt;/p&gt;

&lt;p&gt;Instead, it should reason about concepts like:&lt;/p&gt;

&lt;p&gt;Build failures&lt;br&gt;
Test results&lt;br&gt;
Security findings&lt;br&gt;
Infrastructure changes&lt;br&gt;
Deployment health&lt;/p&gt;

&lt;p&gt;Those concepts exist regardless of whether the pipeline runs in GitHub Actions, GitLab CI/CD, Jenkins, or another platform.&lt;/p&gt;

&lt;p&gt;That's one reason I'm interested in AI-native delivery platforms like &lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte&lt;/a&gt;. Rather than replacing existing CI/CD tools, the idea is to add intelligence around the delivery workflow—analyzing pipelines, deployments, infrastructure, and runtime behavior—while allowing teams to continue using the tools that fit their environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Do Today
&lt;/h2&gt;

&lt;p&gt;If I were designing a CI/CD platform from scratch, I'd follow a few simple rules:&lt;/p&gt;

&lt;p&gt;Keep YAML as thin as possible.&lt;br&gt;
Move business logic into reusable scripts.&lt;br&gt;
Prefer open standards over proprietary integrations.&lt;br&gt;
Standardize pipeline stages across repositories.&lt;br&gt;
Isolate vendor-specific functionality.&lt;br&gt;
Treat CI/CD as interchangeable infrastructure, not a permanent dependency.&lt;/p&gt;

&lt;p&gt;Those decisions don't eliminate migration work, but they make future changes dramatically easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Vendor lock-in rarely haxppens overnight.&lt;/p&gt;

&lt;p&gt;It happens one convenient feature at a time.&lt;/p&gt;

&lt;p&gt;Most of those features are useful, and many are worth adopting. The key is knowing where convenience ends and long-term flexibility begins.&lt;/p&gt;

&lt;p&gt;For me, portable pipelines aren't about preparing to switch CI/CD vendors tomorrow. They're about preserving the freedom to evolve your engineering stack as your team's needs change.&lt;/p&gt;

&lt;p&gt;A little discipline in how you structure your YAML today can save weeks—or even months—of migration effort down the road.&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>ai</category>
      <category>yaml</category>
      <category>productivity</category>
    </item>
    <item>
      <title>CI/CD Pipeline Security: What's the one security check you consider non-negotiable before every deployment?

#cicd #pipeline #security #deployment</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Thu, 23 Jul 2026 12:02:49 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/cicd-pipeline-security-whats-the-one-security-check-you-consider-non-negotiable-before-every-263p</link>
      <guid>https://dev.to/joshua_dyson/cicd-pipeline-security-whats-the-one-security-check-you-consider-non-negotiable-before-every-263p</guid>
      <description></description>
      <category>cicd</category>
      <category>devops</category>
      <category>security</category>
    </item>
    <item>
      <title>What's the Real Per-Seat Cost of GitHub Copilot Once Enterprise Cloud and AI Credit Overages Are Included?</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Thu, 23 Jul 2026 10:36:14 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/whats-the-real-per-seat-cost-of-github-copilot-once-enterprise-cloud-and-ai-credit-overages-are-4215</link>
      <guid>https://dev.to/joshua_dyson/whats-the-real-per-seat-cost-of-github-copilot-once-enterprise-cloud-and-ai-credit-overages-are-4215</guid>
      <description>&lt;p&gt;GitHub Copilot has quickly become one of the most widely adopted AI coding assistants. For many developers, it's become a daily tool for generating code, writing tests, explaining unfamiliar functions, and speeding up repetitive work.&lt;/p&gt;

&lt;p&gt;When evaluating Copilot, though, many teams focus on one number: the monthly license fee per developer.&lt;/p&gt;

&lt;p&gt;In practice, that's only part of the picture.&lt;/p&gt;

&lt;p&gt;Once you roll Copilot out across an engineering organization, you'll also need to think about GitHub Enterprise, governance, security, AI usage limits, onboarding, and the operational workflows surrounding software delivery.&lt;/p&gt;

&lt;p&gt;Here's a framework I use when thinking about the real cost of GitHub Copilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  The License Is Just the Starting Point
&lt;/h2&gt;

&lt;p&gt;The advertised subscription price is easy to compare.&lt;/p&gt;

&lt;p&gt;The harder question is:&lt;/p&gt;

&lt;p&gt;What does one productive Copilot user actually cost your organization?&lt;/p&gt;

&lt;p&gt;For most engineering teams, the answer includes much more than the AI assistant itself.&lt;/p&gt;

&lt;p&gt;Typical costs include:&lt;/p&gt;

&lt;p&gt;GitHub Enterprise licensing (where applicable)&lt;br&gt;
Copilot subscription&lt;br&gt;
AI premium request or usage overages (depending on your plan and usage patterns)&lt;br&gt;
Security and compliance reviews&lt;br&gt;
Developer onboarding and enablement&lt;br&gt;
Internal documentation and governance&lt;br&gt;
Time spent reviewing AI-generated code&lt;/p&gt;

&lt;p&gt;The exact numbers will vary by organization, but these factors often matter more than the headline subscription price.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Cost #1: Enterprise Platform Costs
&lt;/h2&gt;

&lt;p&gt;Many larger organizations already use GitHub Enterprise Cloud for features such as:&lt;/p&gt;

&lt;p&gt;SAML/SSO&lt;br&gt;
Organization policies&lt;br&gt;
Audit logs&lt;br&gt;
Enterprise security&lt;br&gt;
Centralized administration&lt;br&gt;
Compliance controls&lt;/p&gt;

&lt;p&gt;If you're evaluating Copilot as part of an enterprise rollout, it's worth considering the overall GitHub platform investment rather than looking at Copilot in isolation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Cost #2: AI Usage Isn't Always Unlimited
&lt;/h2&gt;

&lt;p&gt;As GitHub expands Copilot's capabilities—from chat and coding assistance to more advanced AI-powered workflows—some plans include usage limits or AI request allocations for premium features.&lt;/p&gt;

&lt;p&gt;That means highly active engineering teams should understand:&lt;/p&gt;

&lt;p&gt;What's included in the subscription&lt;br&gt;
Which AI capabilities consume premium usage&lt;br&gt;
How additional usage is billed&lt;br&gt;
Whether certain workflows generate higher AI consumption&lt;/p&gt;

&lt;p&gt;For small teams this may never become an issue.&lt;/p&gt;

&lt;p&gt;For hundreds of developers using AI throughout the day, it becomes an important budgeting consideration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Cost #3: AI Still Requires Human Review
&lt;/h2&gt;

&lt;p&gt;Copilot can generate impressive code.&lt;/p&gt;

&lt;p&gt;It cannot guarantee that the generated code is:&lt;/p&gt;

&lt;p&gt;Correct&lt;br&gt;
Secure&lt;br&gt;
Compliant&lt;br&gt;
Performant&lt;br&gt;
Appropriate for your architecture&lt;/p&gt;

&lt;p&gt;Every AI-generated change still requires engineering judgment.&lt;/p&gt;

&lt;p&gt;Many organizations underestimate the review time that continues after AI writes the first draft.&lt;/p&gt;

&lt;p&gt;The goal isn't eliminating review—it's making reviews more efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Cost #4: Governance
&lt;/h2&gt;

&lt;p&gt;As AI becomes part of everyday development, platform teams also need to define:&lt;/p&gt;

&lt;p&gt;Which models developers can use&lt;br&gt;
Data handling policies&lt;br&gt;
Security controls&lt;br&gt;
Prompt management&lt;br&gt;
Code ownership&lt;br&gt;
Audit requirements&lt;/p&gt;

&lt;p&gt;These aren't licensing costs, but they're real operational costs that accompany enterprise AI adoption.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Cost #5: Software Delivery Doesn't Stop at Code
&lt;/h2&gt;

&lt;p&gt;Even if Copilot generates a pull request in minutes, the engineering work continues.&lt;/p&gt;

&lt;p&gt;The change still needs to move through:&lt;/p&gt;

&lt;p&gt;CI/CD pipelines&lt;br&gt;
Infrastructure validation&lt;br&gt;
Security scanning&lt;br&gt;
Deployment approvals&lt;br&gt;
Observability&lt;br&gt;
Incident monitoring&lt;/p&gt;

&lt;p&gt;These activities often consume more engineering time than writing the original code.&lt;/p&gt;

&lt;p&gt;That's why many platform engineering teams are investing not only in AI coding assistants, but also in AI-powered software delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thinking Beyond the IDE
&lt;/h2&gt;

&lt;p&gt;One trend I've noticed is that AI is gradually moving beyond code generation.&lt;/p&gt;

&lt;p&gt;Instead of only helping developers write code, newer tools are beginning to assist with:&lt;/p&gt;

&lt;p&gt;Pull request summaries&lt;br&gt;
CI/CD failure analysis&lt;br&gt;
Infrastructure changes&lt;br&gt;
Deployment risk assessment&lt;br&gt;
Automated rollback recommendations&lt;br&gt;
Production incident investigation&lt;/p&gt;

&lt;p&gt;Rather than replacing coding assistants, these tools complement them by addressing the operational work that happens after a pull request is opened.&lt;/p&gt;

&lt;p&gt;Platforms such as GitHub itself are expanding AI capabilities across the developer workflow, while AI-native software delivery platforms like &lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte&lt;/a&gt; are exploring how AI can simplify CI/CD, infrastructure automation, observability, and governance from pull request to production.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, What's the Real Per-Seat Cost?
&lt;/h2&gt;

&lt;p&gt;The answer isn't a single dollar amount.&lt;/p&gt;

&lt;p&gt;It's better thought of as:&lt;/p&gt;

&lt;p&gt;Per-Seat Cost = Software License + Platform Costs + AI Usage + Governance + Operational Overhead&lt;/p&gt;

&lt;p&gt;For many teams, the biggest expense isn't the Copilot subscription.&lt;/p&gt;

&lt;p&gt;It's everything required to safely turn AI-generated code into production-ready software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot has changed how developers write software, and for many teams it's an easy productivity win.&lt;/p&gt;

&lt;p&gt;But if you're evaluating it for an entire engineering organization, don't stop at the subscription price.&lt;/p&gt;

&lt;p&gt;Look at the complete engineering workflow.&lt;/p&gt;

&lt;p&gt;The organizations that see the highest return aren't simply buying AI licenses—they're redesigning how software moves from idea to production. AI coding assistants improve developer productivity, while modern platform engineering and AI-native delivery tools help reduce the operational work surrounding every release.&lt;/p&gt;

&lt;p&gt;When you measure the real cost of AI, it's worth measuring the real value the same way.&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>productivity</category>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>AI Agents Inside CI/CD: How We Automated PR Triage and Reduced Review Bottlenecks</title>
      <dc:creator>joshua dyson</dc:creator>
      <pubDate>Thu, 23 Jul 2026 09:39:33 +0000</pubDate>
      <link>https://dev.to/joshua_dyson/ai-agents-inside-cicd-how-we-automated-pr-triage-and-reduced-review-bottlenecks-c16</link>
      <guid>https://dev.to/joshua_dyson/ai-agents-inside-cicd-how-we-automated-pr-triage-and-reduced-review-bottlenecks-c16</guid>
      <description>&lt;p&gt;Over the past few months, I've been exploring how AI agents can fit into a modern CI/CD pipeline—not to replace engineers, but to eliminate repetitive work that slows teams down.&lt;/p&gt;

&lt;p&gt;Here's what worked well:&lt;/p&gt;

&lt;p&gt;✅ Automatically categorized incoming pull requests&lt;br&gt;
✅ Flagged potential security and dependency issues&lt;br&gt;
✅ Suggested fixes for linting and test failures&lt;br&gt;
✅ Generated review summaries for faster code reviews&lt;br&gt;
✅ Reduced context switching for reviewers&lt;/p&gt;

&lt;p&gt;The biggest lesson? AI is most valuable before the human review begins.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every engineering team eventually runs into the same issue.&lt;/p&gt;

&lt;p&gt;Developers submit pull requests faster than reviewers can process them.&lt;/p&gt;

&lt;p&gt;A typical PR often goes through several repetitive steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CI builds&lt;/li&gt;
&lt;li&gt;Unit tests&lt;/li&gt;
&lt;li&gt;Linting&lt;/li&gt;
&lt;li&gt;Dependency checks&lt;/li&gt;
&lt;li&gt;Security scanning&lt;/li&gt;
&lt;li&gt;Style comments&lt;/li&gt;
&lt;li&gt;Reviewer assignment&lt;/li&gt;
&lt;li&gt;Documentation validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these tasks require deep architectural thinking, yet they consume valuable engineering time.&lt;/p&gt;

&lt;p&gt;I started wondering:&lt;/p&gt;

&lt;p&gt;What if an AI agent handled the first round of triage automatically?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Workflow
&lt;/h2&gt;

&lt;p&gt;Instead of waiting for a human reviewer, the pipeline lets an AI agent inspect every pull request immediately after CI starts.&lt;/p&gt;

&lt;p&gt;Developer&lt;br&gt;
      │&lt;br&gt;
      ▼&lt;br&gt;
Pull Request Created&lt;br&gt;
      │&lt;br&gt;
      ▼&lt;br&gt;
CI Pipeline Starts&lt;br&gt;
      │&lt;br&gt;
      ▼&lt;br&gt;
AI Agent&lt;br&gt;
 ├── Analyze changed files&lt;br&gt;
 ├── Review commit summary&lt;br&gt;
 ├── Detect risky changes&lt;br&gt;
 ├── Check coding standards&lt;br&gt;
 ├── Explain failing tests&lt;br&gt;
 ├── Suggest fixes&lt;br&gt;
 └── Generate PR summary&lt;br&gt;
      │&lt;br&gt;
      ▼&lt;br&gt;
Human Review&lt;/p&gt;

&lt;p&gt;By the time a reviewer opens the PR, much of the routine analysis is already complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example GitHub Actions Workflow
&lt;/h2&gt;

&lt;p&gt;A simplified workflow might look like this:&lt;/p&gt;

&lt;p&gt;name: AI Pull Request Review&lt;/p&gt;

&lt;p&gt;on:&lt;br&gt;
  pull_request:&lt;br&gt;
    types: [opened, synchronize]&lt;/p&gt;

&lt;p&gt;jobs:&lt;br&gt;
  ai-review:&lt;br&gt;
    runs-on: ubuntu-latest&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;steps:
  - uses: actions/checkout@v4

  - name: Run Tests
    run: npm test

  - name: Run Linter
    run: npm run lint

  - name: AI PR Analysis
    run: ./scripts/ai-review.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The AI step can analyze:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test failures&lt;/li&gt;
&lt;li&gt;Lint violations&lt;/li&gt;
&lt;li&gt;Changed files&lt;/li&gt;
&lt;li&gt;Security findings&lt;/li&gt;
&lt;li&gt;Dependency updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;before publishing a review comment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example AI Output
&lt;/h2&gt;

&lt;p&gt;Instead of showing raw CI logs, the agent can produce something more useful:&lt;/p&gt;

&lt;p&gt;Summary&lt;/p&gt;

&lt;p&gt;• 12 files modified&lt;br&gt;
• 1 failing test&lt;br&gt;
• 2 lint issues&lt;br&gt;
• Medium-risk dependency update&lt;/p&gt;

&lt;p&gt;Suggested Fixes&lt;/p&gt;

&lt;p&gt;✓ Replace deprecated API usage&lt;br&gt;
✓ Remove unused imports&lt;br&gt;
✓ Update failing snapshot&lt;br&gt;
✓ Consider pinning dependency version&lt;/p&gt;

&lt;p&gt;This gives reviewers context immediately instead of asking them to sift through build logs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-Triaging Pull Requests
&lt;/h2&gt;

&lt;p&gt;One feature I found surprisingly useful was automatic categorization.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend&lt;/li&gt;
&lt;li&gt;Backend&lt;/li&gt;
&lt;li&gt;Infrastructure&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Dependencies&lt;/li&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on the files changed, the agent can apply labels automatically.&lt;/p&gt;

&lt;p&gt;That makes routing reviews much easier, especially in larger engineering teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling Common Failures
&lt;/h2&gt;

&lt;p&gt;Many failed builds aren't complex engineering problems.&lt;/p&gt;

&lt;p&gt;They're things like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Formatting&lt;/li&gt;
&lt;li&gt;Missing imports&lt;/li&gt;
&lt;li&gt;Broken snapshots&lt;/li&gt;
&lt;li&gt;Dependency version conflicts&lt;/li&gt;
&lt;li&gt;Typographical mistakes&lt;/li&gt;
&lt;li&gt;Simple test failures&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These are often fixable without human intervention.&lt;/p&gt;

&lt;p&gt;Instead of merely reporting the issue, an AI agent can suggest a patch—or even open a follow-up commit for review, depending on your team's policies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Humans in Control
&lt;/h2&gt;

&lt;p&gt;One lesson became clear very quickly.&lt;/p&gt;

&lt;p&gt;AI should assist reviews—not approve production code on its own.&lt;/p&gt;

&lt;p&gt;For our experiments, the guardrails were straightforward:&lt;/p&gt;

&lt;p&gt;AI never merged pull requests&lt;br&gt;
AI never bypassed branch protection&lt;br&gt;
Security approvals remained manual&lt;br&gt;
Production deployments still required human approval&lt;/p&gt;

&lt;p&gt;That balance preserved trust while still saving time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI Added the Most Value
&lt;/h2&gt;

&lt;p&gt;The biggest improvements weren't in writing code.&lt;/p&gt;

&lt;p&gt;They were in reducing repetitive operational work.&lt;/p&gt;

&lt;p&gt;The agent consistently helped by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explaining CI failures&lt;/li&gt;
&lt;li&gt;Summarizing pull requests&lt;/li&gt;
&lt;li&gt;Highlighting risky files&lt;/li&gt;
&lt;li&gt;Surfacing security findings&lt;/li&gt;
&lt;li&gt;Suggesting obvious fixes&lt;/li&gt;
&lt;li&gt;Reducing reviewer context switching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those small improvements compound over dozens of pull requests each week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;I don't think the future of CI/CD is simply "AI writes more code."&lt;/p&gt;

&lt;p&gt;I think it's AI removing friction throughout the software delivery lifecycle.&lt;/p&gt;

&lt;p&gt;That includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smarter pull request triage&lt;/li&gt;
&lt;li&gt;Intelligent deployment validation&lt;/li&gt;
&lt;li&gt;Automated rollback recommendations&lt;/li&gt;
&lt;li&gt;Infrastructure change analysis&lt;/li&gt;
&lt;li&gt;Security-aware code reviews&lt;/li&gt;
&lt;li&gt;Context-rich incident summaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Several engineering platforms—including GitHub, GitLab, Harness, and newer AI-native platforms like &lt;a href="https://revolte.ai/" rel="noopener noreferrer"&gt;Revolte&lt;/a&gt; are moving in this direction by embedding AI deeper into software delivery workflows rather than treating it as a standalone coding assistant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The most successful AI workflows I've seen don't try to replace engineers.&lt;/p&gt;

&lt;p&gt;They remove the repetitive work that slows engineers down.&lt;/p&gt;

&lt;p&gt;If an AI agent can save reviewers from digging through CI logs, identifying obvious issues, and manually categorizing pull requests, that's time the team can spend on architecture, design, and solving customer problems.&lt;/p&gt;

&lt;p&gt;For me, that's where AI belongs inside CI/CD—not making every decision, but helping engineering teams move faster with better context and fewer interruptions.&lt;/p&gt;

&lt;p&gt;How is your team using AI in CI/CD today? Is it limited to code generation, or have you started automating PR reviews, triage, and delivery workflows?&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cicd</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
