<?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: Maciej Pieniak</title>
    <description>The latest articles on DEV Community by Maciej Pieniak (@m_pieniak).</description>
    <link>https://dev.to/m_pieniak</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%2F3779501%2F86dd4850-5188-47ac-8e57-8f6b5fcb4e8b.png</url>
      <title>DEV Community: Maciej Pieniak</title>
      <link>https://dev.to/m_pieniak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/m_pieniak"/>
    <language>en</language>
    <item>
      <title>I Delayed Multi-Model Orchestration. Then the Economics Changed.</title>
      <dc:creator>Maciej Pieniak</dc:creator>
      <pubDate>Mon, 13 Jul 2026 17:14:12 +0000</pubDate>
      <link>https://dev.to/m_pieniak/i-delayed-multi-model-orchestration-then-the-economics-changed-mlc</link>
      <guid>https://dev.to/m_pieniak/i-delayed-multi-model-orchestration-then-the-economics-changed-mlc</guid>
      <description>&lt;h1&gt;
  
  
  I Delayed Multi-Model Orchestration. Then the Economics Changed.
&lt;/h1&gt;

&lt;p&gt;In my &lt;a href="https://dev.to/m_pieniak/coding-with-ai-agents-between-high-throughput-and-code-quality-136g"&gt;previous article&lt;/a&gt;, I described how AI coding agents can generate software quickly while quality is maintained by the process: tests, CI, quality gates, review and human decisions.&lt;/p&gt;

&lt;p&gt;At that time, I was still thinking mostly in terms of one provider and one primary coding agent.&lt;/p&gt;

&lt;p&gt;I deliberately postponed advanced orchestration. Not because I considered it useless, but because the extra complexity did not yet seem justified. Every additional model means more configuration, more failure modes, more logs and more routing decisions.&lt;/p&gt;

&lt;p&gt;For a while, one strong model was easier.&lt;/p&gt;

&lt;p&gt;Then the economics changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  One premium model for every task is wasteful
&lt;/h2&gt;

&lt;p&gt;A coding workflow includes very different kinds of work: reading a repository, planning, implementing changes, generating tests, reviewing diffs, debugging failures and updating documentation.&lt;/p&gt;

&lt;p&gt;These tasks do not require the same level of reasoning.&lt;/p&gt;

&lt;p&gt;Using the most capable and expensive model for every step is like assigning a senior architect to every minor maintenance task. It works, but it does not scale economically.&lt;/p&gt;

&lt;p&gt;The key question stopped being:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which model is the best?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It became:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which model is good enough for this step?&lt;/p&gt;
&lt;/blockquote&gt;

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

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

&lt;p&gt;My workflow is becoming a small multi-model production system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Codex / OpenAI&lt;/strong&gt; coordinates work in the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt; is the default worker for fast and repetitive tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek V4 Pro&lt;/strong&gt; is the escalation path for harder implementation or reasoning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.1 Pro Preview&lt;/strong&gt; can provide a second review or another perspective.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenRouter&lt;/strong&gt; provides routing, provider selection, logs and cost telemetry.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is no longer a single AI assistant. It is closer to a small team of specialized models.&lt;/p&gt;

&lt;p&gt;A recent test produced 57 requests, 344K tokens and a total cost of about $0.22. The cache hit rate was only 4.3%, so there is still room for optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Routing matters more than the model list
&lt;/h2&gt;

&lt;p&gt;A multi-model setup can easily become a model zoo. The goal is not to connect as many providers as possible, but to define roles and escalation rules.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task enters the workflow
        |
        v
Flash model handles the default path
        |
        +--&amp;gt; result passes validation --&amp;gt; continue
        |
        +--&amp;gt; failure, uncertainty or high-risk change
                    |
                    v
             Pro model escalation
                    |
                    +--&amp;gt; optional second review
                    |
                    v
             quality gates and human decision
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The cheaper model is not trusted blindly. Tests, static analysis, architecture guards and review determine whether its output can move forward.&lt;/p&gt;

&lt;p&gt;This follows the same principle I used earlier:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The agent may generate the change, but the pipeline decides whether the change is acceptable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Orchestration adds one more rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The router decides which agent should attempt the task first.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why I waited too long
&lt;/h2&gt;

