<?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: MAURIZIO ARGONETO</title>
    <description>The latest articles on DEV Community by MAURIZIO ARGONETO (@margoneto).</description>
    <link>https://dev.to/margoneto</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%2F3777379%2F2cd3d65a-bce3-4661-a120-23b2ba8078b2.jpg</url>
      <title>DEV Community: MAURIZIO ARGONETO</title>
      <link>https://dev.to/margoneto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/margoneto"/>
    <language>en</language>
    <item>
      <title>Building a smart greenhouse in the woods: the architectural experiment of DevFest Basilicata - DevF{or}est</title>
      <dc:creator>MAURIZIO ARGONETO</dc:creator>
      <pubDate>Wed, 12 Aug 2026 15:38:40 +0000</pubDate>
      <link>https://dev.to/margoneto/building-a-smart-greenhouse-in-the-woods-the-architectural-experiment-of-devfest-basilicata--15j</link>
      <guid>https://dev.to/margoneto/building-a-smart-greenhouse-in-the-woods-the-architectural-experiment-of-devfest-basilicata--15j</guid>
      <description>&lt;p&gt;_By Maurizio Argoneto and Francesco di Donato &lt;a class="mentioned-user" href="https://dev.to/francesco_didonato_d1f65"&gt;@francesco_didonato_d1f65&lt;/a&gt; _&lt;/p&gt;

&lt;p&gt;How do you organize a tech conference that isn't just the usual sequence of slides in a dark hotel room? GDG Basilicata answered that question by bringing 66 developers to &lt;em&gt;La Majonica&lt;/em&gt;, a forest in the municipality of Tito (PZ, Italy), for the third edition of DevFest — rebranded for the day as &lt;strong&gt;"DevForest"&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But the real innovation wasn't just the location. The event broke the classic format by introducing a single, fascinating constraint: &lt;strong&gt;technical interdependence&lt;/strong&gt;. Instead of isolated workshops, the entire day had one global goal — build a working &lt;strong&gt;smart greenhouse&lt;/strong&gt;, live, piece by piece, across different teams.&lt;/p&gt;

&lt;p&gt;Here's how we merged Botany, IoT, 3D Printing, Cloud computing, and Generative AI into a single, functioning pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤝 Talks as "integration contracts"
&lt;/h2&gt;

&lt;p&gt;The morning was dedicated to five 30-minute talks. These weren't just theoretical presentations — they were actual technical &lt;em&gt;contracts&lt;/em&gt;: each speaker handed over the exact specifications (JSON formats, endpoints, physical tolerances) that their group had to respect during the afternoon Build Sprint, so the whole system could talk to itself.&lt;/p&gt;

&lt;p&gt;The 5 pillars of our ecosystem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Botany&lt;/strong&gt; (Francesco Albanese) — Biology before code. He defined the plant's vital thresholds (soil moisture, air temperature), which became the conditional logic of our software, and made the case for why IoT actually matters for energy and water conservation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Electronics / IoT&lt;/strong&gt; (Soumaya Erradi) — The "nervous system". Using an &lt;code&gt;ESP32&lt;/code&gt; microcontroller, a &lt;code&gt;DHT11&lt;/code&gt; sensor, and a capacitive soil sensor, the team wrote the C++ firmware to read environmental data and drive a water pump relay.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;3D Fabrication&lt;/strong&gt; (Luigi Tuccillo) — The "armor". Bare hardware doesn't survive in a greenhouse. Using Tinkercad and AI-assisted modeling, the team designed and printed a PETG case (heat- and moisture-resistant) with tolerances tight enough to properly house the ESP32.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloud &amp;amp; Data&lt;/strong&gt; (Gregorio Palamà) — The "brain". A serverless Cloud Function on Firebase evaluated incoming data and made irrigation decisions by querying Gemini.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;App &amp;amp; Generative AI&lt;/strong&gt; (Mike Trizio) — The "voice". A dashboard built in &lt;strong&gt;Angular&lt;/strong&gt; to show real-time data and let users ask, by voice, &lt;em&gt;"How is the plant doing?"&lt;/em&gt; — and get an empathetic answer read back via text-to-speech.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🏗️ The real architecture (spoiler: not everything went 100% smoothly)
&lt;/h2&gt;