&lt;p&gt;My earlier concern was technical complexity. The new pressure is operational cost.&lt;/p&gt;

&lt;p&gt;Agentic workflows are chains of calls. One request may trigger planning, implementation, testing, review, correction and documentation. Even when every call is affordable, the complete workflow can become expensive.&lt;/p&gt;

&lt;p&gt;At that scale, routing is no longer a luxury. It becomes part of system design.&lt;/p&gt;

&lt;p&gt;The architecture must balance quality, latency, cost, provider availability, context size, retries and auditability.&lt;/p&gt;

&lt;p&gt;The best model should still be used—but only where its additional capability creates real value.&lt;/p&gt;

&lt;h2&gt;
  
  
  From choosing models to managing production
&lt;/h2&gt;

&lt;p&gt;I no longer want to select one model for the entire workflow.&lt;/p&gt;

&lt;p&gt;I want to manage a portfolio of models, each with a defined role, budget and escalation path.&lt;/p&gt;

&lt;p&gt;The human role changes as well. The work becomes less about prompting one assistant and more about designing the production system: classifying tasks, setting routing rules, controlling budgets, observing failures and deciding when escalation is justified.&lt;/p&gt;

&lt;p&gt;That is why orchestration now feels like the natural next step after quality gates and CI.&lt;/p&gt;

&lt;p&gt;First, I learned how to control the output of coding agents.&lt;/p&gt;

&lt;p&gt;Now I am learning how to control which agent receives the task in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;For small experiments, one powerful model is often enough.&lt;/p&gt;

&lt;p&gt;For continuous agentic software development, it may be the most expensive possible default.&lt;/p&gt;

&lt;p&gt;The future is probably not one best model.&lt;/p&gt;

&lt;p&gt;It is a well-managed system in which several models cooperate under clear technical, quality and economic constraints.&lt;/p&gt;

&lt;p&gt;How are you approaching this today: one trusted model, manual switching, or automated routing?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>devops</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Hello DEV Community — I’m Maciej, writing about AI, software processes and digital transformation</title>
      <dc:creator>Maciej Pieniak</dc:creator>
      <pubDate>Sun, 05 Jul 2026 11:52:05 +0000</pubDate>
      <link>https://dev.to/m_pieniak/hello-dev-community-im-maciej-writing-about-ai-software-processes-and-digital-transformation-1iin</link>
      <guid>https://dev.to/m_pieniak/hello-dev-community-im-maciej-writing-about-ai-software-processes-and-digital-transformation-1iin</guid>
      <description>&lt;p&gt;Hi DEV Community,&lt;/p&gt;

&lt;p&gt;I’m Maciej Pieniak, a business and systems analyst from Poland, working at the intersection of business processes, software development and digital transformation.&lt;/p&gt;

&lt;p&gt;My professional background comes from IT projects in areas such as public sector, logistics, banking, telecom and web systems. Over time, my focus has naturally moved toward AI, automation and the question that I find especially interesting:&lt;/p&gt;

&lt;p&gt;How can AI support real work without turning the whole process into a very expensive magic trick?&lt;/p&gt;

&lt;p&gt;I write about AI from a practical and analytical perspective — not only as a technology trend, but as a change in how we define requirements, design processes, build software and make decisions.&lt;/p&gt;

&lt;p&gt;Recently, I have also been exploring AI agents in software development, including how they affect throughput, code quality, architecture, testing and the role of the human operator in the process.&lt;/p&gt;

&lt;p&gt;On DEV, I plan to share notes and articles about:&lt;/p&gt;

&lt;p&gt;AI agents and software development workflows&lt;br&gt;
business and systems analysis in the age of AI&lt;br&gt;
process automation and digital transformation&lt;br&gt;
practical lessons from building and reviewing AI-supported solutions&lt;br&gt;
the gap between AI hype and real implementation work&lt;/p&gt;

&lt;p&gt;I’m here to learn, exchange ideas and share observations from the perspective of someone who likes asking: “OK, but how does this process actually work?”&lt;/p&gt;

&lt;p&gt;Happy to join the community.&lt;/p&gt;

&lt;h1&gt;
  
  
  introduction
&lt;/h1&gt;

</description>
      <category>introduction</category>
    </item>
    <item>
      <title>Coding with AI Agents: Between High Throughput and Code Quality</title>
      <dc:creator>Maciej Pieniak</dc:creator>
      <pubDate>Sat, 27 Jun 2026 17:28:58 +0000</pubDate>
      <link>https://dev.to/m_pieniak/coding-with-ai-agents-between-high-throughput-and-code-quality-136g</link>
      <guid>https://dev.to/m_pieniak/coding-with-ai-agents-between-high-throughput-and-code-quality-136g</guid>
      <description>&lt;p&gt;Recently, I had to present the results of my work in a formal way, so I decided to share the material with a broader group of readers.&lt;/p&gt;

&lt;p&gt;Coding with AI agents can move very fast. The challenge is not code generation itself, but maintaining code quality, consistency and control over the process.&lt;/p&gt;

&lt;p&gt;Based on one of my projects — Project Venom — I prepared a practical summary showing that high throughput with AI agents can be combined with code quality control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources and supplementary data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Project Venom repository: &lt;a href="https://github.com/mpieniak01/Venom" rel="noopener noreferrer"&gt;https://github.com/mpieniak01/Venom&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Research summary: &lt;a href="https://research.strefa.org/" rel="noopener noreferrer"&gt;https://research.strefa.org/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is being developed with the use of AI coding agents, and its final state looked as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;technology stack: Python 73.1%, TypeScript 24.9%, Shell 1.0%, Makefile 0.5%, JavaScript 0.3%, CSS 0.2%,&lt;/li&gt;
&lt;li&gt;coding supported by AI agents: 138,011 LOC,&lt;/li&gt;
&lt;li&gt;repository activity: 1,587 commits,&lt;/li&gt;
&lt;li&gt;quality: reduction from 1,650 issues in the first SonarQube measurement to 0 issues,&lt;/li&gt;
&lt;li&gt;test coverage: 92.2%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion:&lt;/p&gt;

&lt;p&gt;AI agents increase throughput, but code quality is maintained by the process: pre-commit, CI, quality gate and review performed by AI agents and a human.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data shows three phases of work
&lt;/h2&gt;

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

&lt;p&gt;The quality and code flow chart shows three phases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase I — intensive coding
&lt;/h2&gt;

&lt;p&gt;In the first phase, AI agents generated a large part of the code. Quality validation mainly covered unit tests. This made it possible to quickly expand the scope of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase II — raising the quality bar
&lt;/h2&gt;

&lt;p&gt;In the second phase, quality control was tightened. Connecting SonarQube showed 1,650 quality issues. This was the moment of transition from fast generation to controlled code cleanup.&lt;/p&gt;

&lt;p&gt;In this phase, local hard pre-commit gates were created. They included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;static code validation,&lt;/li&gt;
&lt;li&gt;checking code coverage with tests,&lt;/li&gt;
&lt;li&gt;architecture drift control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent could not complete the task without passing the quality gates. Code generated by AI did not go directly into the repository. It first had to pass a local filter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase III — stabilization and quality maintenance
&lt;/h2&gt;

&lt;p&gt;In the third phase, the process was already stabilized by pre-commit, CI, SonarQube / SonarCloud and review performed by AI agents and a human. Quality was not checked only at the end; it was maintained during the work.&lt;/p&gt;

&lt;p&gt;The final result: 0 issues and 92.2% test coverage, expressed in more than 5,000 unit tests. At the same time, the testing procedure was not supposed to exceed 10 minutes — as an assumption for a correct test pass.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the workflow worked
&lt;/h2&gt;

&lt;p&gt;AI agents supported execution: planning the change, implementation, refactoring, generating tests, analyzing errors and updating documentation.&lt;/p&gt;

&lt;p&gt;However, they did not take over boundary decisions. The human still defined the goal and scope, accepted the architecture, and decided on merge, deployment and risk.&lt;/p&gt;

&lt;p&gt;The key workflow was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Human defines the goal
   ↓
AI agent helps prepare the plan and implementation
   ↓