&lt;p&gt;For the Dev.to crowd, here's the juicy part. IoT always looks easy in online tutorials — things change when you're in a forest with limited connectivity.&lt;/p&gt;

&lt;p&gt;We ruled out a &lt;em&gt;push&lt;/em&gt; model from the Cloud to the ESP32: the device wasn't exposed to the internet, and there was no way to configure NAT/firewall rules out in the woods. So the architecture we actually shipped in the afternoon was built around &lt;strong&gt;polling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The final stack:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ESP32 → Spring Boot API Gateway (Cloud Run) → External Firestore → Angular App
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system handled 4 parallel flows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Telemetry&lt;/strong&gt; — The ESP32 sent POST requests to the Java gateway, which performed an &lt;em&gt;upsert&lt;/em&gt; of the telemetry data (humidity, temperature) into Firestore.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manual command&lt;/strong&gt; — The user clicked a button on the Angular app, sending a command to the Gateway.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chat with Gemini&lt;/strong&gt; — The Angular app built a dynamic prompt by injecting live sensor data and sent it to Gemini to generate a conversational response about the plant's health.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scheduled automation&lt;/strong&gt; — A Firebase Node.js (TypeScript) Function ran every hour. It applied a pre-filter (e.g. soil moisture &lt;code&gt;&amp;lt; 40%&lt;/code&gt;), passed 48 hours of historical data to Gemini in a batch, and forced the output to match a structured &lt;strong&gt;Zod&lt;/strong&gt; schema (&lt;code&gt;shouldWater&lt;/code&gt;, &lt;code&gt;durationSeconds&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;). If the answer was positive, it queued the command on the Gateway.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The polling trick and the in-memory queue
&lt;/h3&gt;

&lt;p&gt;To get the irrigation command to the physical pump, the ESP32 sent a &lt;code&gt;GET /adjustments&lt;/code&gt; request to the Spring Boot Gateway at regular intervals. The Gateway kept an in-memory command queue (a &lt;code&gt;ConcurrentHashMap&lt;/code&gt; of &lt;code&gt;ConcurrentLinkedQueue&lt;/code&gt;). Once read, the command was removed — &lt;em&gt;exactly-once delivery&lt;/em&gt; — and executed by the pump.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 Retrospective: what worked and what "exploded"
&lt;/h2&gt;