Pre-commit checks the change locally
   ↓
GitHub Actions runs CI
   ↓
SonarQube / SonarCloud evaluates quality
   ↓
Pull request goes to review by AI agents and a human
   ↓
Merge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key points&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The first quality gate was local. Pre-commit scripts, prepared with the help of AI agents, ran static code validation, basic quality rules, local tests and an initial coverage check. A commit was possible only after a green result.&lt;/li&gt;
&lt;li&gt;After pushing to GitHub, the second control layer started: GitHub Actions and pull request review. The pipeline worked like a set of automated reviewers, supported in pull requests by AI code review tools such as CodeRabbit, Copilot code review and Gemini Code Assist. It included, among others, backend tests, frontend linting, a quick validator, OpenAPI contract checks, architecture guards, forbidden path checks and documentation validation.&lt;/li&gt;
&lt;li&gt;The next layer was SonarQube / SonarCloud. Its role was not to create a report after the fact. It was a quality gate: it checked whether new issues appeared, whether technical debt was growing, whether the code was becoming too complex, whether test coverage was falling and whether the change degraded the state of the project.&lt;/li&gt;
&lt;li&gt;Why this model worked&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The model worked because it combined three elements.&lt;/p&gt;

&lt;p&gt;First: the throughput of AI agents.&lt;br&gt;
Agents accelerated the transition from idea to working change. They helped with analysis, implementation, refactoring, tests and documentation.&lt;br&gt;
Second: automated quality control.&lt;br&gt;
Pre-commit, CI, guards, tests and SonarQube created a system of gates. The agent could generate code, but it could not decide on its own that the code was ready.&lt;br&gt;
Third: human decision loops.&lt;br&gt;
The human retained control over the goal, scope, architecture, change acceptance and risk.&lt;/p&gt;

&lt;p&gt;In short:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI generates and proposes.&lt;/li&gt;
&lt;li&gt;Pre-commit catches basic errors.&lt;/li&gt;
&lt;li&gt;CI checks the change in the repository.&lt;/li&gt;
&lt;li&gt;SonarQube evaluates quality.&lt;/li&gt;
&lt;li&gt;The human makes the decision.&lt;/li&gt;
&lt;li&gt;This is the core of the approach.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What other teams can take from this&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For teams starting work with coding agents, the most important question is not: “Which AI agent is the best?”. The word “best” changes from day to day.&lt;/p&gt;

&lt;p&gt;A better question is:&lt;/p&gt;

&lt;p&gt;How do we prepare a process that can safely accept code generated by AI agents?&lt;/p&gt;

&lt;p&gt;A minimal starting set:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub repository,&lt;/li&gt;
&lt;li&gt;pull requests,&lt;/li&gt;
&lt;li&gt;pre-commit,&lt;/li&gt;
&lt;li&gt;unit tests,&lt;/li&gt;
&lt;li&gt;GitHub Actions,&lt;/li&gt;
&lt;li&gt;SonarQube / SonarCloud,&lt;/li&gt;
&lt;li&gt;instructions for agents,&lt;/li&gt;
&lt;li&gt;tasks for the agent,&lt;/li&gt;
&lt;li&gt;review: AI agents and a human.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI coding without a pipeline is a fast experiment. AI coding with a pipeline becomes a controlled software development process.&lt;/p&gt;

&lt;p&gt;The most important experience from Project Venom:&lt;/p&gt;

&lt;p&gt;A properly designed process makes it possible to combine high throughput from AI agents with a real improvement in code quality.&lt;/p&gt;

&lt;p&gt;The agent can write code, but the pipeline must decide whether that code moves forward.&lt;/p&gt;

&lt;h3&gt;
  
  
  Question
&lt;/h3&gt;

&lt;p&gt;How do you organize work with AI coding agents?&lt;/p&gt;

&lt;p&gt;Do you treat them mainly as assistants in the IDE, or already as participants in the process with their own instructions, guards and quality gates?&lt;/p&gt;

&lt;p&gt;I would be happy to compare approaches.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disclosure
&lt;/h3&gt;

&lt;p&gt;AI support in the article; presentation graphics. Data cited from the knowledge base.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>github</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