&lt;p&gt;The best part of building things live is the evening retrospective — held, literally, around a campfire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The big wins:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Separation of concerns.&lt;/strong&gt; Because the JSON contracts were nailed down in the morning, teams could work in parallel. If the Cloud team got stuck, the IoT team just kept testing against mocked data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The dual use of Gemini.&lt;/strong&gt; Using AI for two completely different jobs — a creative, natural-language response on the frontend, and an algorithmic decision constrained by a Zod schema on the backend — turned out to be a winning combination.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical debt (don't repeat this in prod):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The in-memory queue.&lt;/strong&gt; A RAM &lt;code&gt;HashMap&lt;/code&gt; for the command queue is perfect for a hackathon and disastrous for scalability. If the Cloud Run instance restarted (or scaled out), commands were simply lost. For v2, the plan is to move the queue to a Firestore collection (&lt;code&gt;pendingCommands&lt;/code&gt;) or to Cloud Tasks / Pub/Sub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Polling latency.&lt;/strong&gt; Being a pull system, there was a noticeable delay between the AI's decision and the actual pump activation, dictated by the ESP32's polling cycle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tricky IAM permissions.&lt;/strong&gt; Firestore lived in a different Google Cloud project than Cloud Run. Without explicitly granting the &lt;code&gt;roles/datastore.user&lt;/code&gt; role to the service account, the system failed silently with &lt;code&gt;PERMISSION_DENIED&lt;/code&gt; errors.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📹 Event coverage &amp;amp; video references
&lt;/h2&gt;

&lt;p&gt;The DevForest experiment caught the attention of both local media and the tech community. Worth a look if you want to see the greenhouse — and the woods — in action: &lt;a href="https://devfest.gdgbasilicata.it/" rel="noopener noreferrer"&gt;Web site&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Conclusion
&lt;/h2&gt;

&lt;p&gt;As Maurizio Argoneto put it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The day was focused on nature and technology — we had the opportunity to experience, through talks and labs, what it means not just to design, but to practically build something real. We did this with 3D-printed elements, sensors capable of reading a plant's vital state, all the way to transforming this data in the cloud and designing an app for monitoring and interaction."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The success of DevFest Basilicata didn't hinge on which libraries were used — it hinged on forcing different teams to depend on each other in an environment with real physical and network constraints. It was the physical embodiment of what it actually means to build and maintain distributed software.&lt;/p&gt;

&lt;p&gt;If you want to replicate the project, the entire Spring Boot gateway code is open source, and you can test it with the Firebase CLI and a simple ESP32.&lt;/p&gt;

&lt;p&gt;See you at the next DevFest! (Hopefully with a persistent message queue 🚀)&lt;br&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devfest</category>
      <category>iot</category>
      <category>cloud</category>
    </item>
    <item>
      <title>From Code Smells to Strategy Spells - Directing AI with Human Judgment</title>
      <dc:creator>MAURIZIO ARGONETO</dc:creator>
      <pubDate>Mon, 13 Apr 2026 14:49:30 +0000</pubDate>
      <link>https://dev.to/margoneto/from-code-smells-to-strategy-spells-directing-ai-with-human-judgment-e5c</link>
      <guid>https://dev.to/margoneto/from-code-smells-to-strategy-spells-directing-ai-with-human-judgment-e5c</guid>
      <description>&lt;p&gt;In 2026, the question is no longer whether AI can code. It already does. Your new "Junior AI" coworker is tireless, never complains about long meetings, and can write 5,000 lines of code in a second. It has read every architecture book and knows every design pattern by heart, from Strategy to Repository.&lt;/p&gt;

&lt;p&gt;But there is a trap. AI knows how to &lt;strong&gt;apply&lt;/strong&gt; a pattern, but it doesn't know &lt;strong&gt;when&lt;/strong&gt; — and more importantly, &lt;strong&gt;when not&lt;/strong&gt; — to apply it. Without human judgment, AI suffers from "algorithmic over-zealousness." It will build a rocket just to go to the supermarket, leaving you with a 300-line "elegant" disaster for a problem that only needed 50 lines of simple code.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;AI knows how to apply a pattern, but it doesn't know when — or when not — to apply it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The $440 Million Warning: Knight Capital
&lt;/h2&gt;

&lt;p&gt;Technical debt is often dismissed as an aesthetic problem, but history tells a different story. On August 1, 2012, Knight Capital lost &lt;strong&gt;$440 million in just 45 minutes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The cause? A combination of "dead code" left festering in production for eight years and the reuse of a simple variable flag. A cosmetic-level mistake triggered an architectural monster. The lesson is clear: &lt;strong&gt;technical debt is a fatal business risk&lt;/strong&gt;, and AI, in its rush to "clean up," can easily trigger these dormant disasters if it lacks context.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Compass for Technical Debt: The 3-Level Framework
&lt;/h2&gt;

&lt;p&gt;To direct AI effectively, we must first categorize the "smell." This is a practical 3-level diagnostic framework:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5778scvikxy6ud8c7kwp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5778scvikxy6ud8c7kwp.png" alt=" " width="800" height="588"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig. 1 — The 3-Level Code Smell Framework with Impact Scores&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Level 1: Cosmetic
&lt;/h3&gt;

&lt;p&gt;Magic numbers and unclear names (e.g., &lt;code&gt;msg[:160]&lt;/code&gt;). These require simple renames or constants. &lt;strong&gt;Patterns are never needed here.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Level 2: Structural
&lt;/h3&gt;

&lt;p&gt;Duplicated logic or 200-line methods. We fix these by extracting private methods. We only introduce patterns &lt;strong&gt;if the logic is guaranteed to grow&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Level 3: Architectural
&lt;/h3&gt;

&lt;p&gt;The "God Class" that does everything. This is where "Strategy Spells" (design patterns) are justified — &lt;strong&gt;but only if the business context allows for the added complexity&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Solution: "Ask First, Code Later"
&lt;/h2&gt;

&lt;p&gt;The secret to clean code in 2026 isn't a better prompt; it's a better workflow. The methodology uses three composable workflows to inject human judgment into the machine:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9x0xcdvs4tycua4ng5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9x0xcdvs4tycua4ng5u.png" alt=" " width="800" height="753"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig. 2 — Human-Guided Agentic Refactoring Workflow (Cursor · Windsurf · GitHub Copilot · Antigravity · any agentic IDE)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Interview (&lt;code&gt;/refactor-interview&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Before touching a single line of code, the AI must ask &lt;strong&gt;6 strategic questions&lt;/strong&gt;. How big is the team? Is the logic stable? If you are a team of three and the logic won't change, the AI is explicitly forbidden from using complex patterns like Strategy or ABC interfaces. We turn advice into hard constraints.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;About the team:&lt;/strong&gt; How many people work on this file? Is it in production?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;About logic stability:&lt;/strong&gt; Will the conditions or cases change? Is this logic duplicated elsewhere?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;About technical requirements:&lt;/strong&gt; Does this need unit testing in isolation? Any non-functional constraints?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The Strategic Scan (&lt;code&gt;/refactor-analyze&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Once context is set, the AI scans the file. It doesn't just list duplications; it assigns &lt;strong&gt;Impact Scores (1–3)&lt;/strong&gt; and maps smell dependencies. It identifies the "root cause" so we don't fix symptoms while leaving the real disaster behind.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Smell&lt;/th&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Impact&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Magic number &lt;code&gt;160&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;L1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Replace with &lt;code&gt;SMS_CHAR_LIMIT&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unclear parameter &lt;code&gt;u&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;L1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Rename to &lt;code&gt;user&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structural duplication&lt;/td&gt;
&lt;td&gt;L2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Branches repeat the same pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;God Class&lt;/td&gt;
&lt;td&gt;L3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Does 5 different things&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  3. Constrained Execution (&lt;code&gt;/refactor-execute&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;The final step is "Controlled Execution." The AI proposes a &lt;strong&gt;3–5 step plan&lt;/strong&gt; with risk estimates. It shows step-by-step diffs and waits for human approval and "green tests" before proceeding. This eliminates the "Black Box" and ensures the AI remains a partner, not a rogue agent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Every pattern introduced requires a comment in the code:&lt;/em&gt;&lt;/p&gt;


&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Pattern: [name] — justification: [specific reason from the interview]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Conclusion: You Are the Pilot
&lt;/h2&gt;

&lt;p&gt;When we compared a "Naive AI" (no context) with an "Interviewed AI" (with context) on the same messy file, the result was undeniable:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5aqa3zq7qlpoabfrydg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5aqa3zq7qlpoabfrydg.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig. 3 — Naive AI vs Interviewed AI: same file, same tests, very different outcomes&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;300 lines of over-engineered complexity vs. &lt;strong&gt;180 lines of clean, maintainable code&lt;/strong&gt;. Both passed the tests, but only one is sustainable for a human team.&lt;/p&gt;

&lt;p&gt;In the age of AI, your value as a Senior Developer has shifted. It is no longer about the speed of your typing, but the &lt;strong&gt;quality of your judgment&lt;/strong&gt;. AI is the engine, but &lt;strong&gt;you are the Pilot&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Remember: Ask first, code later.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Maurizio Argoneto is CTO at Publisys Spa and AWS Community Hero&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>codequality</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
