<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9735706</id><updated>2026-04-03T12:29:39.613+11:00</updated><category term="Tech"/><category term="business"/><category term="Stumbled Upon"/><category term="Software Architecture"/><category term="FOSS"/><category term="SOA"/><category term="Random Thoughts"/><category term="wso2 mashup server"/><category term="AI"/><category term="generative-ai"/><category term="Java"/><category term="wso2 carbon"/><category term="Agile"/><category term="The Biz School Chronicles"/><category term="LLM"/><category term="GNU/Linux"/><category term="mashups"/><category term="wso2 gadget server"/><category term="data-driven"/><category term="DevOps"/><category term="api"/><category term="cybersecurity"/><category term="Rant"/><category term="mash up"/><category term="lifestyle"/><category term="microservices"/><category term="middleware"/><category term="HowTo"/><category term="Leadership"/><category term="Laptop"/><category term="apple"/><category term="Cars"/><category term="AIGovernance"/><category term="EnterpriseAI"/><category term="MachineLearning"/><category term="Privacy"/><category term="SolutionsArchitect"/><category term="node.js"/><category term="Blockchain"/><category term="DataSecurity"/><category term="Hyperledger"/><category term="Hyperledger Composer"/><category term="Hyperledger Fabric"/><category term="Interviewing"/><category term="IoT"/><category term="Johnny Five"/><category term="Pubnub"/><category term="html5"/><category term="kubernetes"/><title type='text'>Conundrum</title><subtitle type='html'>My thoughts on Information Technology in general, Open Source in particular with a dash of Business Management thrown in. &#xa;&#xa;Note to readers (both human and machine) - I started this blog in the year 2004. Some posts are decades old, while others might have been written yesterday. Please note the published date of a post while enjoying its content. Thank you for being here. &quot;Live long and prosper&quot; 🖖. &#xa;&#xa;~ Tyrell</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.tyrell.co/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>370</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9735706.post-4861964854121860053</id><published>2026-03-18T15:29:00.008+11:00</published><updated>2026-03-18T15:36:01.146+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="AIGovernance"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="EnterpriseAI"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="MachineLearning"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="SolutionsArchitect"/><title type='text'>NVIDIA&#39;s Inferencing Chip Launch: Market Validation of the Enterprise AI Strategy I Predicted in January</title><content type='html'>&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;i&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj30UVOrJQdHNoqoVumTyyAiz4qaIvke5kamUDUtTFG6aOUHlZCDhpA1GQ2q4SGVh0szRT_4vrJIymwUse4ArhOjIX9H7ETgZI8Lk_oDtmdv44GxoVP4nXhiNMp9Wp0TM4zeuoIyVqPZpdkTJqKP2Dvpyo-S79RtlkUwOb27S6BX_ldSfZ9QFK4/s2400/vera-rubin.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1500&quot; data-original-width=&quot;2400&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj30UVOrJQdHNoqoVumTyyAiz4qaIvke5kamUDUtTFG6aOUHlZCDhpA1GQ2q4SGVh0szRT_4vrJIymwUse4ArhOjIX9H7ETgZI8Lk_oDtmdv44GxoVP4nXhiNMp9Wp0TM4zeuoIyVqPZpdkTJqKP2Dvpyo-S79RtlkUwOb27S6BX_ldSfZ9QFK4/w400-h250/vera-rubin.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;March 18, 2026&lt;/i&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Seven weeks ago, I &lt;a href=&quot;https://www.tyrell.co/2026/01/ai-training-vs-inferencing-enterprise.html&quot; target=&quot;_blank&quot;&gt;published a blog post arguing that enterprises should focus on AI inferencing rather than training,&lt;/a&gt; based on a casual lunch conversation with fellow architects. Today, NVIDIA&#39;s announcement of their &lt;a href=&quot;https://nvidianews.nvidia.com/news/nvidia-vera-rubin-platform&quot; target=&quot;_blank&quot;&gt;new chip specifically designed for AI inferencing workloads &lt;/a&gt;provides compelling market validation of that thesis.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;This isn&#39;t just another hardware launch. It&#39;s a definitive signal that the AI infrastructure market is bifurcating exactly as I predicted, and enterprises that recognised this shift early are now perfectly positioned for the next phase of AI adoption.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;What NVIDIA&#39;s Move Tells Us About Market Reality&lt;/h2&gt;

&lt;p&gt;When one of the world&#39;s most influential AI infrastructure companies invests in developing dedicated silicon for inferencing, it confirms several critical market dynamics that I outlined in my original analysis:&lt;/p&gt;

&lt;h3&gt;Enterprise Inferencing Demand Has Reached Scale&lt;/h3&gt;

&lt;p&gt;NVIDIA doesn&#39;t develop new chips on speculation. This launch indicates that enterprise demand for optimised inferencing performance has reached sufficient scale to justify the massive R&amp;amp;D investment required for new silicon development.&lt;/p&gt;

&lt;p&gt;In January, I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;&quot;For most enterprise IT departments, the strategic focus should be on inferencing and model consumption rather than large scale model training.&quot;&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The market has spoken, and enterprises globally are clearly following this path, creating enough demand to drive hardware innovation.&lt;/p&gt;

&lt;h3&gt;Performance Optimisation is Now a Competitive Differentiator&lt;/h3&gt;

&lt;p&gt;Real time inferencing performance has evolved from a technical requirement to a business competitive advantage. Organisations that can serve AI predictions faster, more reliably, and at lower cost will outperform those still grappling with infrastructure basics.&lt;/p&gt;

&lt;p&gt;This aligns perfectly with my January prediction about where enterprise value creation occurs:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;&quot;Enterprise Value Creation: Data preparation and feature engineering, Business process integration and workflow automation, User experience and interface design, Governance, compliance, and risk management, Model monitoring and performance optimisation&quot;&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;Infrastructure Specialisation is Accelerating&lt;/h3&gt;

&lt;p&gt;The development of inferencing specific hardware confirms that the &quot;one size fits all&quot; approach to AI infrastructure is over. Training and inferencing require fundamentally different optimisations, and the market is now mature enough to support this specialisation.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Why This Validates My Original Enterprise AI Framework&lt;/h2&gt;

&lt;p&gt;In my January post, I argued that enterprises should focus on four key areas rather than attempting to compete with Big Tech on model training:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;✅ Model Consumption&lt;/b&gt;: Leverage existing foundation models through APIs&lt;br /&gt;
&lt;b&gt;✅ Fine Tuning Excellence&lt;/b&gt;: Customise models for domain specific applications&lt;br /&gt;
&lt;b&gt;✅ Inferencing Infrastructure&lt;/b&gt;: Invest in robust, scalable serving capabilities&lt;br /&gt;
&lt;b&gt;✅ Governance and Compliance&lt;/b&gt;: Build frameworks for responsible AI deployment&lt;/p&gt;

&lt;p&gt;NVIDIA&#39;s inferencing chip directly supports points 2, 3, and 4 by providing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Enhanced fine tuning capabilities&lt;/b&gt; through optimised inference performance&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Superior inferencing infrastructure&lt;/b&gt; with dedicated silicon&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Better governance support&lt;/b&gt; through consistent, auditable performance metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;What This Means for Enterprise Strategy Moving Forward&lt;/h2&gt;

&lt;h3&gt;The Infrastructure Investment Decision is Clearer&lt;/h3&gt;

&lt;p&gt;Seven weeks ago, some enterprises were still debating whether to invest heavily in training infrastructure or focus on inferencing capabilities. NVIDIA&#39;s move settles this debate definitively for most organisations.&lt;/p&gt;

&lt;p&gt;The message is clear: &lt;b&gt;invest in inferencing infrastructure excellence, not training infrastructure competition.&lt;/b&gt;&lt;/p&gt;

&lt;h3&gt;Early Adopters Have a Significant Advantage&lt;/h3&gt;

&lt;p&gt;Organisations that began focusing on inferencing capabilities, governance frameworks, and operational excellence in late 2025 and early 2026 are now positioned to leverage this next wave of specialised infrastructure immediately.&lt;/p&gt;

&lt;p&gt;Those still allocating significant resources to training infrastructure may find themselves at a disadvantage as the market continues to specialise.&lt;/p&gt;

&lt;h3&gt;Cost Efficiency Becomes Strategic&lt;/h3&gt;

&lt;p&gt;With dedicated inferencing hardware available, the enterprises that master cost efficient model serving will have substantial competitive advantages. This reinforces my January emphasis on &quot;Inferencing Cost Optimisation&quot; as a critical enterprise capability.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Looking Forward: The Enterprise AI Maturity Model&lt;/h2&gt;

&lt;p&gt;Based on this market validation, I&#39;m seeing a clear enterprise AI maturity progression:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Stage 1: Experimentation&lt;/b&gt; (2023-2024)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proof of concept projects&lt;/li&gt;
&lt;li&gt;Basic API consumption&lt;/li&gt;
&lt;li&gt;Limited governance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Stage 2: Strategic Focus&lt;/b&gt; (2025-2026)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choose between training vs inferencing investment&lt;/li&gt;
&lt;li&gt;Develop governance frameworks&lt;/li&gt;
&lt;li&gt;Build operational capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Stage 3: Infrastructure Excellence&lt;/b&gt; (2026-2027) &lt;b&gt;← We are here&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimised inferencing infrastructure&lt;/li&gt;
&lt;li&gt;Advanced governance and compliance&lt;/li&gt;
&lt;li&gt;Competitive differentiation through AI performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Stage 4: Business Integration&lt;/b&gt; (2027+)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI native business processes&lt;/li&gt;
&lt;li&gt;Real time decision systems&lt;/li&gt;
&lt;li&gt;Continuous optimisation and evolution&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Key Implications for Solutions Architects&lt;/h2&gt;

&lt;h3&gt;Infrastructure Planning&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Immediate&lt;/b&gt;: Evaluate current inferencing infrastructure against new performance benchmarks&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Short term&lt;/b&gt;: Develop business cases for inferencing specific hardware investments&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Medium term&lt;/b&gt;: Design architectures that can leverage specialised inferencing capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Investment Priorities&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Deprioritise&lt;/b&gt;: Large scale training infrastructure investments&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Maintain&lt;/b&gt;: API consumption and model evaluation capabilities&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Accelerate&lt;/b&gt;: Inferencing optimisation, monitoring, and governance frameworks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Skills Development&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Critical&lt;/b&gt;: Inferencing performance tuning and optimisation&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Important&lt;/b&gt;: Multi model orchestration and management&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Essential&lt;/b&gt;: AI governance and compliance frameworks&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;The Broader Industry Implications&lt;/h2&gt;

&lt;p&gt;NVIDIA&#39;s inferencing chip launch signals several broader trends that will reshape the enterprise AI landscape:&lt;/p&gt;

&lt;h3&gt;Hardware Ecosystem Maturation&lt;/h3&gt;
&lt;p&gt;We can expect other hardware vendors to follow with their own inferencing optimised solutions, creating a competitive market that will drive further innovation and cost reduction.&lt;/p&gt;

&lt;h3&gt;Software Stack Specialisation&lt;/h3&gt;
&lt;p&gt;Infrastructure software will increasingly optimise for inferencing specific workloads, creating more sophisticated orchestration, monitoring, and management capabilities.&lt;/p&gt;

&lt;h3&gt;Service Provider Evolution&lt;/h3&gt;
&lt;p&gt;Cloud providers and managed service vendors will develop inferencing specific offerings, making advanced capabilities accessible to smaller organisations.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Vindication and Forward Momentum&lt;/h2&gt;

&lt;p&gt;The NVIDIA announcement validates the strategic framework I proposed in January, but more importantly, it provides clear direction for enterprise AI investments moving forward.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The key insight remains unchanged&lt;/b&gt;: enterprises should focus their resources on becoming excellent at AI consumption, integration, and governance rather than attempting to compete with Big Tech on foundational infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;What&#39;s new&lt;/b&gt;: The market has now provided dedicated hardware to support this strategy, making the performance and cost benefits even more compelling.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The next challenge&lt;/b&gt;: Organisations must move quickly to capitalise on this infrastructure evolution. Those that continue to debate strategy while others implement inferencing excellence will find themselves increasingly disadvantaged.&lt;/p&gt;

&lt;p&gt;For solutions architects and enterprise IT leaders, the path forward is clear. The question isn&#39;t whether to invest in inferencing capabilities, but how quickly and effectively you can build them.&lt;/p&gt;

&lt;p&gt;The future belongs to organisations that excel at leveraging AI capabilities, not those trying to recreate them.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;385&quot; src=&quot;https://www.youtube.com/embed/ZkPU5GHDqkQ&quot; width=&quot;463&quot; youtube-src-id=&quot;ZkPU5GHDqkQ&quot;&gt;&lt;/iframe&gt;&amp;nbsp;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;i&gt;This post builds on my January analysis: &lt;a href=&quot;https://www.tyrell.co/2026/01/ai-training-vs-inferencing-enterprise.html&quot; target=&quot;_blank&quot;&gt;&quot;AI Training vs Inferencing: An Enterprise Solutions Architect&#39;s Guide to Building Secure, Compliant AI Systems&quot;&lt;/a&gt;. What trends are you seeing in your organisation&#39;s AI infrastructure decisions? I&#39;d love to hear about your experiences in the comments.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4861964854121860053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4861964854121860053'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2026/03/nvidias-inferencing-chip-launch-market.html' title='NVIDIA&#39;s Inferencing Chip Launch: Market Validation of the Enterprise AI Strategy I Predicted in January'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj30UVOrJQdHNoqoVumTyyAiz4qaIvke5kamUDUtTFG6aOUHlZCDhpA1GQ2q4SGVh0szRT_4vrJIymwUse4ArhOjIX9H7ETgZI8Lk_oDtmdv44GxoVP4nXhiNMp9Wp0TM4zeuoIyVqPZpdkTJqKP2Dvpyo-S79RtlkUwOb27S6BX_ldSfZ9QFK4/s72-w400-h250-c/vera-rubin.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-2479496019814233083</id><published>2026-01-29T14:42:00.011+11:00</published><updated>2026-01-29T18:47:59.829+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="AIGovernance"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="DataSecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="EnterpriseAI"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="MachineLearning"/><category scheme="http://www.blogger.com/atom/ns#" term="SolutionsArchitect"/><category scheme="http://www.blogger.com/atom/ns#" term="Tech"/><title type='text'>AI Training vs Inferencing: An Enterprise Solutions Architect&#39;s Guide to Building Secure, Compliant AI Systems</title><content type='html'>&lt;p&gt;As enterprises increasingly adopt artificial intelligence to drive innovation and operational efficiency, understanding the fundamental differences between AI training and inferencing becomes crucial for solutions architects. This distinction isn&#39;t just technical but has profound implications for security, compliance, data governance, and infrastructure architecture in enterprise environments.&lt;/p&gt;

&lt;p&gt;In this post, I&#39;ll break down the key differences between AI training and inferencing from an enterprise perspective, highlighting the critical guardrails and considerations necessary when building AI solutions for large organisations, particularly in regulated industries.&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Understanding the Fundamentals&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;AI Training: Building the Intelligence&lt;/h3&gt;&lt;h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNOu_1l-rj2gOcVecfNTn6k41vaxK96fZ2o17l0m2zX89xthY6vet0iIRlBsTEr3sk00V9_1kyJhMNKOaNx6AZDhMC71EMMTA2j6f32qkbTboSV3qh-y8nTwl0rBGqidJGh5SASWpRxFPzzYz0LEm9zhdOKkZKMWXRtWpOPHWA_I7qPh7zYLUC/s800/ai-training-flow.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;AI Training&lt;/b&gt; is the process of teaching a machine learning model to recognise patterns, make predictions, or generate outputs based on historical data. During training:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large datasets are processed to adjust model parameters&lt;/li&gt;
&lt;li&gt;The model learns from examples and feedback&lt;/li&gt;
&lt;li&gt;Computational resources are heavily utilised for extended periods&lt;/li&gt;
&lt;li&gt;The goal is to optimise model accuracy and performance metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNOu_1l-rj2gOcVecfNTn6k41vaxK96fZ2o17l0m2zX89xthY6vet0iIRlBsTEr3sk00V9_1kyJhMNKOaNx6AZDhMC71EMMTA2j6f32qkbTboSV3qh-y8nTwl0rBGqidJGh5SASWpRxFPzzYz0LEm9zhdOKkZKMWXRtWpOPHWA_I7qPh7zYLUC/s800/ai-training-flow.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNOu_1l-rj2gOcVecfNTn6k41vaxK96fZ2o17l0m2zX89xthY6vet0iIRlBsTEr3sk00V9_1kyJhMNKOaNx6AZDhMC71EMMTA2j6f32qkbTboSV3qh-y8nTwl0rBGqidJGh5SASWpRxFPzzYz0LEm9zhdOKkZKMWXRtWpOPHWA_I7qPh7zYLUC/w640-h640/ai-training-flow.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;AI Inferencing: Applying the Intelligence&lt;/h3&gt;&lt;h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt4Qy-T_VMYmvG3w6jz-54f2N_OWBZ7GUTNiunDG8KE-o4tQGDkhElm-Xr0l04ymtY51NNadPEXg4HgatmGNKjkExA9CXhf3k7ZgBX5hBpdXOHnAaDJCuZJGF29iZW2Tgzz65_v_C2fm2Age2zzEbvnAhFMiuI7cfIGwKGk2Ed9xssQrNuTT18/s800/ai-inferencing.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;AI Inferencing&lt;/b&gt; is the operational phase where a trained model applies its learned knowledge to new, unseen data to make predictions or generate outputs. During inferencing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real time or batch processing of new data inputs&lt;/li&gt;
&lt;li&gt;Pre trained models execute predictions quickly&lt;/li&gt;
&lt;li&gt;Lower computational overhead compared to training&lt;/li&gt;
&lt;li&gt;The focus shifts to latency, throughput, and availability&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt4Qy-T_VMYmvG3w6jz-54f2N_OWBZ7GUTNiunDG8KE-o4tQGDkhElm-Xr0l04ymtY51NNadPEXg4HgatmGNKjkExA9CXhf3k7ZgBX5hBpdXOHnAaDJCuZJGF29iZW2Tgzz65_v_C2fm2Age2zzEbvnAhFMiuI7cfIGwKGk2Ed9xssQrNuTT18/s800/ai-inferencing.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;391&quot; data-original-width=&quot;800&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt4Qy-T_VMYmvG3w6jz-54f2N_OWBZ7GUTNiunDG8KE-o4tQGDkhElm-Xr0l04ymtY51NNadPEXg4HgatmGNKjkExA9CXhf3k7ZgBX5hBpdXOHnAaDJCuZJGF29iZW2Tgzz65_v_C2fm2Age2zzEbvnAhFMiuI7cfIGwKGk2Ed9xssQrNuTT18/w640-h312/ai-inferencing.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;The Enterprise Reality: Focus on Inferencing, Not Training&lt;/h2&gt;

&lt;p&gt;Before diving into the technical considerations, it&#39;s crucial to address a fundamental strategic question: &lt;b&gt;Should your enterprise be building its own AI models from scratch?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;For most enterprise IT departments, the answer is definitively &lt;b&gt;no&lt;/b&gt;. Here&#39;s why:&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCy0D7hS-FNP4NEeDc0IozyNOgKmtDfF959HLzCBnNVmRMWMD06H0u9xTGs-DWDb0s2YKzt_BqoPkAdwH-t9T_r8g51f1aszgw7o5S-w4XwLCof5stDYms8v4VHXNEcVwqiOqd671R_X0uc3wio_KBf6uMUSPoaqaU1pEujyqGNd05Z9Y5xzMp/s800/it-vs-big-tech.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCy0D7hS-FNP4NEeDc0IozyNOgKmtDfF959HLzCBnNVmRMWMD06H0u9xTGs-DWDb0s2YKzt_BqoPkAdwH-t9T_r8g51f1aszgw7o5S-w4XwLCof5stDYms8v4VHXNEcVwqiOqd671R_X0uc3wio_KBf6uMUSPoaqaU1pEujyqGNd05Z9Y5xzMp/w400-h400/it-vs-big-tech.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;Why Enterprises Should Avoid Large-Scale Model Training&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Infrastructure Reality:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Training state of the art models requires thousands of high end GPUs&lt;/li&gt;
&lt;li&gt;Infrastructure costs can range from hundreds of thousands to millions of dollars&lt;/li&gt;
&lt;li&gt;Specialised engineering teams with deep ML expertise are required&lt;/li&gt;
&lt;li&gt;Power consumption and cooling requirements are substantial&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Business Focus Alignment:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enterprise IT exists to serve the core business (banking, insurance, retail, healthcare)&lt;/li&gt;
&lt;li&gt;Your competitive advantage lies in your domain expertise, not in building foundation models&lt;/li&gt;
&lt;li&gt;Resources are better invested in business specific applications and integrations&lt;/li&gt;
&lt;li&gt;Time to market is critical for business solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Market Dynamics:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Companies like OpenAI, Anthropic, Google, and Meta have massive infrastructure investments&lt;/li&gt;
&lt;li&gt;Pre trained models are becoming increasingly sophisticated and accessible&lt;/li&gt;
&lt;li&gt;The cost of using existing models via APIs is often lower than building from scratch&lt;/li&gt;
&lt;li&gt;Rapid innovation in the foundation model space makes internal development risky&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;The Practical Enterprise AI Strategy&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Model Consumption, Not Creation:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leverage existing foundation models through APIs (GPT 4, Claude, Gemini)&lt;/li&gt;
&lt;li&gt;Focus on fine tuning and prompt engineering for your specific use cases&lt;/li&gt;
&lt;li&gt;Invest in model evaluation and selection processes&lt;/li&gt;
&lt;li&gt;Build expertise in model integration and orchestration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Training Where It Makes Sense:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Small, domain specific models for specialised tasks&lt;/li&gt;
&lt;li&gt;Fine tuning existing models with your proprietary data&lt;/li&gt;
&lt;li&gt;Transfer learning from pre trained models&lt;/li&gt;
&lt;li&gt;Custom models for unique business processes where no alternatives exist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Enterprise Value Creation:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data preparation and feature engineering&lt;/li&gt;
&lt;li&gt;Business process integration and workflow automation&lt;/li&gt;
&lt;li&gt;User experience and interface design&lt;/li&gt;
&lt;li&gt;Governance, compliance, and risk management&lt;/li&gt;
&lt;li&gt;Model monitoring and performance optimisation&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Enterprise Considerations: Beyond the Technical&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;1. Data Classification and Governance&lt;/h3&gt;&lt;h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Ogn7wa5PIn0TEyGriqkbj7_eCFmGREdYr7yORY-QnPXum60KHbH2bOOBETrM8Ae-2mScrRh1EQV4I5ALr1oY80gyK8uIRURiWfznnDHlYaPrTDt4VQHiwzATzKsRSsE__OARCgkQ4OnAynyPPznLe7vq70y8V9q-2KUGBdw0r0_mVhnskvlO/s1024/data-classification.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Ogn7wa5PIn0TEyGriqkbj7_eCFmGREdYr7yORY-QnPXum60KHbH2bOOBETrM8Ae-2mScrRh1EQV4I5ALr1oY80gyK8uIRURiWfznnDHlYaPrTDt4VQHiwzATzKsRSsE__OARCgkQ4OnAynyPPznLe7vq70y8V9q-2KUGBdw0r0_mVhnskvlO/w400-h400/data-classification.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Training Phase Challenges (When Applicable):&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fine tuning requires access to curated, domain specific datasets&lt;/li&gt;
&lt;li&gt;Often involves sensitive proprietary data for model customisation&lt;/li&gt;
&lt;li&gt;Data preparation and feature engineering for specialised models&lt;/li&gt;
&lt;li&gt;Model validation and testing with business specific metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;i&gt;Note: Most enterprises will focus on fine tuning pre trained models rather than training from scratch.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Inferencing Phase Challenges:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Processes real time customer data&lt;/li&gt;
&lt;li&gt;Requires immediate access to current business context&lt;/li&gt;
&lt;li&gt;Must maintain data lineage for audit purposes&lt;/li&gt;
&lt;li&gt;Output data may contain derived sensitive information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Enterprise Guardrails:&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Implement data classification frameworks (Public, Internal, Confidential, Restricted)&lt;/li&gt;&lt;li&gt;Establish clear data retention and purging policies for both phases&lt;/li&gt;&lt;li&gt;Deploy data loss prevention (DLP) tools to monitor data movement&lt;/li&gt;&lt;li&gt;Create separate data governance processes for training vs. operational data&lt;/li&gt;&lt;/ol&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;2. Security Architecture Considerations&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Training Environment Security (for Fine Tuning):&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Isolated compute environments for model customisation&lt;/li&gt;
&lt;li&gt;Secure data transfer protocols for proprietary training datasets&lt;/li&gt;
&lt;li&gt;Encryption at rest for custom training data and model artifacts&lt;/li&gt;
&lt;li&gt;Access controls limiting who can initiate fine tuning jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Inferencing Environment Security:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Real time threat detection and response capabilities&lt;/li&gt;
&lt;li&gt;API security and rate limiting for model endpoints&lt;/li&gt;
&lt;li&gt;Input validation and sanitisation to prevent adversarial attacks&lt;/li&gt;
&lt;li&gt;Secure model serving infrastructure with load balancing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Enterprise Security Framework:&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;Training Security Stack:
├── Secure Data Lake/Warehouse
├── Isolated Training Clusters (Air gapped if required)
├── Encrypted Model Storage
└── Audit Logging and Monitoring

Inferencing Security Stack:
├── API Gateway with Authentication/Authorisation
├── WAF and DDoS Protection
├── Runtime Application Self Protection (RASP)
└── Real time Security Monitoring
&lt;/pre&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOdnEb-JHu0zmrC34YWknuXwfADEac8jKNsoT81qGaxyV_jmtWQ_p-7DAYPgAWH0-R2Ld8fZfvHZ9ArZX6875nViGU5_1-OO1i8gqnhUj4mcOy3umf_eJYQnVBbmjWDuwnNMp-avoKPYDDum1pQvhoBU2FeN4-gpJGZ8e2DM3EmMxz4a0GE6JP/s1024/security-architecture.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOdnEb-JHu0zmrC34YWknuXwfADEac8jKNsoT81qGaxyV_jmtWQ_p-7DAYPgAWH0-R2Ld8fZfvHZ9ArZX6875nViGU5_1-OO1i8gqnhUj4mcOy3umf_eJYQnVBbmjWDuwnNMp-avoKPYDDum1pQvhoBU2FeN4-gpJGZ8e2DM3EmMxz4a0GE6JP/w400-h400/security-architecture.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;3. Regulatory Compliance Implications&lt;/h3&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;GDPR and Data Privacy&lt;/h4&gt;
&lt;p&gt;Training Considerations (Fine Tuning Scenarios):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Right to be forgotten requires model retraining or reversion capabilities&lt;/li&gt;
&lt;li&gt;Data minimisation principles affect feature selection for custom models&lt;/li&gt;
&lt;li&gt;Consent management for using personal data in model customisation&lt;/li&gt;
&lt;li&gt;Cross border data transfer restrictions for fine tuning datasets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inferencing Considerations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Real time consent validation for processing personal data&lt;/li&gt;
&lt;li&gt;Purpose limitation ensuring inference aligns with original consent&lt;/li&gt;
&lt;li&gt;Data portability requirements for inference results&lt;/li&gt;
&lt;li&gt;Transparent decision making processes&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOdnEb-JHu0zmrC34YWknuXwfADEac8jKNsoT81qGaxyV_jmtWQ_p-7DAYPgAWH0-R2Ld8fZfvHZ9ArZX6875nViGU5_1-OO1i8gqnhUj4mcOy3umf_eJYQnVBbmjWDuwnNMp-avoKPYDDum1pQvhoBU2FeN4-gpJGZ8e2DM3EmMxz4a0GE6JP/s1024/security-architecture.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Financial Services (SOX, PCI DSS, Basel III)&lt;/h4&gt;
&lt;p&gt;Training Compliance (Fine Tuning Context):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model customisation lifecycle documentation&lt;/li&gt;
&lt;li&gt;Data lineage and transformation tracking for proprietary datasets&lt;/li&gt;
&lt;li&gt;Version control for custom training data and model variants&lt;/li&gt;
&lt;li&gt;Independent validation for fine tuned models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inferencing Compliance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Real time transaction monitoring and alerting&lt;/li&gt;
&lt;li&gt;Explainable AI requirements for credit and lending decisions&lt;/li&gt;
&lt;li&gt;Audit trails for all model predictions&lt;/li&gt;
&lt;li&gt;Stress testing and back testing capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Healthcare (HIPAA, HITECH)&lt;/h4&gt;
&lt;p&gt;Training Safeguards (Fine Tuning Scenarios):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;De identification of PHI before model customisation&lt;/li&gt;
&lt;li&gt;Business Associate Agreements with cloud providers offering fine tuning services&lt;/li&gt;
&lt;li&gt;Secure multi party computation for collaborative model development&lt;/li&gt;
&lt;li&gt;Regular privacy impact assessments for custom model development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inferencing Protections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Patient consent verification before processing&lt;/li&gt;
&lt;li&gt;Minimum necessary standard for data access&lt;/li&gt;
&lt;li&gt;Secure messaging for AI generated insights&lt;/li&gt;
&lt;li&gt;Integration with existing EMR audit systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;4. Infrastructure and Operational Excellence&lt;/h3&gt;

&lt;h4&gt;Resource Management&lt;/h4&gt;
&lt;pre&gt;Training Infrastructure:
* High performance computing clusters
* GPU optimised instances for deep learning
* Distributed storage systems for large datasets
* Batch processing orchestration platforms

Inferencing Infrastructure:
* Low latency serving infrastructure
* Auto scaling capabilities for variable load
* Multi region deployment for disaster recovery
* Edge computing for real time decisions
&lt;/pre&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxxGTyKbWCU0bTuoAD-FxslOZrh9EecAgBW3-HMgKJ9meAkB7jdD_3FIb0PNlIQpygwv5hDjeromgTF9e9Xc4zn4TXooeAQMBJ_ZJ2ehoR72wxkuEXB9j4mnktvaATE5woEHPX9h4jdx6KaK8fu8apahCA6S9cCW_n8FYioWP2DGGlxyz8q09k/s1024/AI-GOVERNANCE.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxxGTyKbWCU0bTuoAD-FxslOZrh9EecAgBW3-HMgKJ9meAkB7jdD_3FIb0PNlIQpygwv5hDjeromgTF9e9Xc4zn4TXooeAQMBJ_ZJ2ehoR72wxkuEXB9j4mnktvaATE5woEHPX9h4jdx6KaK8fu8apahCA6S9cCW_n8FYioWP2DGGlxyz8q09k/w400-h400/AI-GOVERNANCE.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Cost Optimisation Strategies&lt;/h4&gt;
&lt;p&gt;Training Cost Management:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spot instances for non critical training jobs&lt;/li&gt;
&lt;li&gt;Model compression and pruning techniques&lt;/li&gt;
&lt;li&gt;Efficient data pipeline design to reduce preprocessing costs&lt;/li&gt;
&lt;li&gt;Training job scheduling during off peak hours&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inferencing Cost Optimisation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model optimisation for efficient serving&lt;/li&gt;
&lt;li&gt;Caching strategies for repeated queries&lt;/li&gt;
&lt;li&gt;Serverless computing for variable workloads&lt;/li&gt;
&lt;li&gt;Progressive deployment strategies (A/B testing)&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;5. Model Governance and Lifecycle Management&lt;/h3&gt;

&lt;h4&gt;Version Control and Lineage&lt;/h4&gt;
&lt;pre&gt;Training Governance:
├── Dataset versioning and lineage tracking
├── Hyperparameter and configuration management
├── Model performance metrics and validation
└── Automated testing and quality gates

Inferencing Governance:
├── Model deployment pipeline automation
├── A/B testing and canary deployment frameworks
├── Performance monitoring and alerting
└── Rollback and recovery procedures
&lt;/pre&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Monitoring and Observability&lt;/h4&gt;

&lt;p&gt;Training Monitoring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resource utilisation and cost tracking&lt;/li&gt;
&lt;li&gt;Data quality and drift detection&lt;/li&gt;
&lt;li&gt;Training convergence and performance metrics&lt;/li&gt;
&lt;li&gt;Automated failure detection and notification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inferencing Monitoring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Real time performance metrics (latency, throughput)&lt;/li&gt;
&lt;li&gt;Model accuracy and drift detection&lt;/li&gt;
&lt;li&gt;Business metrics and KPI tracking&lt;/li&gt;
&lt;li&gt;Anomaly detection for unusual prediction patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;6. Risk Management Framework&lt;/h3&gt;

&lt;h4&gt;Model Risk Management&lt;/h4&gt;
&lt;pre&gt;Training Risks:
├── Data bias and fairness issues
├── Overfitting and generalisation problems
├── Intellectual property and trade secret exposure
└── Adversarial training data attacks

Inferencing Risks:
├── Model degradation over time
├── Adversarial input attacks
├── Availability and performance issues
└── Incorrect predictions leading to business impact
&lt;/pre&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h4&gt;Mitigation Strategies&lt;/h4&gt;
&lt;p&gt;Training Risk Mitigation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Diverse and representative training datasets&lt;/li&gt;
&lt;li&gt;Regular bias testing and fairness audits&lt;/li&gt;
&lt;li&gt;Secure development environments with access controls&lt;/li&gt;
&lt;li&gt;Adversarial training techniques for robustness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inferencing Risk Mitigation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Continuous monitoring and automated retraining triggers&lt;/li&gt;
&lt;li&gt;Input validation and anomaly detection&lt;/li&gt;
&lt;li&gt;Circuit breakers and fallback mechanisms&lt;/li&gt;
&lt;li&gt;Human in the loop for high risk decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Best Practices for Enterprise AI Implementation&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;1. Establish Clear Boundaries&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Separate training and production environments completely&lt;/li&gt;
&lt;li&gt;Implement network segmentation and access controls&lt;/li&gt;
&lt;li&gt;Define clear data flow and approval processes&lt;/li&gt;
&lt;li&gt;Create role based access control (RBAC) for different phases&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;2. Implement Defence in Depth&lt;/h3&gt;
&lt;pre&gt;Security Layers:
├── Physical Security (Data centres, hardware)
├── Network Security (Firewalls, VPNs, network segmentation)
├── Application Security (Authentication, authorisation, input validation)
├── Data Security (Encryption, tokenisation, data masking)
└── Monitoring and Response (SIEM, SOC, incident response)
&lt;/pre&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;3. Build for Auditability&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Comprehensive logging for all AI operations&lt;/li&gt;
&lt;li&gt;Immutable audit trails for compliance reporting&lt;/li&gt;
&lt;li&gt;Automated compliance checking and reporting&lt;/li&gt;
&lt;li&gt;Regular third party security assessments&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;4. Plan for Scale and Evolution&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Modular architecture supporting multiple AI workloads&lt;/li&gt;
&lt;li&gt;Container based deployment for consistency and portability&lt;/li&gt;
&lt;li&gt;API first design for integration flexibility&lt;/li&gt;
&lt;li&gt;Continuous integration and deployment pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;For most enterprise IT departments, the strategic focus should be on &lt;b&gt;inferencing and model consumption&lt;/b&gt; rather than large scale model training. The distinction between AI training and inferencing extends far beyond technical implementation details, but the practical reality is that enterprises should leverage the massive investments made by AI companies rather than attempting to recreate them.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbkudpTKDA0iRwToqqedjpQtMy0ZqdPX-f7AIf_Mimn8mEGdHoXU1SJsQ_NkolF4wnYdFI0MupkLmA9QDwQUW__2PmRJCxpscJo4eh6BIVN_NrkQSu68uTyUAlL2hf8JzdB4O1JYiVjLtnMSD6vRi3cKDMV6Obm7VYBQ2bzpfh7NuKba5-YyGP/s1024/seet-spot.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbkudpTKDA0iRwToqqedjpQtMy0ZqdPX-f7AIf_Mimn8mEGdHoXU1SJsQ_NkolF4wnYdFI0MupkLmA9QDwQUW__2PmRJCxpscJo4eh6BIVN_NrkQSu68uTyUAlL2hf8JzdB4O1JYiVjLtnMSD6vRi3cKDMV6Obm7VYBQ2bzpfh7NuKba5-YyGP/s320/seet-spot.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The Enterprise AI Sweet Spot:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consume foundation models via APIs or cloud services&lt;/li&gt;
&lt;li&gt;Focus on fine tuning for domain specific applications&lt;/li&gt;
&lt;li&gt;Invest heavily in inferencing infrastructure and governance&lt;/li&gt;
&lt;li&gt;Build competitive advantage through integration and user experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Success in enterprise AI implementations requires:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Strategic Focus&lt;/b&gt;: Concentrating resources on business value creation, not infrastructure&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Practical Security&lt;/b&gt;: Implementing robust governance for model consumption and fine tuning&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Compliance by Design&lt;/b&gt;: Building regulatory requirements into AI workflows from day one&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Operational Excellence&lt;/b&gt;: Ensuring reliable, scalable inferencing systems that serve business needs&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Smart Risk Management&lt;/b&gt;: Understanding the risks of both model consumption and custom development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As AI continues to transform enterprise operations, the architects who understand these nuances and implement appropriate guardrails will be best positioned to deliver successful, sustainable AI solutions that drive business value whilst maintaining the trust and confidence of customers and regulators.&lt;/p&gt;

&lt;hr /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/2479496019814233083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/2479496019814233083'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2026/01/ai-training-vs-inferencing-enterprise.html' title='AI Training vs Inferencing: An Enterprise Solutions Architect&#39;s Guide to Building Secure, Compliant AI Systems'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNOu_1l-rj2gOcVecfNTn6k41vaxK96fZ2o17l0m2zX89xthY6vet0iIRlBsTEr3sk00V9_1kyJhMNKOaNx6AZDhMC71EMMTA2j6f32qkbTboSV3qh-y8nTwl0rBGqidJGh5SASWpRxFPzzYz0LEm9zhdOKkZKMWXRtWpOPHWA_I7qPh7zYLUC/s72-w640-h640-c/ai-training-flow.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-4061295856219484667</id><published>2025-12-11T07:28:00.006+11:00</published><updated>2025-12-15T10:33:15.599+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="middleware"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Tech"/><title type='text'>The $11B Power Play: How IBM&#39;s Confluent Acquisition Reshapes Enterprise Data Architecture for the AI Era</title><content type='html'>&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;i&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU4PUu67-JIlfHO38l9-q1uOD69Wxy3Xu5v9m8tBfQ0VYnBsgvfonVEih4RPuvBHvRYAK_exoCdnyE7pDOfI6qUww4-uIGA2E-KsyDFPFoIjADpRE8JOKIqDN5qCc4AnJ6AP2qdQg8-lElGHOa2zQ9vmmPNJlfLr00pDwArJnNo8bd3KtXUQgy/s1536/ea-kafka-streaming.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1536&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU4PUu67-JIlfHO38l9-q1uOD69Wxy3Xu5v9m8tBfQ0VYnBsgvfonVEih4RPuvBHvRYAK_exoCdnyE7pDOfI6qUww4-uIGA2E-KsyDFPFoIjADpRE8JOKIqDN5qCc4AnJ6AP2qdQg8-lElGHOa2zQ9vmmPNJlfLr00pDwArJnNo8bd3KtXUQgy/w400-h267/ea-kafka-streaming.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;p&gt;&lt;i&gt;IBM just made its boldest bet on the future of enterprise data with an $11 billion acquisition of Confluent. This isn&#39;t just another corporate deal. It&#39;s a strategic repositioning that signals exactly where enterprise data architectures are heading in the age of AI agents and real-time intelligence.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;

&lt;h2&gt;The Deal That Changes Everything&lt;/h2&gt;

&lt;p&gt;On December 8th, 2025, IBM announced its acquisition of Confluent for $31 per share. An $11 billion transaction that immediately caught my attention. As someone who has been architecting enterprise data solutions across multiple organisations since the GenAI revolution began, I see this as more than just a strategic acquisition. It&#39;s validation of a fundamental shift in how enterprises must think about data architecture.&lt;/p&gt;

&lt;p&gt;The numbers tell part of the story:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;6,500+ clients&lt;/b&gt; across major industries&lt;/li&gt;
&lt;li&gt;&lt;b&gt;40% of Fortune 500&lt;/b&gt; already using Confluent&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$100 billion TAM&lt;/b&gt; in real-time data streaming (doubled in 4 years)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1 billion new applications&lt;/b&gt; expected by 2028&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the real story is what this means for enterprise architects and CTOs planning their data strategies.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Why This Acquisition Matters Beyond the Headlines&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;The Real-Time Imperative Becomes Non-Negotiable&lt;/h3&gt;

&lt;p&gt;IDC&#39;s projection of over one billion new logical applications by 2028 isn&#39;t just a statistic. It&#39;s a fundamental reshaping of enterprise IT. Every one of these applications, along with the AI agents that will power them, needs access to connected, trusted data in real-time.&lt;/p&gt;

&lt;p&gt;Traditional batch processing architectures that dominated enterprise data strategies for decades are becoming obsolete. The acquisition signals IBM&#39;s recognition that &lt;b&gt;real-time data streaming isn&#39;t a nice-to-have. It&#39;s the foundational infrastructure for AI-driven enterprises&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;The End of Data Silos in AI Architectures&lt;/h3&gt;

&lt;p&gt;What struck me most about IBM CEO Arvind Krishna&#39;s statement was this: &lt;i&gt;&quot;Data is spread across public and private clouds, datacenters and countless technology providers.&quot;&lt;/i&gt; This is the reality every enterprise architect faces today.&lt;/p&gt;

&lt;p&gt;Confluent&#39;s &lt;a href=&quot;https://kafka.apache.org/&quot; target=&quot;_blank&quot;&gt;Apache Kafka-based&lt;/a&gt; platform doesn&#39;t just connect systems. It eliminates the data silos that cripple AI implementations. For agentic AI to work effectively, data must flow seamlessly between environments, applications, and APIs. The acquisition creates a platform specifically designed for this challenge.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;The Strategic Implications for Enterprise Data Architecture&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;1. Event Streaming Becomes Central Infrastructure&lt;/h3&gt;

&lt;p&gt;This acquisition positions event streaming as core infrastructure, not middleware. Just as Red Hat&#39;s acquisition established containers as fundamental to enterprise cloud strategy, the Confluent deal establishes real-time data streaming as foundational for AI-era enterprises.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;What this means for architects:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Event streaming platforms become tier-1 infrastructure investments&lt;/li&gt;&lt;li&gt;Data architecture decisions must prioritise real-time capabilities over traditional ETL approaches&lt;/li&gt;&lt;li&gt;Stream-first thinking becomes the default for new application designs&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;2. Hybrid Cloud Data Gets First-Class Support&lt;/h3&gt;

&lt;p&gt;IBM&#39;s hybrid cloud expertise combined with Confluent&#39;s multi-cloud capabilities addresses one of the biggest enterprise challenges: data integration across heterogeneous environments.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Key architectural implications:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consistent data streaming across on-premises, private cloud, and public cloud&lt;/li&gt;
&lt;li&gt;Native integration with existing IBM ecosystem (Red Hat OpenShift, Watson, etc.)&lt;/li&gt;
&lt;li&gt;Simplified governance for data flowing across hybrid environments&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h3&gt;3. AI-Native Data Architectures Emerge&lt;/h3&gt;

&lt;p&gt;The acquisition creates the foundation for what I&#39;m calling &quot;AI-native data architectures.&quot; Systems designed from the ground up to support AI agents and real-time decision making.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Core characteristics:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Always-on data streams&lt;/b&gt; that AI agents can consume continuously&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Event-driven architectures&lt;/b&gt; that respond to real-time insights&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Governance frameworks&lt;/b&gt; that ensure AI systems have access to clean, trusted data&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scalable processing&lt;/b&gt; that handles both human and AI-generated workloads&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h2&gt;The Technical Evolution: What Changes for Enterprise Teams&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;Stream Processing Becomes Mainstream&lt;/h3&gt;

&lt;p&gt;Confluent&#39;s platform includes advanced stream processing capabilities, including &lt;a href=&quot;https://flink.apache.org&quot; target=&quot;_blank&quot;&gt;Apache Flink&lt;/a&gt; integration. This acquisition will accelerate enterprise adoption of stream processing beyond traditional messaging use cases.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Practical implications:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Real-time analytics&lt;/b&gt; become standard, not exceptional&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Event-driven microservices&lt;/b&gt; replace traditional request-response architectures&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Continuous data transformation&lt;/b&gt; replaces batch ETL jobs&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Stream governance&lt;/b&gt; becomes as important as data governance&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h3&gt;The Kafka Ecosystem Gets Enterprise-Grade&lt;/h3&gt;

&lt;p&gt;Apache Kafka&#39;s open-source foundation gets IBM&#39;s enterprise-grade support and security model. This matters enormously for large organisations that need both innovation and stability.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Enterprise benefits:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Enterprise security&lt;/b&gt; models integrated with streaming platforms&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Compliance frameworks&lt;/b&gt; for regulated industries&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Professional services&lt;/b&gt; for complex implementations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Long-term support&lt;/b&gt; for mission-critical streaming infrastructure&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h2&gt;Industry Impact: Winners and Implications&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;Immediate Winners&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Enterprise Kafka Adopters&lt;/b&gt;: Organisations already using Kafka gain access to IBM&#39;s enterprise services and support ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Hybrid Cloud Enterprises&lt;/b&gt;: Companies with complex multi-cloud strategies get integrated streaming capabilities across their entire infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;AI-First Organisations&lt;/b&gt;: Companies building AI agents and real-time decision systems get purpose-built data infrastructure.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Market Dynamics Shift&lt;/h3&gt;

&lt;p&gt;This acquisition forces other enterprise software vendors to reconsider their data streaming strategies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Microsoft&lt;/b&gt; will likely accelerate Azure Event Hubs and Fabric integration&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AWS&lt;/b&gt; may need to enhance Kinesis and MSK enterprise capabilities&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Google&lt;/b&gt; could strengthen Pub/Sub and Dataflow positioning&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Snowflake&lt;/b&gt; and &lt;b&gt;Databricks&lt;/b&gt; may need to enhance real-time capabilities&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h2&gt;What This Means for Your Enterprise Data Strategy&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;Immediate Considerations&lt;/h3&gt;

&lt;p&gt;If you&#39;re planning enterprise data architecture for the next 3-5 years, this acquisition should influence your thinking:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Evaluate real-time requirements&lt;/b&gt;: Traditional batch processing may not support your AI ambitions&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Assess streaming capabilities&lt;/b&gt;: Current data platforms may need augmentation for real-time use cases&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Consider vendor consolidation&lt;/b&gt;: IBM&#39;s expanded platform may simplify your technology stack&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Plan for AI integration&lt;/b&gt;: Your data architecture should support both human and AI consumers&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;
&lt;/ol&gt;

&lt;h3&gt;Long-Term Strategic Implications&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;The Platform Play&lt;/b&gt;: IBM is building an end-to-end platform for AI-driven enterprises, not just selling point solutions.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The Skills Gap&lt;/b&gt;: Enterprise teams will need new capabilities in stream processing, event-driven architecture, and real-time data governance.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The Competitive Advantage&lt;/b&gt;: Organisations that master real-time data architectures will have significant advantages in AI implementation speed and effectiveness.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;The Bigger Picture: Enterprise AI Infrastructure Matures&lt;/h2&gt;

&lt;p&gt;This acquisition represents the maturation of enterprise AI infrastructure. We&#39;re moving beyond experimental AI projects to production-scale AI implementations that require enterprise-grade data foundations.&lt;/p&gt;

&lt;p&gt;The combination of IBM&#39;s enterprise expertise with Confluent&#39;s streaming technology creates a platform specifically designed for the challenges of AI-era enterprises:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Trusted data flows&lt;/b&gt; that AI agents can rely on&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Real-time governance&lt;/b&gt; that maintains data quality at streaming speeds&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scalable architecture&lt;/b&gt; that handles exponential growth in data and applications&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hybrid deployment&lt;/b&gt; that works across complex enterprise environments&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h2&gt;The Path Forward for Enterprise Architects&lt;/h2&gt;

&lt;p&gt;As someone who has guided multiple organisations through AI-enabled transformations, I see this acquisition as validation of the architectural principles I&#39;ve been advocating:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Data architecture must be AI-first&lt;/b&gt;: Design for both human and AI consumers from the start&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Real-time capabilities are foundational&lt;/b&gt;: Batch processing alone won&#39;t support AI agents&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Stream processing is becoming mainstream&lt;/b&gt;: Event-driven architectures are the new standard&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Vendor integration matters&lt;/b&gt;: Platform plays win over point solutions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The IBM-Confluent combination creates compelling advantages for enterprises ready to embrace this evolution. But the broader implication is clear: the data architecture decisions you make today will determine your AI capabilities tomorrow.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;Conclusion: The Future of Enterprise Data is Real-Time&lt;/h2&gt;

&lt;p&gt;IBM&#39;s $11 billion bet on Confluent isn&#39;t just about acquiring a streaming platform. It&#39;s about positioning for a future where real-time data capabilities determine enterprise competitiveness.&lt;/p&gt;

&lt;p&gt;For enterprise leaders and architects, the message is clear: the age of batch processing and siloed data is ending. The future belongs to organisations that can connect, process, and govern data in real-time across hybrid environments.&lt;/p&gt;

&lt;p&gt;The question isn&#39;t whether your enterprise needs real-time data capabilities. It&#39;s how quickly you can build them before your competitors do.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;i&gt;The IBM-Confluent acquisition transaction is expected to close by mid-2026. Enterprise leaders should begin evaluating how this combined platform might fit their long-term data architecture strategies, particularly for AI and real-time analytics use cases.&lt;/i&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4061295856219484667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4061295856219484667'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/12/the-11b-power-play-how-ibms-confluent.html' title='The $11B Power Play: How IBM&#39;s Confluent Acquisition Reshapes Enterprise Data Architecture for the AI Era'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU4PUu67-JIlfHO38l9-q1uOD69Wxy3Xu5v9m8tBfQ0VYnBsgvfonVEih4RPuvBHvRYAK_exoCdnyE7pDOfI6qUww4-uIGA2E-KsyDFPFoIjADpRE8JOKIqDN5qCc4AnJ6AP2qdQg8-lElGHOa2zQ9vmmPNJlfLr00pDwArJnNo8bd3KtXUQgy/s72-w400-h267-c/ea-kafka-streaming.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-309155019702998825</id><published>2025-11-22T13:41:00.014+11:00</published><updated>2025-11-23T11:57:36.645+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>The Enterprise AI Revolution: Why Seasoned Architects + Agentic Frameworks = Your Complete Modernisation Solution</title><content type='html'>
&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;i&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnGQtndR5VbDk24e4MQQipi2WcJ04ivL1HTMXvDmltqDrfqJJ1-DZ1tHJPKrhQKVFD1_VKqNnYZQsRNx6_TQX53oUfEJ4T0Jisvx1r2XzCEjnpze7iawCElCuliEP-hLVdkIZyE6VktteL_inp3_fjpbg-72eXfXaA7sSTdqZPvozDtyQoMkRd/s1268/ai-consulting-delivery-aws.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;436&quot; data-original-width=&quot;1268&quot; height=&quot;110&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnGQtndR5VbDk24e4MQQipi2WcJ04ivL1HTMXvDmltqDrfqJJ1-DZ1tHJPKrhQKVFD1_VKqNnYZQsRNx6_TQX53oUfEJ4T0Jisvx1r2XzCEjnpze7iawCElCuliEP-hLVdkIZyE6VktteL_inp3_fjpbg-72eXfXaA7sSTdqZPvozDtyQoMkRd/s320/ai-consulting-delivery-aws.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;A recent announcement from &lt;a href=&quot;https://aws.amazon.com/blogs/machine-learning/accelerate-enterprise-solutions-with-agentic-ai-powered-consulting-introducing-aws-professional-service-agents/&quot; target=&quot;_blank&quot;&gt;AWS Professional Services&lt;/a&gt; perfectly validates what I&#39;ve been arguing for months: the winning formula for large-scale technology modernisation isn&#39;t just about AI agents or human expertise alone. It&#39;s about the powerful combination of both. Their new approach proves this thesis in ways that should fundamentally change how enterprises think about modernisation.&amp;nbsp;&lt;/i&gt;&lt;p&gt;&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;The Consulting Paradigm Shift Is Here&lt;/h2&gt;

&lt;p&gt;The recent introduction of AI-powered consulting agents represents more than just another technology tool, it&#39;s validation of a fundamental shift I&#39;ve been advocating for enterprise modernisation. What we&#39;re seeing isn&#39;t AI replacing human expertise, but rather sophisticated agentic frameworks designed to amplify the capabilities of seasoned consultants and architects.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;The early results validate this approach across multiple vendors and platforms:&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Project timelines compressed from months to weeks&lt;/b&gt;, or weeks to days&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Enterprise-grade solutions&lt;/b&gt; maintaining rigorous quality and security standards&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Proven methodologies&lt;/b&gt; embedded directly into AI operations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Real implementations&lt;/b&gt;: Organisations like the NFL (AWS), major banks using Microsoft Copilot for M365, and enterprises leveraging Google Cloud&#39;s Vertex AI agents are deploying production-quality AI solutions in weeks rather than months&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here&#39;s the critical insight that many enterprises are missing: it&#39;s not the technology alone driving these outcomes—it&#39;s the strategic combination of AI acceleration with deep architectural expertise.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJJVg15v25x-NYedcGpINd97YMDhZ5bUq2fuvCHZkw7s5hX-kGNaerih3FxHMZeljsBCMAOk32r0Yut3k2DZcar1sd8XqPsZob3FN4WWpXESPbFdtIxXQjIGVwV7F2ZznEfjt7rTJgvVl5A44AzvngV5wPoPKPuhlQjP4FvpZkf-fVallttHf7/s400/ai-architect.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;400&quot; data-original-width=&quot;400&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJJVg15v25x-NYedcGpINd97YMDhZ5bUq2fuvCHZkw7s5hX-kGNaerih3FxHMZeljsBCMAOk32r0Yut3k2DZcar1sd8XqPsZob3FN4WWpXESPbFdtIxXQjIGVwV7F2ZznEfjt7rTJgvVl5A44AzvngV5wPoPKPuhlQjP4FvpZkf-fVallttHf7/s320/ai-architect.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Why Seasoned Architects Are Your Secret Weapon&amp;nbsp; &amp;nbsp;&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Strategic Oversight That Makes Everything Work&lt;/h3&gt;

&lt;p&gt;What we&#39;re seeing in practice demonstrates a critical truth I&#39;ve long believed: &lt;b&gt;AI agents excel at implementation, but human architects excel at strategy&lt;/b&gt;. Modern AI can analyse requirements, generate code, and automate testing within hours. But it&#39;s the seasoned architect who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Understands your unique business context&lt;/b&gt; and translates it into technical requirements&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Provides strategic guidance&lt;/b&gt; that aligns technology decisions with business outcomes&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Makes critical architectural decisions&lt;/b&gt; that determine long-term success&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ensures solutions meet enterprise-grade security and compliance standards&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Knowledge Multiplier Effect&lt;/h3&gt;

&lt;p&gt;Here&#39;s where it gets interesting: these AI systems can embody decades of collective experience from thousands of prior engagements. But that institutional knowledge becomes exponentially more powerful when filtered through the lens of an experienced architect who can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Contextualise patterns&lt;/b&gt; from those thousands of engagements to your specific situation&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Identify potential pitfalls&lt;/b&gt; before they become expensive problems&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Navigate complex enterprise constraints&lt;/b&gt; that generic solutions can&#39;t address&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Build lasting relationships&lt;/b&gt; that ensure ongoing success&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;The Complete Enterprise Modernisation Formula&lt;/h2&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Traditional Approach: Choose Your Pain&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;All-human consulting&lt;/b&gt;: High quality, high cost, slow delivery&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI-only tools&lt;/b&gt;: Fast and cheap, but lacks strategic depth and enterprise context&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Internal teams&lt;/b&gt;: Deep business knowledge, but limited by resource constraints and experience gaps&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Breakthrough Model: Best of Both Worlds&lt;/h3&gt;
&lt;p&gt;What we&#39;re seeing emerge is a &lt;b&gt;human-AI collaboration model&lt;/b&gt; that delivers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Unprecedented Speed&lt;/b&gt;: AI agents handle routine implementation tasks, freeing architects to focus on high-value strategic work&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Consistent Excellence&lt;/b&gt;: Every solution incorporates proven methodologies. Whether it&#39;s AWS Well-Architected Framework, Microsoft&#39;s Cloud Adoption Framework, or Google&#39;s Cloud Architecture Framework&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Lower Total Costs&lt;/b&gt;: Streamlined delivery and accelerated time-to-value translate to better ROI&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Enterprise-Grade Quality&lt;/b&gt;: Human oversight ensures solutions meet your unique business requirements&lt;/li&gt;
&lt;/ol&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Real-World Impact: From Months to Days&lt;/h2&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Generative AI Application Development&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Traditional timeline&lt;/b&gt;: 6-8 weeks with a full consulting team&lt;br /&gt;
&lt;b&gt;With agentic framework + architect&lt;/b&gt;: Hours for design specifications, days for complete implementation&lt;/p&gt;

&lt;p&gt;We&#39;re seeing this across platforms: AWS Professional Services agents ingest requirements and produce comprehensive design specifications, Microsoft&#39;s GitHub Copilot Workspace accelerates full-stack development with architectural oversight, and Google&#39;s Duet AI in Cloud Workstations enables rapid prototyping—all while experienced architects ensure alignment with specific business context and strategic objectives.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Large-Scale Migration Projects&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Traditional timeline&lt;/b&gt;: 12+ months for migrating 500+ applications&lt;br /&gt;
&lt;b&gt;With agentic framework + architect&lt;/b&gt;: Compressed to just a few months&lt;/p&gt;

&lt;p&gt;The pattern is consistent across vendors: AWS Transform agents handle wave planning and dependency mapping, Microsoft&#39;s Azure Migrate with AI-powered assessment accelerates cloud transitions, and Google Cloud&#39;s migration agents automate workload discovery and planning—while seasoned architects maintain strategic oversight and ensure rigorous security and compliance standards.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Enterprise Software Development&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Traditional timeline&lt;/b&gt;: 3-6 months for complex enterprise applications&lt;br /&gt;
&lt;b&gt;With agentic framework + architect&lt;/b&gt;: 4-6 weeks with higher quality&lt;/p&gt;

&lt;p&gt;Microsoft Copilot for M365 is transforming how enterprises build internal applications, with Power Platform agents generating complex workflows in days. Salesforce&#39;s Einstein GPT agents are accelerating CRM customisations that traditionally took months. Meanwhile, ServiceNow&#39;s Now Assist agents are automating workflow creation—all under the strategic guidance of experienced solution architects who ensure enterprise integration and scalability.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Why This Matters for Your Enterprise Modernisation Strategy&lt;/h2&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Cross-Platform Reality&lt;/h3&gt;
&lt;p&gt;What&#39;s particularly compelling is seeing this pattern emerge independently across major technology vendors. &lt;a href=&quot;https://www.cognizant.com/us/en/services/business-process-services/ai-business-accelerators&quot; target=&quot;_blank&quot;&gt;Cognizant&#39;s AI Accelerators&lt;/a&gt;&amp;nbsp;(including &lt;a href=&quot;https://www.cognizant.com/us/en/services/enterprise-agent-development&quot; target=&quot;_blank&quot;&gt;Agent Foundry&lt;/a&gt; and &lt;a href=&quot;https://www.cognizant.com/us/en/services/neuro-intelligent-automation&quot; target=&quot;_blank&quot;&gt;Neuro&lt;/a&gt;), IBM&#39;s watsonx Code Assistant, Accenture&#39;s myWizard platform, and Deloitte&#39;s AI-powered consulting tools all demonstrate the same fundamental principle: AI acceleration works best with strategic human oversight.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Architecture Advantage&lt;/h3&gt;
&lt;p&gt;For large enterprises embarking on modernisation journeys, the combination of seasoned architects and agentic frameworks provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Institutional Memory&lt;/b&gt;: Architects who&#39;ve navigated complex enterprise transformations across multiple platforms and vendors&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pattern Recognition&lt;/b&gt;: The ability to identify and avoid common pitfalls at enterprise scale, regardless of technology stack&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Stakeholder Management&lt;/b&gt;: Experience managing complex organisational dynamics during transformation&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Risk Mitigation&lt;/b&gt;: Understanding of enterprise constraints and regulatory requirements across different cloud providers&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Future-Proofing&lt;/b&gt;: Strategic vision to ensure solutions scale and evolve with your business, avoiding vendor lock-in&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Technology Multiplier&lt;/h3&gt;
&lt;p&gt;Agentic frameworks amplify architectural expertise by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Automating routine tasks&lt;/b&gt; so architects can focus on strategic decisions&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ensuring consistent implementation&lt;/b&gt; of architectural patterns and best practices&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Accelerating delivery&lt;/b&gt; without sacrificing quality or security&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Providing real-time insights&lt;/b&gt; from vast knowledge bases of successful implementations&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;The Bottom Line for Enterprise Leaders&lt;/h2&gt;

&lt;p&gt;What we&#39;re witnessing validates a fundamental truth I&#39;ve been arguing: &lt;b&gt;the future of enterprise modernisation isn&#39;t about choosing between human expertise and AI capabilities—it&#39;s about strategically combining both&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;For large enterprises facing pressure to modernise quickly while maintaining quality and security standards, the winning formula is becoming clear:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Seasoned Architect + Agentic Framework = Complete Solution&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This isn&#39;t about any single vendor&#39;s evolution. It&#39;s a fundamental shift happening across the entire technology consulting landscape. Whether you&#39;re working with AWS, Microsoft Azure, Google Cloud, IBM, or the major consulting firms, the organisations that succeed will be those that recognise the power of this human-AI collaboration model and implement it strategically across their technology stack.&lt;/p&gt;

&lt;p&gt;The question isn&#39;t whether your enterprise needs AI or needs experienced architects. The question is: are you ready to harness the exponential power of both working together?&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;i&gt;This human-AI collaboration model represents the next evolution in enterprise modernisation. The organisations getting it right are those that invest equally in both cutting-edge AI capabilities and deep architectural expertise, recognising that neither alone is sufficient for the challenges of large-scale enterprise transformation.&lt;/i&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/309155019702998825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/309155019702998825'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/11/the-enterprise-ai-revolution-why.html' title='The Enterprise AI Revolution: Why Seasoned Architects + Agentic Frameworks = Your Complete Modernisation Solution'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnGQtndR5VbDk24e4MQQipi2WcJ04ivL1HTMXvDmltqDrfqJJ1-DZ1tHJPKrhQKVFD1_VKqNnYZQsRNx6_TQX53oUfEJ4T0Jisvx1r2XzCEjnpze7iawCElCuliEP-hLVdkIZyE6VktteL_inp3_fjpbg-72eXfXaA7sSTdqZPvozDtyQoMkRd/s72-c/ai-consulting-delivery-aws.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-9105392632138347058</id><published>2025-08-06T06:30:00.008+10:00</published><updated>2025-08-06T08:43:44.171+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="microservices"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>12 Factor Agents: Building Enterprise-Grade AI Systems</title><content type='html'>
    &lt;style&gt;
        .factor-card {
            background: #f8f9fa;
            border: 1px solid #dee2e6;
            border-radius: 8px;
            padding: 20px;
            margin: 20px 0;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        .factor-number {
            background: #3498db;
            color: white;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            margin-right: 10px;
        }
        code {
            background: #f1f2f6;
            padding: 2px 4px;
            border-radius: 3px;
            font-family: &#39;Courier New&#39;, monospace;
        }
        .code-block {
            background: #2c3e50;
            color: #ecf0f1;
            padding: 15px;
            border-radius: 5px;
            overflow-x: auto;
            margin: 15px 0;
        }
        .highlight {
            background: #fff3cd;
            border: 1px solid #ffeaa7;
            border-radius: 4px;
            padding: 10px;
            margin: 15px 0;
        }
        .quote {
            border-left: 4px solid #95a5a6;
            margin: 20px 0;
            padding-left: 20px;
            font-style: italic;
            color: #666;
        }
        ul, ol {
            padding-left: 20px;
        }
        li {
            margin-bottom: 5px;
        }
        .intro-box {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 25px;
            border-radius: 10px;
            margin: 20px 0;
        }
        .benefits-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 20px;
            margin: 20px 0;
        }
        .benefit-item {
            background: #e8f5e8;
            padding: 15px;
            border-radius: 8px;
            border-left: 4px solid #27ae60;
        }
    &lt;/style&gt;


&lt;article&gt;
    &lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;The Challenge:&lt;/b&gt; Most AI agents fail to meet production standards. They work great in demos but fall apart when faced with real-world enterprise requirements: reliability, scalability, maintainability, and security.&lt;/div&gt;&lt;div class=&quot;intro-box&quot;&gt;
        
        &lt;p&gt;&lt;b&gt;The Solution:&lt;/b&gt; 12 Factor Agents - a methodology inspired by the battle-tested &lt;a href=&quot;https://12factor.net/&quot; style=&quot;color: black; text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;12 Factor App&lt;/a&gt; principles, adapted specifically for building production-ready AI agent systems.&lt;/p&gt;
    &lt;/div&gt;

    &lt;h2&gt;Why Traditional Agent Frameworks Fall Short&lt;/h2&gt;
    
    &lt;p&gt;After working with hundreds of AI builders and testing every major agent framework, a clear pattern emerges: &lt;b&gt;80% quality isn&#39;t good enough for customer-facing features&lt;/b&gt;. Most builders hit a wall where they need to reverse-engineer their chosen framework to achieve production quality, ultimately starting over from scratch.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgli0JATDFVKlyoBoP39yJRkEC48XQf_ALsf30bWoNZJtJDAasuxpSBqjxG7vHS4q7GllRd_eFZ4huGnP_dcuz_isYJ9EchSR3rS-Xom-zj8cy5wtPRLYdiCPcPYJ9sphJy1_Uvw0Y_FI4FQy44xfONJ8NAlmuiS53AtNeUCZRFbPlDNcV8GA5J/s1024/12-factor-agents.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgli0JATDFVKlyoBoP39yJRkEC48XQf_ALsf30bWoNZJtJDAasuxpSBqjxG7vHS4q7GllRd_eFZ4huGnP_dcuz_isYJ9EchSR3rS-Xom-zj8cy5wtPRLYdiCPcPYJ9sphJy1_Uvw0Y_FI4FQy44xfONJ8NAlmuiS53AtNeUCZRFbPlDNcV8GA5J/s320/12-factor-agents.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;

    &lt;div class=&quot;quote&quot;&gt;
        &quot;I&#39;ve been surprised to find that most products billing themselves as &#39;AI Agents&#39; are not all that agentic. A lot of them are mostly deterministic code, with LLM steps sprinkled in at just the right points to make the experience truly magical.&quot;
        &lt;br /&gt;&lt;i&gt;— Dex Horthy, Creator of 12 Factor Agents&lt;/i&gt;
    &lt;/div&gt;

    &lt;p&gt;The problem isn&#39;t with frameworks themselves—it&#39;s that &lt;b&gt;good agents are comprised of mostly just software&lt;/b&gt;, not the &quot;here&#39;s your prompt, here&#39;s a bag of tools, loop until you hit the goal&quot; pattern that many frameworks promote.&lt;/p&gt;

    &lt;h2&gt;What Are 12 Factor Agents?&lt;/h2&gt;

    &lt;p&gt;12 Factor Agents is a methodology that provides core engineering principles for building LLM-powered software that&#39;s reliable, scalable, and maintainable. Rather than enforcing a specific framework, it offers modular concepts that can be incorporated into existing products.&lt;/p&gt;

    &lt;div class=&quot;highlight&quot;&gt;
        &lt;b&gt;Key Insight:&lt;/b&gt; The fastest way to get high-quality AI software in customers&#39; hands is to take small, modular concepts from agent building and incorporate them into existing products—not to rebuild everything from scratch.
    &lt;/div&gt;

    &lt;h2&gt;The 12 Factors Explained&lt;/h2&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;1 &lt;/span&gt;Natural Language to Tool Calls&lt;/h3&gt;
        &lt;p&gt;Convert natural language directly into structured tool calls. This is the fundamental pattern that enables agents to reason about tasks and execute them deterministically.&lt;/p&gt;
        

          &lt;pre&gt;&lt;code&gt;
&quot;create a payment link for $750 to Jeff&quot; 
→ 
{
  &quot;function&quot;: &quot;create_payment_link&quot;,
  &quot;parameters&quot;: {
    &quot;amount&quot;: 750,
    &quot;customer&quot;: &quot;cust_128934ddasf9&quot;,
    &quot;memo&quot;: &quot;Payment for service&quot;
  }
}
        &lt;/code&gt;&lt;/pre&gt;
        
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;2&lt;/span&gt; Own Your Prompts&lt;/h3&gt;
        &lt;p&gt;Don&#39;t outsource prompt engineering to frameworks. Treat prompts as first-class code that you can version, test, and iterate on. Black-box prompting limits your ability to optimize performance.&lt;/p&gt;
        
        &lt;p&gt;&lt;b&gt;Benefits:&lt;/b&gt;&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;Full control over instructions&lt;/li&gt;
            &lt;li&gt;Testable and version-controlled prompts&lt;/li&gt;
            &lt;li&gt;Fast iteration based on real-world performance&lt;/li&gt;
            &lt;li&gt;Transparency in what your agent is working with&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;3&lt;/span&gt; Own Your Context Window&lt;/h3&gt;
        &lt;p&gt;Don&#39;t rely solely on standard message formats. Engineer your context for maximum effectiveness—this is your primary interface with the LLM.&lt;/p&gt;
        
        &lt;div class=&quot;quote&quot;&gt;
            &quot;At any given point, your input to an LLM in an agent is &#39;here&#39;s what&#39;s happened so far, what&#39;s the next step&#39;&quot;
        &lt;/div&gt;
        
        &lt;p&gt;Consider custom formats that optimize for:&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;Token efficiency&lt;/li&gt;
            &lt;li&gt;Information density&lt;/li&gt;
            &lt;li&gt;LLM comprehension&lt;/li&gt;
            &lt;li&gt;Easy human debugging&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;4 &lt;/span&gt;Tools Are Just Structured Outputs&lt;/h3&gt;
        &lt;p&gt;Tools don&#39;t need to be complex. They&#39;re just structured JSON output from your LLM that triggers deterministic code. This creates clean separation between LLM decision-making and your application&#39;s actions.&lt;/p&gt;
        
        &lt;pre&gt;&lt;code&gt;
if nextStep.intent == &#39;create_payment_link&#39;:
    stripe.paymentlinks.create(nextStep.parameters)
elif nextStep.intent == &#39;wait_for_approval&#39;: 
    # pause and wait for human intervention
else:
    # handle unknown tool calls
       &lt;/code&gt;&lt;/pre&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;5&lt;/span&gt; Unify Execution State and Business State&lt;/h3&gt;
        &lt;p&gt;Simplify by unifying execution state (current step, waiting status) with business state (what&#39;s happened so far). This reduces complexity and makes systems easier to debug and maintain.&lt;/p&gt;
        
        &lt;p&gt;&lt;b&gt;Benefits:&lt;/b&gt;&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;One source of truth for all state&lt;/li&gt;
            &lt;li&gt;Trivial serialization/deserialization&lt;/li&gt;
            &lt;li&gt;Complete history visibility&lt;/li&gt;
            &lt;li&gt;Easy recovery and forking&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;6&lt;/span&gt; Launch/Pause/Resume with Simple APIs&lt;/h3&gt;
        &lt;p&gt;Agents should be easy to launch, pause when long-running operations are needed, and resume from where they left off. This enables durable, reliable workflows that can handle interruptions.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;7&lt;/span&gt; Contact Humans with Tool Calls&lt;/h3&gt;
        &lt;p&gt;Make human interaction just another tool call. Instead of forcing the LLM to choose between returning text or structured data, always use structured output with intents like &lt;code&gt;request_human_input&lt;/code&gt; or &lt;code&gt;done_for_now&lt;/code&gt;.&lt;/p&gt;
        
        &lt;p&gt;This enables:&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;Clear instructions for different types of human contact&lt;/li&gt;
            &lt;li&gt;Workflows that start with Agent→Human rather than Human→Agent&lt;/li&gt;
            &lt;li&gt;Multiple human coordination&lt;/li&gt;
            &lt;li&gt;Multi-agent communication&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;8&lt;/span&gt; Own Your Control Flow&lt;/h3&gt;
        &lt;p&gt;Build custom control structures for your specific use case. Different tool calls may require breaking out of loops to wait for human responses or long-running tasks.&lt;/p&gt;
        
        &lt;div class=&quot;highlight&quot;&gt;
            &lt;b&gt;Critical capability:&lt;/b&gt; Interrupt agents between tool selection and tool invocation—essential for human approval workflows.
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;9&lt;/span&gt; Compact Errors into Context Window&lt;/h3&gt;
        &lt;p&gt;When errors occur, compact them into useful context rather than letting them break the agent loop. This improves reliability and enables agents to learn from and recover from failures.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;10 &lt;/span&gt;Small, Focused Agents&lt;/h3&gt;
        &lt;p&gt;Build agents that do one thing well. Even as LLMs get more powerful, focused agents are easier to debug, test, and maintain than monolithic ones.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;11&lt;/span&gt; Trigger from Anywhere, Meet Users Where They Are&lt;/h3&gt;
        &lt;p&gt;Agents should be triggerable from any interface—webhooks, cron jobs, Slack, email, APIs. Don&#39;t lock users into a single interaction mode.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;factor-card&quot;&gt;
        &lt;h3&gt;&lt;span class=&quot;factor-number&quot;&gt;12&lt;/span&gt; Make Your Agent a Stateless Reducer&lt;/h3&gt;
        &lt;p&gt;Design your agent as a pure function that takes the current state and an event, returning the new state. This functional approach improves testability and reasoning about agent behavior.&lt;/p&gt;
    &lt;/div&gt;

    &lt;h2&gt;Enterprise Benefits&lt;/h2&gt;&lt;h2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjocclUzjhKw9_srdt_No1WVav9I4TaELUrTMVVZ7v0lbzu8PdHi3BeSGKXG_3dUe8LJ7GuWo32eTXtM_qknHyFqil7PCKC26gcLR7LZKe-VEc-n2LpbIwLmhPOYqXXiG5U2j_XMM3JiurOPw2kUC0xvPzWMHi745SgU_5ietp3F-O3O8pmRFJn/s1024/12-factor-agents-enterprise.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjocclUzjhKw9_srdt_No1WVav9I4TaELUrTMVVZ7v0lbzu8PdHi3BeSGKXG_3dUe8LJ7GuWo32eTXtM_qknHyFqil7PCKC26gcLR7LZKe-VEc-n2LpbIwLmhPOYqXXiG5U2j_XMM3JiurOPw2kUC0xvPzWMHi745SgU_5ietp3F-O3O8pmRFJn/s320/12-factor-agents-enterprise.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h2&gt;

    &lt;div class=&quot;benefits-grid&quot;&gt;
        &lt;div class=&quot;benefit-item&quot;&gt;
            &lt;h4&gt;🔒 Security &amp;amp; Compliance&lt;/h4&gt;
            &lt;p&gt;Human-in-the-loop approvals for sensitive operations, audit trails through structured state, and controlled execution environments.&lt;/p&gt;
        &lt;/div&gt;
        
        &lt;div class=&quot;benefit-item&quot;&gt;
            &lt;h4&gt;📊 Observability&lt;/h4&gt;
            &lt;p&gt;Complete visibility into agent decision-making, structured logs, and easy debugging through unified state management.&lt;/p&gt;
        &lt;/div&gt;
        
        &lt;div class=&quot;benefit-item&quot;&gt;
            &lt;h4&gt;⚡ Reliability&lt;/h4&gt;
            &lt;p&gt;Graceful error handling, pause/resume capabilities, and deterministic execution for mission-critical operations.&lt;/p&gt;
        &lt;/div&gt;
        
        &lt;div class=&quot;benefit-item&quot;&gt;
            &lt;h4&gt;🔧 Maintainability&lt;/h4&gt;
            &lt;p&gt;Version-controlled prompts, testable components, and modular architecture that evolves with your needs.&lt;/p&gt;
        &lt;/div&gt;
        
        &lt;div class=&quot;benefit-item&quot;&gt;
            &lt;h4&gt;📈 Scalability&lt;/h4&gt;
            &lt;p&gt;Stateless design, simple APIs, and focused agents that can be deployed and scaled independently.&lt;/p&gt;
        &lt;/div&gt;
        
        &lt;div class=&quot;benefit-item&quot;&gt;
            &lt;h4&gt;🤝 Integration&lt;/h4&gt;
            &lt;p&gt;Works with existing systems, doesn&#39;t require complete rewrites, and meets users where they already work.&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;h2&gt;Real-World Implementation&lt;/h2&gt;

    &lt;p&gt;Unlike theoretical frameworks, 12 Factor Agents has emerged from real production experience. The methodology comes from builders who have:&lt;/p&gt;

    &lt;ul&gt;
        &lt;li&gt;Built and deployed customer-facing AI agents&lt;/li&gt;
        &lt;li&gt;Tested every major agent framework&lt;/li&gt;
        &lt;li&gt;Worked with hundreds of technical founders&lt;/li&gt;
        &lt;li&gt;Learned from production failures and successes&lt;/li&gt;
    &lt;/ul&gt;

    &lt;div class=&quot;quote&quot;&gt;
        &quot;Most of them are rolling the stack themselves. I don&#39;t see a lot of frameworks in production customer-facing agents.&quot;
    &lt;/div&gt;

    &lt;h2&gt;Getting Started&lt;/h2&gt;

    &lt;p&gt;The beauty of 12 Factor Agents is that you don&#39;t need to implement all factors at once. Start with the factors most relevant to your current challenges:&lt;/p&gt;

    &lt;ol&gt;
        &lt;li&gt;&lt;b&gt;Experiencing prompt issues?&lt;/b&gt; Start with Factor 2 (Own Your Prompts)&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;Need human oversight?&lt;/b&gt; Implement Factor 7 (Contact Humans with Tool Calls)&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;Debugging problems?&lt;/b&gt; Focus on Factor 5 (Unify State) and Factor 3 (Own Context Window)&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;Reliability concerns?&lt;/b&gt; Implement Factor 6 (Launch/Pause/Resume) and Factor 8 (Own Control Flow)&lt;/li&gt;
    &lt;/ol&gt;

    &lt;h2&gt;The Future of Enterprise AI&lt;/h2&gt;

    &lt;p&gt;As AI becomes critical infrastructure for enterprises, the principles that made web applications reliable and scalable become essential for AI systems too. 12 Factor Agents provides that foundation—battle-tested engineering practices adapted for the unique challenges of LLM-powered applications.&lt;/p&gt;

    &lt;div class=&quot;highlight&quot;&gt;
        &lt;b&gt;Key Takeaway:&lt;/b&gt; Great agents aren&#39;t just about having the right model or the perfect prompt. They&#39;re about applying solid software engineering principles to create systems that work reliably in the real world.
    &lt;/div&gt;

    &lt;p&gt;The methodology acknowledges that even as LLMs continue to get exponentially more powerful, there will always be core engineering techniques that make LLM-powered software more reliable, scalable, and maintainable.&lt;/p&gt;

    &lt;h2&gt;Learn More&lt;/h2&gt;

    &lt;p&gt;The complete 12 Factor Agents methodology, including detailed examples, code samples, and workshops, is available at &lt;a href=&quot;https://github.com/humanlayer/12-factor-agents&quot; target=&quot;_blank&quot;&gt;github.com/humanlayer/12-factor-agents&lt;/a&gt;. The project is open source and actively maintained by the community.&lt;/p&gt;

    &lt;p&gt;For enterprises looking to implement production-grade AI agents, 12 Factor Agents provides the roadmap from proof-of-concept to production-ready system—one factor at a time.&lt;/p&gt;&lt;/article&gt;


</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/9105392632138347058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/9105392632138347058'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/08/12-factor-agents-building-enterprise.html' title='12 Factor Agents: Building Enterprise-Grade AI Systems'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgli0JATDFVKlyoBoP39yJRkEC48XQf_ALsf30bWoNZJtJDAasuxpSBqjxG7vHS4q7GllRd_eFZ4huGnP_dcuz_isYJ9EchSR3rS-Xom-zj8cy5wtPRLYdiCPcPYJ9sphJy1_Uvw0Y_FI4FQy44xfONJ8NAlmuiS53AtNeUCZRFbPlDNcV8GA5J/s72-c/12-factor-agents.jpeg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-4979636595611745917</id><published>2025-08-01T15:17:00.017+10:00</published><updated>2025-09-01T20:30:48.151+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="FOSS"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="mashups"/><category scheme="http://www.blogger.com/atom/ns#" term="microservices"/><category scheme="http://www.blogger.com/atom/ns#" term="middleware"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Building a Modern React Frontend for Movie Vibes: A Journey Through CSS Frameworks, AI Timeouts, and Real-World Development</title><content type='html'>&lt;link href=&quot;https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/default.min.css&quot; rel=&quot;stylesheet&quot;&gt;&lt;/link&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js&quot;&gt;&lt;/script&gt;

&lt;!--and it&#39;s easy to individually load additional languages--&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/languages/go.min.js&quot;&gt;&lt;/script&gt;

&lt;script&gt;hljs.highlightAll();&lt;/script&gt;
    
&lt;style&gt;
        .blog-post {
            font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, sans-serif;
            line-height: 1.6;
            color: #333;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        .blog-post h1 {
            color: #2c3e50;
            border-bottom: 3px solid #3498db;
            padding-bottom: 10px;
            margin-bottom: 30px;
        }
        .blog-post h2 {
            color: #34495e;
            margin-top: 40px;
            margin-bottom: 20px;
            border-left: 4px solid #3498db;
            padding-left: 15px;
        }
        .blog-post h3 {
            color: #2c3e50;
            margin-top: 30px;
            margin-bottom: 15px;
        }
        .blog-post h4 {
            color: #34495e;
            margin-top: 25px;
            margin-bottom: 12px;
        }
        .code-block {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 6px;
            padding: 16px;
            margin: 20px 0;
            overflow-x: auto;
            font-family: &#39;Monaco&#39;, &#39;Menlo&#39;, &#39;Ubuntu Mono&#39;, monospace;
            font-size: 14px;
            line-height: 1.4;
          	color:black;
        }
        .inline-code {
            background: #f1f3f4;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: &#39;Monaco&#39;, &#39;Menlo&#39;, &#39;Ubuntu Mono&#39;, monospace;
            font-size: 0.9em;
        }
        .emoji-list {
            list-style: none;
            padding-left: 0;
        }
        .emoji-list li {
            margin: 8px 0;
            padding-left: 10px;
        }
        .highlight-box {
            background: #e8f4fd;
            border-left: 4px solid #3498db;
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 6px 6px 0;
        }
        .warning-box {
            background: #fff3cd;
            border-left: 4px solid #ffc107;
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 6px 6px 0;
        }
        .error-box {
            background: #f8d7da;
            border-left: 4px solid #dc3545;
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 6px 6px 0;
        }
        .tech-stack {
            background: #f8f9fa;
            border: 2px solid #dee2e6;
            border-radius: 8px;
            padding: 20px;
            margin: 30px 0;
        }
        .comparison-table {
            width: 100%;
            border-collapse: collapse;
            margin: 20px 0;
        }
        .comparison-table th,
        .comparison-table td {
            border: 1px solid #dee2e6;
            padding: 12px;
            text-align: left;
        }
        .comparison-table th {
            background: #f8f9fa;
            font-weight: 600;
        }
        .blockquote {
            border-left: 4px solid #6c757d;
            padding: 15px 20px;
            margin: 20px 0;
            background: #f8f9fa;
            font-style: italic;
        }
    &lt;/style&gt;


    &lt;div class=&quot;blog-post&quot;&gt;
        &lt;h2 style=&quot;text-align: left;&quot;&gt;How it started ...&lt;/h2&gt;
        &lt;p&gt;A couple of days ago, &lt;a href=&quot;https://www.tyrell.co/2025/07/building-movievibes-vibe-coding-journey.html&quot; target=&quot;_blank&quot;&gt;I shared the creation of &lt;b&gt;Movie Vibes&lt;/b&gt;&lt;/a&gt;, an AI-powered Spring Boot application that analyzes movie &quot;vibes&quot; using Spring AI and Ollama. The backend was working beautifully, but it was time to build a proper user interface. What started as a simple &quot;add React + Tailwind&quot; task turned into an educational journey through modern frontend development challenges, framework limitations, and the beauty of getting back to fundamentals.&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;How it&#39;s going ...&amp;nbsp;&lt;/h2&gt;&lt;h2&gt;The Original Plan: React + Tailwind CSS&lt;/h2&gt;
        &lt;p&gt;The plan seemed straightforward:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;✅ React 18 + TypeScript for the frontend&lt;/li&gt;
            &lt;li&gt;✅ Tailwind CSS for rapid styling&lt;/li&gt;
            &lt;li&gt;✅ Modern, responsive design&lt;/li&gt;
            &lt;li&gt;✅ Quick development cycle&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;How hard could it be? Famous last words.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLhwnVMEJC2IuxG1HUbTizcC1Ap3lFXUEsJUrOHzvlMmt8SMfMp3aN1jDgJgbzTUipYacbc8AhdL3UFhDm_haEB6LMV3LWCyvGrI68VyL0Q9SwZhyV86kTdV1fFjt0ogQJi34CaYjBBgbgO1zPW37j5PlAKj8plvX7h524miyQUGGVVmVyKoMN/s1024/movievibes-ui.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLhwnVMEJC2IuxG1HUbTizcC1Ap3lFXUEsJUrOHzvlMmt8SMfMp3aN1jDgJgbzTUipYacbc8AhdL3UFhDm_haEB6LMV3LWCyvGrI68VyL0Q9SwZhyV86kTdV1fFjt0ogQJi34CaYjBBgbgO1zPW37j5PlAKj8plvX7h524miyQUGGVVmVyKoMN/s320/movievibes-ui.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;The Tailwind CSS Nightmare&lt;/h2&gt;

        &lt;h3&gt;The Promise vs. Reality&lt;/h3&gt;
        &lt;p&gt;Tailwind CSS markets itself as a &quot;utility-first CSS framework&quot; that accelerates development. In theory, you get:&amp;nbsp;&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;Rapid prototyping with utility classes&lt;/li&gt;
            &lt;li&gt;Consistent design tokens&lt;/li&gt;
            &lt;li&gt;Smaller CSS bundles&lt;/li&gt;
            &lt;li&gt;No context switching between CSS and HTML&lt;/li&gt;
        &lt;/ul&gt;

        &lt;p&gt;In practice, with Create React App and Tailwind v4, we got:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;🚫 &lt;b&gt;Build failures&lt;/b&gt; due to PostCSS plugin incompatibilities&lt;/li&gt;
            &lt;li&gt;🚫 &lt;b&gt;Cryptic error messages&lt;/b&gt; about plugin configurations&lt;/li&gt;
            &lt;li&gt;🚫 &lt;b&gt;Hours of debugging&lt;/b&gt; CRACO configurations&lt;/li&gt;
            &lt;li&gt;🚫 &lt;b&gt;Version conflicts&lt;/b&gt; between Tailwind v4 and CRA&#39;s PostCSS setup&lt;/li&gt;
        &lt;/ul&gt;&lt;h3&gt;The Technical Issues&lt;/h3&gt;
        &lt;div class=&quot;error-box&quot;&gt;
            &lt;b&gt;The error that started it all:&lt;/b&gt;
            &lt;div class=&quot;code-block&quot;&gt;Error: Loading PostCSS Plugin failed: 
tailwindcss directly as a PostCSS plugin
has moved to @tailwindcss/postcss&lt;/div&gt;
        &lt;/div&gt;

        &lt;p&gt;We tried multiple solutions:&lt;/p&gt;
        &lt;ol&gt;
            &lt;li&gt;&lt;b&gt;CRACO configuration&lt;/b&gt; - Failed with plugin conflicts&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Downgrading to Tailwind v3&lt;/b&gt; - Still had PostCSS issues&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Custom PostCSS config&lt;/b&gt; - Broke Create React App&#39;s build process&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Ejecting CRA&lt;/b&gt; - Nuclear option, but defeats the purpose&lt;/li&gt;
        &lt;/ol&gt;&lt;h3&gt;The Breaking Point&lt;/h3&gt;
        &lt;p&gt;After spending more time debugging Tailwind than actually building features, I made a decision: &lt;b&gt;dump Tailwind entirely&lt;/b&gt;. Sometimes the best solution is the simplest one.&lt;/p&gt;&lt;h2&gt;The Pure CSS Renaissance&lt;/h2&gt;

        &lt;h3&gt;Going Back to Fundamentals&lt;/h3&gt;
        &lt;p&gt;Instead of fighting with framework abstractions, we built a &lt;b&gt;custom CSS design system&lt;/b&gt; that:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;✅ &lt;b&gt;Compiles instantly&lt;/b&gt; - No build step complications&lt;/li&gt;
            &lt;li&gt;✅ &lt;b&gt;Full control&lt;/b&gt; - Every pixel exactly where we want it&lt;/li&gt;
            &lt;li&gt;✅ &lt;b&gt;No dependencies&lt;/b&gt; - Zero external CSS frameworks&lt;/li&gt;
            &lt;li&gt;✅ &lt;b&gt;Better performance&lt;/b&gt; - Only the CSS we actually use&lt;/li&gt;
            &lt;li&gt;✅ &lt;b&gt;Maintainable&lt;/b&gt; - Clear, semantic class names&lt;/li&gt;
        &lt;/ul&gt;&lt;h3&gt;The CSS Architecture&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;
          /* Semantic, maintainable class names */
          .movie-card {
            background: white;
            border-radius: 12px;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            transition: box-shadow 0.3s ease;
          }

          .movie-card:hover {
          	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
          }

          /* Responsive design without utility class bloat */
          @media (max-width: 768px) 
          {
            .movie-card {
              /* Mobile-specific styles */
            }
          }
          &lt;/code&gt;&lt;/pre&gt;

        &lt;p&gt;Compare this to Tailwind&#39;s approach:&lt;/p&gt;
        &lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;
&amp;lt;!-- Tailwind: Utility class soup --&amp;gt;
&amp;lt;div className=&quot;bg-white rounded-xl shadow-lg p-6 hover:shadow-2xl 
            	transition-shadow duration-300 md:p-8 lg:p-10&quot;&amp;gt;
        &lt;/code&gt;&lt;/pre&gt;

&lt;div class=&quot;highlight-box&quot; style=&quot;text-align: left;&quot;&gt;
            &lt;b&gt;Our approach is more readable, maintainable, and debuggable.&lt;/b&gt;
        &lt;/div&gt;&lt;h2&gt;The AI Timeout Challenge&lt;/h2&gt;

        &lt;h3&gt;The Problem&lt;/h3&gt;
        &lt;p&gt;Once the UI was working, we discovered a new issue: &lt;b&gt;AI operations take time&lt;/b&gt;. Our local Ollama model could take 30-60 seconds to analyze a movie and generate recommendations. The frontend was timing out before the AI finished processing.&lt;/p&gt;

        &lt;h3&gt;The Solution&lt;/h3&gt;
        &lt;p&gt;We implemented a comprehensive timeout strategy:&lt;/p&gt;

        &lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// 2-minute timeout for AI operations
const controller = new AbortController();
const timeoutId = setTimeout(() =&amp;gt; controller.abort(), 120000);
&lt;/code&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;
// User-friendly loading messages
&amp;lt;p className=&quot;loading-text&quot;&amp;gt;
  Please wait, this process can take 30-60 seconds while our AI agent 
  analyzes the movie and generates recommendations ✨
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;

     &lt;div class=&quot;highlight-box&quot;&gt;&lt;b&gt;Key improvements:&lt;/b&gt;
            &lt;ul class=&quot;emoji-list&quot;&gt;
                &lt;li&gt;⏱️ &lt;b&gt;Extended timeout to 2 minutes&lt;/b&gt; for AI operations&lt;/li&gt;
                &lt;li&gt;🎯 &lt;b&gt;Clear user expectations&lt;/b&gt; with realistic time estimates&lt;/li&gt;
                &lt;li&gt;🔄 &lt;b&gt;Graceful error handling&lt;/b&gt; with timeout-specific messages&lt;/li&gt;
                &lt;li&gt;📱 &lt;b&gt;Loading states&lt;/b&gt; that don&#39;t feel broken&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
      
      &lt;h2&gt;The Poster Image Quest&lt;/h2&gt;

        &lt;h3&gt;Backend Enhancement&lt;/h3&gt;
        &lt;p&gt;The original backend only returned movie titles in recommendations. Users expect to see poster images! We enhanced the system to:&lt;/p&gt;

        &lt;ol&gt;
            &lt;li&gt;&lt;b&gt;Fetch complete metadata&lt;/b&gt; for the main movie ✅&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Parse AI-generated recommendations&lt;/b&gt; to extract movie titles&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Query OMDb API&lt;/b&gt; for each recommendation&#39;s metadata&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Include poster URLs&lt;/b&gt; in the API response&lt;/li&gt;
        &lt;/ol&gt;&lt;h3&gt;Performance Optimization&lt;/h3&gt;
        &lt;p&gt;To balance richness with performance:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;🎯 &lt;b&gt;Limit to 5 recommendations&lt;/b&gt; to avoid excessive API calls&lt;/li&gt;
            &lt;li&gt;🛡️ &lt;b&gt;Fallback handling&lt;/b&gt; when movie metadata isn&#39;t found&lt;/li&gt;
            &lt;li&gt;📊 &lt;b&gt;Detailed logging&lt;/b&gt; for debugging and monitoring&lt;/li&gt;
        &lt;/ul&gt;&lt;h2&gt;The Final Architecture&lt;/h2&gt;

        &lt;h3&gt;Frontend Stack&lt;/h3&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;b&gt;React 18 + TypeScript&lt;/b&gt; - Modern, type-safe development&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Pure CSS&lt;/b&gt; - Custom utility system, no framework dependencies&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Responsive Design&lt;/b&gt; - Mobile-first approach&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Error Boundaries&lt;/b&gt; - Graceful handling of failures&lt;/li&gt;
        &lt;/ul&gt;

        &lt;h3&gt;Backend Enhancements&lt;/h3&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;b&gt;Spring Boot 3.x&lt;/b&gt; - Robust, production-ready API&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Spring AI + Ollama&lt;/b&gt; - Local LLM for movie analysis&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;OMDb API Integration&lt;/b&gt; - Rich movie metadata&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Intelligent Caching&lt;/b&gt; - Future enhancement opportunity&lt;/li&gt;
        &lt;/ul&gt;

        &lt;h3&gt;API Evolution&lt;/h3&gt;
        &lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;
          {
            &quot;movie&quot;: {
              &quot;title&quot;: &quot;Mission: Impossible&quot;,
              &quot;poster&quot;: &quot;https://...&quot;,
              &quot;year&quot;: &quot;1996&quot;,
              &quot;imdbRating&quot;: &quot;7.2&quot;,
              &quot;plot&quot;: &quot;Full plot description...&quot;
            },
            &quot;vibeAnalysis&quot;: &quot;An exhilarating action-adventure...&quot;,
            &quot;recommendations&quot;: [
              {
                &quot;title&quot;: &quot;The Bourne Identity&quot;,
                &quot;poster&quot;: &quot;https://...&quot;,
                &quot;year&quot;: &quot;2002&quot;,
                &quot;imdbRating&quot;: &quot;7.9&quot;
              }
            ]
          }&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;div class=&quot;blog-post&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia1npgfV54pRvOgYP4sbbVkTKxDU7oXc0rJpHKhy401UuRu35GOiz5S9a7e3Ne7SuCEwkw2EZOot3oCw-Nd3n5P1mP2e4jc8HsodjP8NwOmxn8iIiCN_v0fuiyYw22pPpod2pEhA6ih2BjpB9LNY1OxVzkofRrSEpnr3-O4c4VpliTQR5mppii/s800/demo.gif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;800&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia1npgfV54pRvOgYP4sbbVkTKxDU7oXc0rJpHKhy401UuRu35GOiz5S9a7e3Ne7SuCEwkw2EZOot3oCw-Nd3n5P1mP2e4jc8HsodjP8NwOmxn8iIiCN_v0fuiyYw22pPpod2pEhA6ih2BjpB9LNY1OxVzkofRrSEpnr3-O4c4VpliTQR5mppii/w640-h360/demo.gif&quot; width=&quot;640&quot; /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://youtu.be/aOhFi-hVSb4?si=TCKVRutHMWiK9HqF&quot; target=&quot;_blank&quot;&gt;Watch on YouTube&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;h2&gt;Lessons Learned&lt;/h2&gt;

        &lt;h3&gt;1. Framework Complexity vs. Value&lt;/h3&gt;
        &lt;div class=&quot;comparison-table&quot;&gt;
            &lt;table&gt;
                &lt;tbody&gt;&lt;tr&gt;
                    &lt;th&gt;&lt;b&gt;Tailwind&#39;s Promise:&lt;/b&gt;&lt;/th&gt;
                    &lt;td&gt;Rapid development with utility classes&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;th&gt;&lt;div style=&quot;margin-left: 80px;&quot;&gt;&lt;b&gt;Reality:&lt;/b&gt;&lt;/div&gt;&lt;/th&gt;
                    &lt;td&gt;Build system complexity that outweighs benefits&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;&lt;/table&gt;
        &lt;/div&gt;

        &lt;p&gt;Sometimes vanilla CSS is the better choice. Modern CSS is incredibly powerful:&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;CSS Grid and Flexbox for layouts&lt;/li&gt;
            &lt;li&gt;CSS Custom Properties for theming&lt;/li&gt;
            &lt;li&gt;CSS Container Queries for responsive design&lt;/li&gt;
            &lt;li&gt;CSS-in-JS when you need dynamic styles&lt;/li&gt;
        &lt;/ul&gt;

        &lt;h3&gt;2. AI UX Considerations&lt;/h3&gt;
        &lt;p&gt;Building AI-powered applications requires different UX patterns:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;⏳ &lt;b&gt;Longer wait times&lt;/b&gt; are normal and expected&lt;/li&gt;
            &lt;li&gt;📢 &lt;b&gt;Clear communication&lt;/b&gt; about processing time&lt;/li&gt;
            &lt;li&gt;🔄 &lt;b&gt;Progressive disclosure&lt;/b&gt; of results&lt;/li&gt;
            &lt;li&gt;🛡️ &lt;b&gt;Robust error handling&lt;/b&gt; for AI failures&lt;/li&gt;
        &lt;/ul&gt;

        &lt;h3&gt;3. API Design Evolution&lt;/h3&gt;
        &lt;p&gt;Starting simple and evolving based on frontend needs:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;🎯 &lt;b&gt;Backend-driven&lt;/b&gt; initially (simple JSON responses)&lt;/li&gt;
            &lt;li&gt;🎨 &lt;b&gt;Frontend-driven&lt;/b&gt; enhancement (rich metadata)&lt;/li&gt;
            &lt;li&gt;🔄 &lt;b&gt;Backward compatibility&lt;/b&gt; during transitions&lt;/li&gt;
        &lt;/ul&gt;

        &lt;h3&gt;4. The Beauty of Fundamentals&lt;/h3&gt;
        &lt;p&gt;Modern development often pushes us toward complex abstractions, but sometimes the simplest solution is the best:&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;b&gt;Pure CSS&lt;/b&gt; over CSS frameworks&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Semantic HTML&lt;/b&gt; over div soup&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;Progressive enhancement&lt;/b&gt; over JavaScript-heavy approaches&lt;/li&gt;
        &lt;/ul&gt;&lt;h2&gt;Performance Results&lt;/h2&gt;
        &lt;p&gt;After our optimizations:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;🚀 &lt;b&gt;Build time:&lt;/b&gt; 3 seconds (was 45+ seconds with Tailwind debugging)&lt;/li&gt;
            &lt;li&gt;📦 &lt;b&gt;Bundle size:&lt;/b&gt; 15% smaller without Tailwind dependencies&lt;/li&gt;
            &lt;li&gt;⚡ &lt;b&gt;Development experience:&lt;/b&gt; Hot reload works consistently&lt;/li&gt;
            &lt;li&gt;🎯 &lt;b&gt;User experience:&lt;/b&gt; Clear loading states, beautiful poster images&lt;/li&gt;
        &lt;/ul&gt;&lt;h2&gt;What&#39;s Next?&lt;/h2&gt;
        &lt;p&gt;The Movie Vibes application is now production-ready with:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;✅ Beautiful, responsive UI&lt;/li&gt;
            &lt;li&gt;✅ AI-powered movie analysis&lt;/li&gt;
            &lt;li&gt;✅ Rich movie metadata with posters&lt;/li&gt;
            &lt;li&gt;✅ Robust error handling&lt;/li&gt;
            &lt;li&gt;✅ 2-minute AI operation support&lt;/li&gt;
        &lt;/ul&gt;

        &lt;p&gt;Future enhancements could include:&lt;/p&gt;
        &lt;ul class=&quot;emoji-list&quot;&gt;
            &lt;li&gt;🗄️ &lt;b&gt;Caching layer&lt;/b&gt; for popular movies&lt;/li&gt;
            &lt;li&gt;👥 &lt;b&gt;User accounts&lt;/b&gt; and favorites&lt;/li&gt;
            &lt;li&gt;🌙 &lt;b&gt;Dark mode&lt;/b&gt; theme&lt;/li&gt;
            &lt;li&gt;🐳 &lt;b&gt;Docker deployment&lt;/b&gt; setup&lt;/li&gt;
            &lt;li&gt;🧪 &lt;b&gt;Comprehensive testing&lt;/b&gt; suite&lt;/li&gt;
        &lt;/ul&gt;&lt;h2&gt;Conclusion: Embrace Simplicity&lt;/h2&gt;
        &lt;p&gt;This journey reinforced a fundamental principle: &lt;b&gt;complexity should solve real problems, not create them&lt;/b&gt;.&lt;/p&gt;

        &lt;p&gt;Tailwind CSS promised to accelerate our development but instead became a roadblock. Pure CSS, with its directness and simplicity, delivered exactly what we needed without the framework overhead.&lt;/p&gt;

        &lt;p&gt;Building AI-powered applications comes with unique challenges - long processing times, complex data transformations, and user experience considerations that traditional web apps don&#39;t face. Focus on solving these real problems rather than fighting your tools.&lt;/p&gt;

        &lt;div class=&quot;blockquote&quot;&gt;
            &lt;b&gt;Sometimes the best framework is no framework at all.&lt;/b&gt;
        &lt;/div&gt;

        &lt;div class=&quot;highlight-box&quot;&gt;
            &lt;b&gt;Try Movie Vibes yourself:&lt;/b&gt;
            &lt;ul&gt;
                &lt;li&gt;Backend: &lt;span class=&quot;inline-code&quot;&gt;mvn spring-boot:run&lt;/span&gt;&lt;/li&gt;
                &lt;li&gt;Frontend: &lt;span class=&quot;inline-code&quot;&gt;npm start&lt;/span&gt;&lt;/li&gt;
                &lt;li&gt;Search for your favorite movie and discover its vibe! 🎬✨&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;

        &lt;p&gt;&lt;i&gt;What&#39;s your experience with CSS frameworks? Have you found cases where vanilla CSS outperformed framework solutions? Share your thoughts in the comments!&lt;/i&gt;&lt;/p&gt;


        &lt;div class=&quot;tech-stack&quot;&gt;
            &lt;h3&gt;Tech Stack:&lt;/h3&gt;
            &lt;ul&gt;
                &lt;li&gt;Spring Boot 3.x + Spring AI&lt;/li&gt;
                &lt;li&gt;React 18 + TypeScript&lt;/li&gt;
                &lt;li&gt;Pure CSS (Custom Design System)&lt;/li&gt;
                &lt;li&gt;Ollama (Local LLM)&lt;/li&gt;
                &lt;li&gt;OMDb API&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;GitHub:&lt;/b&gt; &lt;a href=&quot;https://github.com/tyrell/movievibes&quot; target=&quot;_blank&quot;&gt;tyrell/movievibes&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;


</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4979636595611745917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4979636595611745917'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/08/building-modern-react-frontend-for.html' title='Building a Modern React Frontend for Movie Vibes: A Journey Through CSS Frameworks, AI Timeouts, and Real-World Development'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLhwnVMEJC2IuxG1HUbTizcC1Ap3lFXUEsJUrOHzvlMmt8SMfMp3aN1jDgJgbzTUipYacbc8AhdL3UFhDm_haEB6LMV3LWCyvGrI68VyL0Q9SwZhyV86kTdV1fFjt0ogQJi34CaYjBBgbgO1zPW37j5PlAKj8plvX7h524miyQUGGVVmVyKoMN/s72-c/movievibes-ui.jpeg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-6761722110435164195</id><published>2025-08-01T06:35:00.020+10:00</published><updated>2025-08-05T19:09:31.304+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="microservices"/><category scheme="http://www.blogger.com/atom/ns#" term="middleware"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Building a Model Context Protocol (MCP) Server for Movie Data: A Deep Dive into Modern AI Integration</title><content type='html'>&lt;br /&gt;

&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2&gt;The Challenge: Bringing Movie Data to AI Assistants&lt;/h2&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYJfcqA6WXyBrYroO3PmduGcRiqt8VNZbt0vESFSTvOAOth9A69w5Po-S7Hag5guMw0J1EDko9MKo4VHRZosuizpXoPTMDmu6kbDyziBCBgM9sMLd9rhdY1atv89psT0iZ8kbTn_VxnBJivQpzte9oqdyHDRlp1ESZi1IbfqF6drunF5_Sf5n9/s1024/ai-agent-mcp.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYJfcqA6WXyBrYroO3PmduGcRiqt8VNZbt0vESFSTvOAOth9A69w5Po-S7Hag5guMw0J1EDko9MKo4VHRZosuizpXoPTMDmu6kbDyziBCBgM9sMLd9rhdY1atv89psT0iZ8kbTn_VxnBJivQpzte9oqdyHDRlp1ESZi1IbfqF6drunF5_Sf5n9/s320/ai-agent-mcp.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As AI assistants become increasingly sophisticated, there&#39;s a growing need for them to access real-time, structured data from external APIs. While many AI models have impressive knowledge, they often lack access to current information or specialized databases. This is where the &lt;b&gt;Model Context Protocol (MCP)&lt;/b&gt; comes in—a standardized way for AI systems to interact with external data sources and tools.&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Today, I want to share my experience building an MCP server that bridges AI assistants with the Open Movie Database (OMDB) API, allowing any MCP-compatible AI to search for movies, retrieve detailed film information, and provide users with up-to-date movie data.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;What is the Model Context Protocol?&lt;/h2&gt;

&lt;p&gt;The Model Context Protocol is a emerging standard that enables AI assistants to safely and efficiently interact with external tools and data sources. Think of it as a universal translator that allows AI models to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔍 &lt;b&gt;Search&lt;/b&gt; external databases&lt;/li&gt;
&lt;li&gt;🛠️ &lt;b&gt;Execute&lt;/b&gt; specific tools and functions&lt;/li&gt;
&lt;li&gt;📊 &lt;b&gt;Retrieve&lt;/b&gt; real-time data&lt;/li&gt;
&lt;li&gt;⚡ &lt;b&gt;Integrate&lt;/b&gt; seamlessly with existing systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP servers act as intermediaries, exposing external APIs through a standardized JSON-RPC interface that AI assistants can understand and interact with safely.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;The Project: OMDB MCP Server&lt;/h2&gt;

&lt;p&gt;I decided to build an MCP server for the Open Movie Database (OMDB) API—a comprehensive movie database that provides detailed information about films, TV shows, and series. The goal was to create a production-ready server that would allow AI assistants to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Search for movies&lt;/b&gt; by title, year, and type&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Get detailed movie information&lt;/b&gt; including plot, cast, ratings, and awards&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Lookup movies by IMDB ID&lt;/b&gt; for precise identification&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;
&lt;/ol&gt;

&lt;h2&gt;Technical Architecture&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Core Technologies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Spring Boot 3.5.4&lt;/b&gt; - For the robust web framework&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Java 21&lt;/b&gt; - Taking advantage of modern language features&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebFlux &amp;amp; Reactive WebClient&lt;/b&gt; - For non-blocking, asynchronous API calls&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Maven&lt;/b&gt; - For dependency management and build automation&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h3&gt;MCP Protocol Implementation&lt;/h3&gt;

&lt;p&gt;The server implements three core MCP endpoints:&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h4&gt;1. Protocol Handshake (&lt;code&gt;initialize&lt;/code&gt;)&lt;/h4&gt;
&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;{
  &quot;jsonrpc&quot;: &quot;2.0&quot;,
  &quot;method&quot;: &quot;initialize&quot;,
  &quot;params&quot;: {
    &quot;protocolVersion&quot;: &quot;2024-11-05&quot;,
    &quot;capabilities&quot;: {},
    &quot;clientInfo&quot;: {&quot;name&quot;: &quot;ai-client&quot;, &quot;version&quot;: &quot;1.0.0&quot;}
  }
}&lt;/code&gt;&lt;/pre&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h4&gt;2. Tool Discovery (&lt;code&gt;tools/list&lt;/code&gt;)&lt;/h4&gt;
&lt;p&gt;Returns available tools that the AI can use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;search_movies&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_movie_details&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_movie_by_imdb_id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h4&gt;3. Tool Execution (&lt;code&gt;tools/call&lt;/code&gt;)&lt;/h4&gt;
&lt;p&gt;Executes the requested tool with provided arguments and returns formatted results.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Smart Error Handling&lt;/h3&gt;

&lt;p&gt;One of the key challenges was implementing robust error handling. The server includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Input validation&lt;/b&gt; for required parameters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Graceful API failure handling&lt;/b&gt; with meaningful error messages&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Timeout configuration&lt;/b&gt; to prevent hanging requests&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Detailed logging&lt;/b&gt; for debugging and monitoring&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h2&gt;Real-World Challenges and Solutions&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;Challenge 1: HTTPS Migration&lt;/h3&gt;
&lt;p&gt;Initially, the OMDB API calls were failing due to (my AI assistant 🤨 ) using HTTP instead of HTTPS. Modern APIs increasingly require secure connections.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Solution&lt;/b&gt;: Updated all API calls to use HTTPS and configured the WebClient with proper SSL handling.&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;Challenge 2: DNS Resolution on macOS&lt;/h3&gt;
&lt;p&gt;Encountered Netty DNS resolution warnings that could impact performance on macOS systems.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Solution&lt;/b&gt;: Added the native macOS DNS resolver dependency:&lt;/p&gt;
&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;io.netty&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;netty-resolver-dns-native-macos&amp;lt;/artifactId&amp;gt;
    &amp;lt;classifier&amp;gt;osx-aarch_64&amp;lt;/classifier&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Challenge 3: Response Formatting&lt;/h3&gt;
&lt;p&gt;Raw OMDB API responses needed to be formatted for optimal AI consumption.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Solution&lt;/b&gt;: Created custom formatters that present movie data in a structured, readable format:&lt;/p&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;private String formatMovieDetails(OmdbMovie movie) {
    StringBuilder sb = new StringBuilder();
    sb.append(&quot;🎬 &quot;).append(movie.getTitle()).append(&quot; (&quot;).append(movie.getYear()).append(&quot;)\n\n&quot;);
    
    if (movie.getRated() != null) sb.append(&quot;Rating: &quot;).append(movie.getRated()).append(&quot;\n&quot;);
    if (movie.getRuntime() != null) sb.append(&quot;Runtime: &quot;).append(movie.getRuntime()).append(&quot;\n&quot;);
    // ... additional formatting
    
    return sb.toString();
}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Example Usage&lt;/h2&gt;

&lt;p&gt;Once deployed, AI assistants can interact with the server naturally:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;User&lt;/b&gt;: &quot;Find movies about artificial intelligence from the 1990s&quot;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;AI Assistant&lt;/b&gt; (via MCP): Calls &lt;code&gt;search_movies&lt;/code&gt; with parameters:&lt;/p&gt;
&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;{
  &quot;title&quot;: &quot;artificial intelligence&quot;, 
  &quot;year&quot;: &quot;1990s&quot;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;Result&lt;/b&gt;: Formatted list of AI-themed movies from the 1990s with IMDB IDs for further lookup.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;Key Features&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;🚀 &lt;b&gt;Production Ready&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Comprehensive error handling&lt;/li&gt;
&lt;li&gt;Input validation&lt;/li&gt;
&lt;li&gt;Configurable timeouts&lt;/li&gt;
&lt;li&gt;Detailed logging&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;⚡ &lt;b&gt;Performance Optimized&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Reactive, non-blocking architecture&lt;/li&gt;
&lt;li&gt;Connection pooling&lt;/li&gt;
&lt;li&gt;Efficient memory usage&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;🔧 &lt;b&gt;Developer Friendly&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Complete documentation&lt;/li&gt;
&lt;li&gt;Test scripts included&lt;/li&gt;
&lt;li&gt;Easy configuration&lt;/li&gt;
&lt;li&gt;Docker-ready&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;🌐 &lt;b&gt;Standards Compliant&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Full MCP 2024-11-05 specification compliance&lt;/li&gt;
&lt;li&gt;JSON-RPC 2.0 protocol&lt;/li&gt;
&lt;li&gt;RESTful API design&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h2&gt;Testing and Validation&lt;/h2&gt;

&lt;p&gt;The project includes comprehensive testing:&lt;/p&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;# Health check
curl http://localhost:8080/mcp/health

# Search for movies
curl -X POST http://localhost:8080/mcp \
  -H &quot;Content-Type: application/json&quot; \
  -d &#39;{&quot;jsonrpc&quot;: &quot;2.0&quot;, &quot;method&quot;: &quot;tools/call&quot;,&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;margin-left: 120px; text-align: left;&quot;&gt;&lt;code&gt;&quot;params&quot;: {&quot;name&quot;: &quot;search_movies&quot;,&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;margin-left: 160px; text-align: left;&quot;&gt;&lt;code&gt;&quot;arguments&quot;: {&quot;title&quot;: &quot;Matrix&quot;}}}&#39;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Lessons Learned&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h3&gt;1. &lt;b&gt;Protocol Standards Matter&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Following the MCP specification exactly ensured compatibility with different AI clients without modification.&lt;/p&gt;

&lt;h3&gt;2. &lt;b&gt;Error Handling is Critical&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;In AI integrations, clear error messages help both developers and AI systems understand and recover from failures.&lt;/p&gt;

&lt;h3&gt;3. &lt;b&gt;Documentation Drives Adoption&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Comprehensive documentation with examples makes the difference between a useful tool and one that sits unused.&lt;/p&gt;

&lt;h3&gt;4. &lt;b&gt;Modern Java is Powerful&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Java 21 features like pattern matching and records significantly improved code readability and maintainability.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;Future Enhancements&lt;/h2&gt;

&lt;p&gt;The current implementation is just the beginning. Future enhancements could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Caching layer&lt;/b&gt; for frequently requested movies&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Rate limiting&lt;/b&gt; to respect API quotas&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Additional data sources&lt;/b&gt; (e.g., The Movie Database API)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Advanced search features&lt;/b&gt; (genre filtering, rating ranges)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Recommendation engine&lt;/b&gt; integration&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

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

&lt;p&gt;The complete source code is available on GitHub: &lt;a href=&quot;https://github.com/tyrell/omdb-mcp-server&quot; target=&quot;_blank&quot;&gt;github.com/tyrell/omdb-mcp-server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository&lt;/li&gt;
&lt;li&gt;Get a free OMDB API key from &lt;a href=&quot;http://www.omdbapi.com/apikey.aspx&quot; target=&quot;_blank&quot;&gt;omdbapi.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Set your API key: &lt;code&gt;export OMDB_API_KEY=your-key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run: &lt;code&gt;mvn spring-boot:run&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Test: &lt;code&gt;curl http://localhost:8080/mcp/health&amp;nbsp;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Building this MCP server was an excellent introduction to the Model Context Protocol and its potential for enhancing AI capabilities. The project demonstrates how modern Java frameworks like Spring Boot can be used to create robust, production-ready integrations between AI systems and external APIs.&lt;/p&gt;

&lt;p&gt;As AI assistants become more prevalent, tools like MCP servers will become essential infrastructure—bridging the gap between AI intelligence and real-world data. The movie database server is just one example, but the same patterns can be applied to any API or data source.&lt;/p&gt;

&lt;p&gt;The future of AI isn&#39;t just about smarter models; it&#39;s about giving those models access to the vast ecosystem of data and tools that power our digital world. MCP servers are a key piece of that puzzle.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Want to discuss this project or share your own MCP server experiences? Feel free to reach out or contribute to the project on GitHub!&lt;/i&gt;&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Technical Specifications&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Language&lt;/b&gt;: Java 21&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework&lt;/b&gt;: Spring Boot 3.5.4&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Protocol&lt;/b&gt;: MCP 2024-11-05&lt;/li&gt;
&lt;li&gt;&lt;b&gt;API&lt;/b&gt;: OMDB (Open Movie Database)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Architecture&lt;/b&gt;: Reactive, Non-blocking&lt;/li&gt;
&lt;li&gt;&lt;b&gt;License&lt;/b&gt;: MIT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Status&lt;/b&gt;: Production Ready&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;Repository Structure&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;omdb-mcp-server/
├── src/main/java/co/tyrell/omdb_mcp_server/
│   ├── controller/     # REST endpoints
│   ├── service/        # Business logic
│   ├── model/          # Data models
│   └── config/         # Configuration
├── README.md           # Complete documentation
├── test-scripts/       # Testing utilities
└── LICENSE             # MIT License&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b&gt;GitHub&lt;/b&gt;: &lt;a href=&quot;https://github.com/tyrell/omdb-mcp-server&quot; target=&quot;_blank&quot;&gt;https://github.com/tyrell/omdb-mcp-server&lt;/a&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;

</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/6761722110435164195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/6761722110435164195'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/08/building-model-context-protocol-mcp.html' title='Building a Model Context Protocol (MCP) Server for Movie Data: A Deep Dive into Modern AI Integration'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYJfcqA6WXyBrYroO3PmduGcRiqt8VNZbt0vESFSTvOAOth9A69w5Po-S7Hag5guMw0J1EDko9MKo4VHRZosuizpXoPTMDmu6kbDyziBCBgM9sMLd9rhdY1atv89psT0iZ8kbTn_VxnBJivQpzte9oqdyHDRlp1ESZi1IbfqF6drunF5_Sf5n9/s72-c/ai-agent-mcp.jpeg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-3926674484750444719</id><published>2025-07-29T19:46:00.006+10:00</published><updated>2025-08-01T15:56:36.187+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Building MovieVibes: A Vibe Coding Journey with Agentic AI</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOnVXcOJFGP_8jxKzbGQwK2kn2fFdrwyVS8CmwhuL5ZeNsgqeYt3VG-OD9mlJge6VsBOtRjPn_ozt1OhI6f3b8cLFvBRB6eUOFblppPtQ-5twaLtM4izPR4WBPi8JcawC3oSez1kAQ4IMS-0gh_DDqDqwL4XfZcZYWjK0S-CyqgER638EH5gvZ/s1536/Vibe%20Coding%20with%20Agentic%20AI.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1536&quot; data-original-width=&quot;1024&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOnVXcOJFGP_8jxKzbGQwK2kn2fFdrwyVS8CmwhuL5ZeNsgqeYt3VG-OD9mlJge6VsBOtRjPn_ozt1OhI6f3b8cLFvBRB6eUOFblppPtQ-5twaLtM4izPR4WBPi8JcawC3oSez1kAQ4IMS-0gh_DDqDqwL4XfZcZYWjK0S-CyqgER638EH5gvZ/w267-h400/Vibe%20Coding%20with%20Agentic%20AI.png&quot; width=&quot;267&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;i&gt;&quot;At first it was just a fun idea — what if a movie recommendation engine could understand the &lt;b&gt;vibe&lt;/b&gt; of a film, not just its genre or rating?&quot;&lt;/i&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;That simple question kicked off one of my most rewarding experiments in &lt;b&gt;Vibe Coding&lt;/b&gt; and &lt;b&gt;Agentic AI&lt;/b&gt; — powered entirely by &lt;b&gt;Ollama running locally&lt;/b&gt; on my machine.&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Motivation: Coding by Vibe, not by Ticket&lt;/h3&gt;

&lt;p&gt;Lately, I’ve been inspired by the idea of &lt;b&gt;&quot;Vibe Coding&quot;&lt;/b&gt; — a freeform, creative development style where we start with a concept or feeling and let the code evolve organically, often in partnership with an AI assistant. It’s not about Jira tickets or rigid specs; it’s about prototyping fast and iterating naturally.&lt;/p&gt;

&lt;p&gt;My goal was to build a &lt;b&gt;movie recommendation app&lt;/b&gt; where users enter a movie title and get back a vibe-based summary and some thoughtful movie suggestions — not just by keyword match, but by understanding &lt;i&gt;why&lt;/i&gt; someone liked the original movie.&lt;/p&gt;



&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;Stage 1: The Big Idea&lt;/h3&gt;

&lt;p&gt;I started with a prompt:&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;&quot;Take a movie name from the user, determine its vibe using its genre, plot, and characters, and recommend similar movies.&quot;&lt;/code&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;The app needed to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Fetch movie metadata from the OMDb API&lt;/li&gt;
  &lt;li&gt;Use a local LLM (via Ollama) to generate a &lt;i&gt;vibe summary&lt;/i&gt; and &lt;i&gt;similar movie suggestions&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;Serve results via a clean JSON API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We scaffolded a Spring Boot project, created REST controllers and services, and started building out the logic to integrate with both the OMDb API and the locally running Ollama LLM.&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Stage 2: Engineering the Integration&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPOS8YEHaFg4pVehir2SRM7nYe35Lwozb3dH6Wf14AKIhFGKjoaMLhRFKJFFa3946tgT6F-jFk1dxvOUvlzP_OKgW5uVquqSkvl2lnPBbx-x-ke86x02PmmaL5XubqTbLShnWmf4j2ELXnTM1dbMi2rEybwZEnWQrdACpzgkAtMAPYwKTOv4P3/s1536/Building%20MovieVibes%20with%20Agentic%20AI.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1536&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPOS8YEHaFg4pVehir2SRM7nYe35Lwozb3dH6Wf14AKIhFGKjoaMLhRFKJFFa3946tgT6F-jFk1dxvOUvlzP_OKgW5uVquqSkvl2lnPBbx-x-ke86x02PmmaL5XubqTbLShnWmf4j2ELXnTM1dbMi2rEybwZEnWQrdACpzgkAtMAPYwKTOv4P3/s320/Building%20MovieVibes%20with%20Agentic%20AI.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h3&gt;

&lt;p&gt;Things were going smoothly until they weren’t. 😅&lt;/p&gt;

&lt;h4&gt;Compilation Errors&lt;/h4&gt;

&lt;p&gt;When we added the &lt;code&gt;OmdbMovieResponse&lt;/code&gt; model, our service layer suddenly couldn&#39;t find the &lt;code&gt;getTitle()&lt;/code&gt;, &lt;code&gt;getPlot()&lt;/code&gt;, etc. methods — even though they clearly existed. The culprit? Missing getters (at least that&#39;s what we thought at the time...).&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;We tried:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Manually writing getters ✅&lt;/li&gt;
  &lt;li&gt;Using Lombok’s &lt;code&gt;@Getter&lt;/code&gt; annotation ✅&lt;/li&gt;
  &lt;li&gt;Cleaning and rebuilding Maven ✅&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still, values were &lt;code&gt;null&lt;/code&gt; at runtime.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;The Root Cause&lt;/h4&gt;

&lt;p&gt;Turns out the problem was with &lt;b&gt;URL encoding&lt;/b&gt; of the title parameter. Movie titles with spaces (like &lt;i&gt;The Matrix&lt;/i&gt;) weren’t properly encoded, which broke the API call. Once we fixed that,&amp;nbsp;everything clicked into place. 🎯&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAmU7bGu4uzQqGWecT9ycx7THR50xNBDhyky9T22BQC-9qIMG1lmLaYld_IbfF_VEOZ70zxemlEGSOzfhpeum4FMprG0bGBiM-Gr551JnA4bisK2bmvOeUbx_c5n4oB0OcKW52iJNYcqk3e2XczCzIdpkqpsfkLOUOHFusWijMdocRCqLoUEHo/s1439/build-success.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;876&quot; data-original-width=&quot;1439&quot; height=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAmU7bGu4uzQqGWecT9ycx7THR50xNBDhyky9T22BQC-9qIMG1lmLaYld_IbfF_VEOZ70zxemlEGSOzfhpeum4FMprG0bGBiM-Gr551JnA4bisK2bmvOeUbx_c5n4oB0OcKW52iJNYcqk3e2XczCzIdpkqpsfkLOUOHFusWijMdocRCqLoUEHo/w640-h390/build-success.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;The AI would never have figured this out by itself. This was just my natural instincts kicking in to guide the AI as I would direct any other &lt;b&gt;human&lt;/b&gt; developer. Also, It has been ages since I worked on a Spring boot project with Maven. However, the usual gotchas are still there in the year 2025 🙄.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Stage 3: Talking to the LLM (via Ollama)&lt;/h3&gt;

&lt;p&gt;This was where things got &lt;i&gt;really&lt;/i&gt; fun.&lt;/p&gt;

&lt;p&gt;Instead of relying on cloud APIs like OpenAI, I used &lt;b&gt;Ollama&lt;/b&gt;, a local runtime for open-source LLMs. It let me:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Run a model like LLaMA or Mistral locally&lt;/li&gt;
  &lt;li&gt;Avoid API keys and cloud latency&lt;/li&gt;
  &lt;li&gt;Iterate on prompts rapidly without rate limits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app sends movie metadata (genre, plot, characters) to the local LLM with a tailored prompt. The LLM returns:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A summarized “vibe” of the movie&lt;/li&gt;
  &lt;li&gt;A list of recommended films with similar emotional or narrative energy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results were surprisingly nuanced and human-like.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8H-Cv7LP8vmng7jv5c5iT1Vw1VEQBIG5DuB9w195L0yAz7IRcR4GHj1YQa-fI_5hoRiYTJG28dpgSRLWzGAL1_3C5Ofp1Vy7zlgWB3v0P3PNlE1OMr5xYwDmgBT4TGIrOqp1nkq-WbqYmRHW-toK4oaONemkPuBlOlPxZGPMxRN5TxepHVLgi/s1057/postman-test.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;808&quot; data-original-width=&quot;1057&quot; height=&quot;490&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8H-Cv7LP8vmng7jv5c5iT1Vw1VEQBIG5DuB9w195L0yAz7IRcR4GHj1YQa-fI_5hoRiYTJG28dpgSRLWzGAL1_3C5Ofp1Vy7zlgWB3v0P3PNlE1OMr5xYwDmgBT4TGIrOqp1nkq-WbqYmRHW-toK4oaONemkPuBlOlPxZGPMxRN5TxepHVLgi/w640-h490/postman-test.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Tests, Cleanups, and Git Prep&lt;/h3&gt;

&lt;p&gt;To make the app production-ready:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;We wrote integration tests using &lt;code&gt;MockMvc&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Hid API keys in &lt;code&gt;.env&lt;/code&gt; files and excluded them via &lt;code&gt;.gitignore&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Structured the &lt;code&gt;MovieVibeRecommendationResponse&lt;/code&gt; as a list of objects, not just strings&lt;/li&gt;
  &lt;li&gt;Wrote a solid &lt;code&gt;README.md&lt;/code&gt; for onboarding others&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h3&gt;Going Agentic&lt;/h3&gt;

&lt;p&gt;With the basic loop working, I asked:&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;b&gt;How can this app become Agentic AI?&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;We designed the logic to act more like an &lt;i&gt;agent&lt;/i&gt; than a pipeline:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;It fetches movie metadata&lt;/li&gt;
  &lt;li&gt;Synthesizes emotional and narrative themes&lt;/li&gt;
  &lt;li&gt;Determines recommendations with intent — not just similarity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This emergent behavior made the experience feel more conversational and human, despite being fully automated and offline.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Reflections&lt;/h3&gt;

&lt;p&gt;This project was peak &lt;b&gt;Vibe Coding&lt;/b&gt; — no rigid architecture upfront, just a flowing experiment with a clear purpose and evolving ideas.&lt;/p&gt;

&lt;p&gt;The use of &lt;b&gt;Ollama&lt;/b&gt; was especially empowering. Running an LLM locally gave me:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Full control of the experience&lt;/li&gt;
  &lt;li&gt;No API costs or usage caps&lt;/li&gt;
  &lt;li&gt;A deeper understanding of how AI can enhance personal and creative tools&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;
&lt;/ul&gt;

&lt;h3&gt;Next Steps&lt;/h3&gt;

&lt;p&gt;For future improvements, I&#39;d love to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Add a slick front-end UI (maybe with React or&amp;nbsp;Tailwind)&lt;/li&gt;
  &lt;li&gt;Let users rate and fine-tune their recommendations&lt;/li&gt;
  &lt;li&gt;Persist data for returning visitors&lt;/li&gt;
  &lt;li&gt;Integrate retrieval-augmented generation for even smarter results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But even as an MVP, the app feels alive. It understands &lt;i&gt;vibe&lt;/i&gt;. And that’s the magic. I committed the code to my Github at &lt;a href=&quot;https://github.com/tyrell/movievibes&quot; target=&quot;_blank&quot;&gt;https://github.com/tyrell/movievibes&lt;/a&gt;. All this was done in a few hours since publishing my &lt;a href=&quot;https://www.tyrell.co/2025/07/introduction-to-spring-ai-bringing.html&quot; target=&quot;_blank&quot;&gt;previous post about Spring AI&lt;/a&gt; .&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;A Word on Spring AI&lt;/h3&gt;

&lt;p&gt;While this project used a more manual approach to interact with Ollama, I’m excited about the emerging capabilities of &lt;b&gt;Spring AI&lt;/b&gt;. It promises to simplify agentic workflows by integrating LLMs seamlessly into Spring-based applications — with features like prompt templates, model abstractions, embeddings, and even memory-backed agents.&lt;/p&gt;

&lt;p&gt;As Spring AI matures, I see it playing a major role in production-grade, AI-powered microservices. It aligns well with Spring’s core principles: abstraction, convention over configuration, and testability.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;


&lt;p&gt;&lt;b&gt;Try the idea. Build something weird. Talk to your code. Let it talk back. Locally.&lt;/b&gt; ✨&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #04ff00;&quot;&gt;&lt;b&gt;UPDATE (01/AUG/2025)&lt;/b&gt;: Read the sequel of this &lt;a href=&quot;https://www.tyrell.co/2025/08/building-modern-react-frontend-for.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/3926674484750444719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/3926674484750444719'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/07/building-movievibes-vibe-coding-journey.html' title='Building MovieVibes: A Vibe Coding Journey with Agentic AI'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOnVXcOJFGP_8jxKzbGQwK2kn2fFdrwyVS8CmwhuL5ZeNsgqeYt3VG-OD9mlJge6VsBOtRjPn_ozt1OhI6f3b8cLFvBRB6eUOFblppPtQ-5twaLtM4izPR4WBPi8JcawC3oSez1kAQ4IMS-0gh_DDqDqwL4XfZcZYWjK0S-CyqgER638EH5gvZ/s72-w267-h400-c/Vibe%20Coding%20with%20Agentic%20AI.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-4692876258741942921</id><published>2025-07-28T06:11:00.016+10:00</published><updated>2025-07-28T06:19:54.455+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="microservices"/><category scheme="http://www.blogger.com/atom/ns#" term="middleware"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Introduction to Spring AI: Bringing the Power of AI to the Spring Ecosystem</title><content type='html'>&lt;p&gt;Artificial Intelligence is no longer a niche capability—it’s rapidly becoming a foundational element across enterprise applications. Whether you&#39;re building smarter chatbots, generating insights from unstructured content, or integrating Large Language Models (LLMs) into your workflows, developers increasingly need streamlined ways to plug AI into real-world systems.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;That’s where &lt;a href=&quot;https://spring.io/projects/spring-ai&quot; target=&quot;_blank&quot;&gt;Spring AI&lt;/a&gt; steps in.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4hDe1S_xd4gRYxvSzn1bD16qvVxKAjOPveFr6TZ4mOmNzSVa_8a2aGsmf6x6thbul8FgPIb_y1Hl8vDUYfwsvwze_GHHDvTsihFrrxjgr22zd8LIxEp4QZev-onhrCknUmrMoKv-QnP12JWK-qEpCSazQ3wcjjWKNl_XSP4yUUuwIV7lFvauD/s472/spring-ai-integration-diagram.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;311&quot; data-original-width=&quot;472&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4hDe1S_xd4gRYxvSzn1bD16qvVxKAjOPveFr6TZ4mOmNzSVa_8a2aGsmf6x6thbul8FgPIb_y1Hl8vDUYfwsvwze_GHHDvTsihFrrxjgr22zd8LIxEp4QZev-onhrCknUmrMoKv-QnP12JWK-qEpCSazQ3wcjjWKNl_XSP4yUUuwIV7lFvauD/s320/spring-ai-integration-diagram.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;p&gt;In this blog post, I’ll introduce &lt;b&gt;Spring AI&lt;/b&gt;, a new project from the Spring team that brings first-class support for integrating generative AI and foundation models into Spring-based applications. It’s an exciting addition to the Spring ecosystem that aims to make AI integration as natural as working with data sources or messaging.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;What is Spring AI?&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Spring AI&lt;/b&gt; is an open-source project that provides a unified and consistent programming model to work with modern AI capabilities like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Large Language Models (LLMs)&lt;/b&gt; such as OpenAI, Azure OpenAI, Hugging Face, and Ollama&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Embedding Models&lt;/b&gt; for semantic search&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Vector Stores&lt;/b&gt; (like Redis, Milvus, Qdrant, Pinecone, and PostgreSQL with pgvector)&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Prompt Templates&lt;/b&gt;, &lt;b&gt;RAG (Retrieval-Augmented Generation)&lt;/b&gt; workflows, and &lt;b&gt;tool execution&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is deeply inspired by &lt;b&gt;Spring Data&lt;/b&gt; and &lt;b&gt;Spring Cloud&lt;/b&gt;, and brings that same level of abstraction and consistency to AI workflows.&lt;/p&gt;


&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Key Features of Spring AI&lt;/h3&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;h4&gt;1. Unified LLM API&lt;/h4&gt;
&lt;p&gt;Spring AI provides a consistent interface across multiple LLM providers like:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;OpenAI&lt;/li&gt;
  &lt;li&gt;Azure OpenAI&lt;/li&gt;
  &lt;li&gt;Hugging Face&lt;/li&gt;
  &lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows you to write code once and switch providers with minimal changes.&lt;/p&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;var response = chatClient.call(new Prompt(&quot;Tell me a joke about Spring Boot&quot;));
System.out.println(response.getResult());&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;2. Prompt Engineering Made Easy&lt;/h4&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;PromptTemplate template = new PromptTemplate(&quot;Translate this text to French: {text}&quot;);
template.add(&quot;text&quot;, &quot;Hello, world!&quot;);&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;3. Support for RAG (Retrieval-Augmented Generation)&lt;/h4&gt;
&lt;p&gt;Integrate AI responses with external knowledge sources using vector search. Spring AI supports various &lt;b&gt;vector stores&lt;/b&gt; and offers abstractions for embedding, storing, and retrieving content semantically.&lt;/p&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;Embedding embedding = embeddingClient.embed(&quot;Spring is great for microservices!&quot;);
vectorStore.add(new EmbeddingDocument(&quot;id-1&quot;, embedding, metadata));&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;4. Integration with Spring Boot&lt;/h4&gt;
&lt;p&gt;Spring AI is a first-class citizen in the Spring ecosystem. It works seamlessly with Spring Boot and supports features like:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Declarative configuration using &lt;code&gt;application.yml&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Integration with Actuator and Observability&lt;/li&gt;
  &lt;li&gt;Use of &lt;code&gt;@Bean&lt;/code&gt;, &lt;code&gt;@Configuration&lt;/code&gt;, and dependency injection&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;5. Tool Execution and Function Calling&lt;/h4&gt;
&lt;p&gt;Spring AI supports tool calling and function execution—critical for agent-based applications.&lt;/p&gt;

&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;A Simple Use Case&lt;/h3&gt;

&lt;p&gt;Let’s say you’re building a customer support chatbot. With Spring AI, you can:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Use OpenAI to handle natural language queries.&lt;/li&gt;
  &lt;li&gt;Store support articles in a vector database.&lt;/li&gt;
  &lt;li&gt;Implement RAG to enhance responses using your private knowledge base.&lt;/li&gt;
  &lt;li&gt;Define functions (e.g., &quot;create support ticket&quot;) that the model can call programmatically.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The entire pipeline is manageable using familiar Spring idioms.&lt;/p&gt;



&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Why Use Spring AI?&lt;/h3&gt;

&lt;p&gt;If you’re already using Spring Boot in your backend stack, Spring AI provides:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Consistency&lt;/b&gt;: Familiar APIs and configuration patterns.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Portability&lt;/b&gt;: Swap providers or vector stores with minimal refactoring.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Flexibility&lt;/b&gt;: Fine-grained control over prompts, embeddings, and function calls.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Productivity&lt;/b&gt;: Rapid prototyping and integration without boilerplate.&lt;/li&gt;
&lt;/ul&gt;



&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;Getting Started&lt;/h3&gt;

&lt;p&gt;To get started:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Add Spring AI to your Maven or Gradle project:&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.springframework.ai&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;spring-ai-openai-spring-boot-starter&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;ol start=&quot;2&quot;&gt;
  &lt;li&gt;Configure your provider:&lt;/li&gt;
&lt;/ol&gt;

&lt;pre style=&quot;margin-left: 40px; text-align: left;&quot;&gt;&lt;code&gt;spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}&lt;/code&gt;&lt;/pre&gt;

&lt;ol start=&quot;3&quot;&gt;
  &lt;li&gt;Inject and use the &lt;code&gt;ChatClient&lt;/code&gt;, &lt;code&gt;EmbeddingClient&lt;/code&gt;, or other components in your service.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Official guide: &lt;a href=&quot;https://docs.spring.io/spring-ai/reference&quot; target=&quot;_blank&quot;&gt;https://docs.spring.io/spring-ai/reference&lt;/a&gt;&lt;/p&gt;


&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;h3&gt;The Future of Enterprise AI with Spring&lt;/h3&gt;

&lt;p&gt;Spring AI represents a big leap in making AI accessible for mainstream enterprise developers. Instead of reinventing the wheel, teams can build intelligent systems using familiar patterns and strong ecosystem support.&lt;/p&gt;

&lt;p&gt;Whether you’re building smart assistants, enhancing search, or enabling decision support, Spring AI offers a solid foundation.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;I’ll be diving deeper into use cases and tutorials in future posts—stay tuned!&lt;/i&gt;&lt;/p&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4692876258741942921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4692876258741942921'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/07/introduction-to-spring-ai-bringing.html' title='Introduction to Spring AI: Bringing the Power of AI to the Spring Ecosystem'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4hDe1S_xd4gRYxvSzn1bD16qvVxKAjOPveFr6TZ4mOmNzSVa_8a2aGsmf6x6thbul8FgPIb_y1Hl8vDUYfwsvwze_GHHDvTsihFrrxjgr22zd8LIxEp4QZev-onhrCknUmrMoKv-QnP12JWK-qEpCSazQ3wcjjWKNl_XSP4yUUuwIV7lFvauD/s72-c/spring-ai-integration-diagram.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-2928654608192563858</id><published>2025-07-23T07:25:00.011+10:00</published><updated>2025-07-23T13:25:08.025+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>  AI‑Assisted Coding vs Vibe Coding: Understanding the Costs, Benefits, and Risks in the Modern Enterprise</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd-Zu3QqZ2k6y1ouXVyLUVQBsYAQdkLLgwMwaJ6qB-i1lnMy_-oUJTtuFjimSxSp4NiraQ_JuQSfRooUV94NJBZKUth4L69w4Z4KsJLaztR5Hl_wBevarB1pc9DmoOBPBw91OjDghdO7CpjStcH8Ij-sneUVQwRNWBzKbn5X1vguP8IwalFA9p/s1536/blog-image.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1536&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd-Zu3QqZ2k6y1ouXVyLUVQBsYAQdkLLgwMwaJ6qB-i1lnMy_-oUJTtuFjimSxSp4NiraQ_JuQSfRooUV94NJBZKUth4L69w4Z4KsJLaztR5Hl_wBevarB1pc9DmoOBPBw91OjDghdO7CpjStcH8Ij-sneUVQwRNWBzKbn5X1vguP8IwalFA9p/w400-h266/blog-image.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Over the last decade, large enterprises have consistently evolved their engineering practices—from Agile to DevOps, from Microservices to Platform Engineering. In 2025, two trends dominate the software development landscape: &lt;b&gt;AI‑Assisted Coding&lt;/b&gt; and &lt;b&gt;Vibe Coding&lt;/b&gt;. While they may overlap in tooling and intent, their emphasis and enterprise implications are different.&lt;/p&gt;

&lt;p&gt;This post unpacks and contrasts these two approaches in terms of &lt;b&gt;costs, benefits, and risks&lt;/b&gt;, with added context on their &lt;b&gt;origins&lt;/b&gt; and &lt;b&gt;key voices&lt;/b&gt; shaping the conversation.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;AI‑Assisted Coding: Origins &amp;amp; Philosophy&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;The term &quot;AI-assisted coding&quot; became common in the late 2010s, as tools emerged to enhance developer productivity using machine learning. Early tools offered code completion, bug detection, and automated refactoring, trained on public code repositories. GitHub Copilot (2021), Amazon CodeWhisperer (2022), and now AI-native IDEs like Replit have integrated deep AI support.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;“The Copilot team found that developers completed tasks 55% faster with AI suggestions.”&lt;/i&gt; – &lt;a href=&quot;https://arxiv.org/abs/2302.06590&quot; target=&quot;_blank&quot;&gt;GitHub Research, 2023&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Vibe Coding: Origins &amp;amp; Philosophy&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkm71l1BFzOBZbaSFj98iDw-Uq0IyH2cK-zh9gooJt2fgUywEn8mbdDRN5uo2jwSjJeGwnMIPzxWIsEHiK7ULcuOGk7-Enpwjv-R7PJUfPpWAOBpz9DlPcDiYN2oNArvmbdYnIJEnlswI1zmwaoZkowTwAo-na6lc4oDcSJyhtA7IzbDAQbEE7/s603/andrej-vibecodeing.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;599&quot; data-original-width=&quot;603&quot; height=&quot;318&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkm71l1BFzOBZbaSFj98iDw-Uq0IyH2cK-zh9gooJt2fgUywEn8mbdDRN5uo2jwSjJeGwnMIPzxWIsEHiK7ULcuOGk7-Enpwjv-R7PJUfPpWAOBpz9DlPcDiYN2oNArvmbdYnIJEnlswI1zmwaoZkowTwAo-na6lc4oDcSJyhtA7IzbDAQbEE7/w320-h318/andrej-vibecodeing.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Coined by Andrej Karpathy (OpenAI cofounder and former Tesla AI director) on X in February 2025:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;“There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.”&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The approach emphasizes working in &quot;flow&quot; with AI companions, focusing on intent and outcome over code syntax. It resonates with those building prototypes, MVPs, or experimenting creatively with LLMs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;“It’s not really coding – I just see stuff, say stuff, run stuff, and copy-paste stuff, and it mostly works.”&lt;/i&gt; – Karpathy&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Critics argue that vibe coding trivializes the rigor of engineering:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;&quot;The term is misleading... It implies ease, but in practice it&#39;s mentally exhausting.&quot;&lt;/i&gt; – Andrew Ng, LangChain Conf 2025&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Comparison Table: AI‑Assisted Coding vs Vibe Coding&lt;/h3&gt;

&lt;table border=&quot;1&quot; cellpadding=&quot;6&quot; cellspacing=&quot;0&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Aspect&lt;/th&gt;
      &lt;th&gt;AI‑Assisted Coding&lt;/th&gt;
      &lt;th&gt;Vibe Coding&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Origins &amp;amp; Philosophy&lt;/td&gt;
      &lt;td&gt;ML-powered developer tools since ~2018&lt;/td&gt;
      &lt;td&gt;Coined by Karpathy in 2025; emphasizes flow and experimentation&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Primary Focus&lt;/td&gt;
      &lt;td&gt;Automating code &amp;amp; improving quality&lt;/td&gt;
      &lt;td&gt;Prototyping, fast ideation, and flow&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Costs&lt;/td&gt;
      &lt;td&gt;Tool licensing, training, integration, code review overhead&lt;/td&gt;
      &lt;td&gt;DevX investment, non-standard environments, prompt engineering&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Benefits&lt;/td&gt;
      &lt;td&gt;Speed, quality, better onboarding, fewer bugs&lt;/td&gt;
      &lt;td&gt;Innovation, accessibility, creativity, team morale&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Risks&lt;/td&gt;
      &lt;td&gt;IP &amp;amp; security concerns, skill atrophy, AI hallucination&lt;/td&gt;
      &lt;td&gt;Lack of accountability, fragile prototypes, inconsistent quality&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Enterprise Fit&lt;/td&gt;
      &lt;td&gt;Structured SDLC tasks, junior dev enablement&lt;/td&gt;
      &lt;td&gt;MVPs, PoCs, experimental sprints, hackathons&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;



&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdpu7XNbH7fC8DMUm6zmQZvCBJEL4goh4q6pDZ2vx1tX-PVkJc4v2N1uenaR8COVcQ90ZppC53Dte5Zq5g8lagAysfUdeMfAxHNSdS67Ik_u7zLdBS8GYWkdsYXogzB2Fwo5khZj2FaCtIbx7FZAa_e5Vj988SA81rwv8zLb8_1v-YgD4JnsPe/s1024/vibe-coding.jpeg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdpu7XNbH7fC8DMUm6zmQZvCBJEL4goh4q6pDZ2vx1tX-PVkJc4v2N1uenaR8COVcQ90ZppC53Dte5Zq5g8lagAysfUdeMfAxHNSdS67Ik_u7zLdBS8GYWkdsYXogzB2Fwo5khZj2FaCtIbx7FZAa_e5Vj988SA81rwv8zLb8_1v-YgD4JnsPe/s320/vibe-coding.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Strategic Guidance for Enterprises&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;b&gt;Adopt AI‑Assisted Coding tactically&lt;/b&gt;: Use in boilerplate-heavy domains, onboarding flows, or test generation.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Enable Vibe Coding safely&lt;/b&gt;: Encourage in low-risk environments, MVP tracks, or labs.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Create DevX Guardrails&lt;/b&gt;: Establish standards around LLM prompts, code quality, and model trust boundaries.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Measure Beyond Vibes&lt;/b&gt;: Track actual productivity metrics (defect rate, rework, test coverage) alongside developer satisfaction.&lt;/li&gt;
&lt;/ol&gt;



&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;AI-assisted coding is here to stay. It augments developers and supports production-quality delivery. Vibe coding, meanwhile, embodies a cultural shift—toward creativity, rapid feedback, and AI-human interaction. Together, they represent the next evolution of software development.&lt;/p&gt;

&lt;p&gt;The challenge for tech leaders is to harness both trends intentionally—balancing structure with spontaneity, and quality with speed.&lt;/p&gt;



&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;How is your team adapting to this new era of development?&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/2928654608192563858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/2928654608192563858'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/07/aiassisted-coding-vs-vibe-coding.html' title='  AI‑Assisted Coding vs Vibe Coding: Understanding the Costs, Benefits, and Risks in the Modern Enterprise'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd-Zu3QqZ2k6y1ouXVyLUVQBsYAQdkLLgwMwaJ6qB-i1lnMy_-oUJTtuFjimSxSp4NiraQ_JuQSfRooUV94NJBZKUth4L69w4Z4KsJLaztR5Hl_wBevarB1pc9DmoOBPBw91OjDghdO7CpjStcH8Ij-sneUVQwRNWBzKbn5X1vguP8IwalFA9p/s72-w400-h266-c/blog-image.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-8822183456463512923</id><published>2025-06-14T07:38:00.004+10:00</published><updated>2025-06-14T11:44:36.307+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Is AI Shifting CI/CD Left?</title><content type='html'>&lt;h3&gt;Exploring the New Frontiers of Intelligent DevOps&lt;/h3&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqD5vcOcmcLjxYJTT4i8nRcWK9OwmPmPT45GYkTxjibBLaKHXfEo62Uke44FRMBzMAnqysFQKbUpGZBt6AUGmD-5Fjp9EXfub0qdVbjILAQJivxVTe9tmxLEcWIcfpJsA8cceOH83rgbP61fJT0SCfqpb31aRuFu-4CfY5cPIFro5N1KkO5ANW/s1536/ai-cicd-shift-left.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1536&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqD5vcOcmcLjxYJTT4i8nRcWK9OwmPmPT45GYkTxjibBLaKHXfEo62Uke44FRMBzMAnqysFQKbUpGZBt6AUGmD-5Fjp9EXfub0qdVbjILAQJivxVTe9tmxLEcWIcfpJsA8cceOH83rgbP61fJT0SCfqpb31aRuFu-4CfY5cPIFro5N1KkO5ANW/s320/ai-cicd-shift-left.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;In the (ever-evolving) world of enterprise technology and software engineering, Continuous Integration and Continuous Deployment (CI/CD) have become foundational pillars of modern delivery pipelines. But a new trend is emerging — driven by the rise of AI-powered tooling — that’s challenging conventional boundaries of when CI/CD begins.&lt;p&gt;&lt;/p&gt;

&lt;p&gt;There’s growing consensus among technologists and product engineers that &lt;b&gt;AI is shifting CI/CD left&lt;/b&gt;. But is this really happening? And if so, what does it mean in practice?&lt;/p&gt;

&lt;p&gt;Let’s unpack the hypothesis and explore how artificial intelligence is transforming the way software is designed, tested, and deployed.&lt;/p&gt;

&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;What Does &quot;Shifting Left&quot; Mean in CI/CD?&lt;/h3&gt;

&lt;p&gt;The concept of &lt;b&gt;&quot;shifting left&quot;&lt;/b&gt; refers to moving critical activities such as testing, security checks, compliance validation, and performance analysis &lt;b&gt;earlier in the software development lifecycle (SDLC)&lt;/b&gt; — ideally, before code even reaches the integration pipeline.&lt;/p&gt;

&lt;p&gt;Traditionally, CI/CD begins &lt;i&gt;after&lt;/i&gt; a developer writes code and pushes it to a shared repository. From there, pipelines run automated tests, perform builds, and deploy the code into various environments.&lt;/p&gt;

&lt;p&gt;But AI is now disrupting that sequence.&lt;/p&gt;

&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;How is AI Shifting CI/CD Further Left?&lt;/h3&gt;&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;

&lt;h4&gt;1. AI-Driven Code Generation with Built-In CI Hygiene&lt;/h4&gt;
&lt;p&gt;Tools like GitHub Copilot, Amazon CodeWhisperer, and Tabnine are more than just autocomplete helpers. They&#39;re becoming &lt;b&gt;context-aware copilots&lt;/b&gt; that can:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Generate code with appropriate logging, error handling, and testing hooks built-in&lt;/li&gt;
  &lt;li&gt;Suggest fixes and improvements aligned with CI linting and formatting rules&lt;/li&gt;
  &lt;li&gt;Alert developers to potential build or test failures &lt;i&gt;before the first commit&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In essence, these tools bring aspects of CI/CD directly into the IDE.&lt;/p&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;2. Automated Test Generation at Design Time&lt;/h4&gt;
&lt;p&gt;One of the most exciting frontiers is &lt;b&gt;AI-generated tests&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Given a function or method, AI can propose unit tests, integration tests, and mocks on the fly&lt;/li&gt;
  &lt;li&gt;Some tools even analyze user stories or acceptance criteria and write tests from natural language requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means test coverage is no longer an afterthought — it’s embedded into development workflows from the very start, reinforcing &lt;b&gt;CI-readiness&lt;/b&gt; even before integration begins.&lt;/p&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;3. Security and Compliance: Shift-Left DevSecOps via AI&lt;/h4&gt;
&lt;p&gt;AI is making &lt;b&gt;DevSecOps truly shift-left&lt;/b&gt; by:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Flagging security misconfigurations or dependency vulnerabilities in real time&lt;/li&gt;
  &lt;li&gt;Detecting hardcoded secrets or license violations &lt;i&gt;in the editor&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;Aligning code with &lt;b&gt;enterprise compliance policies&lt;/b&gt; automatically&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This reduces the friction between developers and security teams, embedding governance early in the dev lifecycle.&lt;/p&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;4. Intelligent CI/CD Pipeline Creation&lt;/h4&gt;
&lt;p&gt;Writing CI/CD YAML configurations can be complex and error-prone. AI is now helping by:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Translating natural language inputs into valid GitHub Actions, GitLab CI, or Jenkinsfiles&lt;/li&gt;
  &lt;li&gt;Tailoring pipelines to specific build environments, test suites, and deployment patterns&lt;/li&gt;
  &lt;li&gt;Making it easier for teams to &lt;b&gt;adopt best practices without deep DevOps expertise&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some platforms even use AI to recommend pipeline improvements based on historical failures or bottlenecks.&lt;/p&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;5. Infrastructure and Deployment Insights — Before a Line is Deployed&lt;/h4&gt;
&lt;p&gt;AI can now assist in designing Infrastructure as Code (IaC) and deployment topologies &lt;i&gt;before infra is provisioned&lt;/i&gt;:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Suggesting Terraform or CloudFormation templates aligned with the application&lt;/li&gt;
  &lt;li&gt;Recommending container orchestration, secrets management, or observability toolchains based on the architecture&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This collapses the gap between software design and production readiness.&lt;/p&gt;

&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;Architecture Realization in the Age of AI-Driven CI/CD&lt;/h3&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSgxnybWzRo6CZB4JtJJkHJRzetCHHwwy94xsygOgNJErysVCc4f3jLW5Ca_Buhzm-Otc-TcLraBEInoaQq4JQrFJCctoyReamQPAd2UQOsrW0ilYieWVFK0IHnywFWtPN9pgT_Qe5Rzv2Z4cD-oaXGH3dpQRdql8j4pN4x0FrDDeH5roGkFlc/s1024/archtecture-realisation.jpeg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSgxnybWzRo6CZB4JtJJkHJRzetCHHwwy94xsygOgNJErysVCc4f3jLW5Ca_Buhzm-Otc-TcLraBEInoaQq4JQrFJCctoyReamQPAd2UQOsrW0ilYieWVFK0IHnywFWtPN9pgT_Qe5Rzv2Z4cD-oaXGH3dpQRdql8j4pN4x0FrDDeH5roGkFlc/s320/archtecture-realisation.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;One of the core responsibilities of Enterprise and Solution Architects is to ensure &lt;b&gt;Architecture Realization&lt;/b&gt; — the translation of abstract blueprints and target-state models into working, compliant, and sustainable solutions in production.&lt;p&gt;&lt;/p&gt;

&lt;p&gt;However, realizing architecture has often been challenging due to the disconnect between upfront architectural intent and downstream engineering execution. The farther downstream architectural principles are checked — in code reviews, test reports, or go-live readiness — the more diluted they become.&lt;/p&gt;

&lt;p&gt;This is precisely where AI&#39;s shift-left impact on CI/CD can become a game-changer for architecture teams.&lt;/p&gt;

&lt;h4&gt;&lt;br /&gt;&lt;/h4&gt;&lt;h4&gt;Embedding Architectural Guardrails Upstream&lt;/h4&gt;
&lt;p&gt;AI-enhanced developer tools can now detect — and in some cases enforce — architectural decisions at the point of code authoring:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Suggesting correct usage of shared libraries, patterns, or design principles&lt;/li&gt;
  &lt;li&gt;Flagging violations of architectural standards (e.g., synchronous calls to asynchronous systems)&lt;/li&gt;
  &lt;li&gt;Mapping low-level implementations back to solution blueprints or enterprise guidelines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This empowers architects to shift architectural governance &lt;i&gt;leftward&lt;/i&gt;, embedding compliance and alignment within the development flow.&lt;/p&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;AI as a Realization Accelerator&lt;/h4&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguCncv2xjMT4JqtSxMcGdh_MLbDJCvymYiQ4x92rnfVx7VSEIZ-4o-JgG20xM6w4cfFY4136V-U8WQnfJsnFNx4BLz20KFnQD9aP8WsL2hQP8-lGrkf0Rix824PivuzANhBA5IbqMYZpMJOq7XnDWAIxnYb32rs3DECKneSkOGpvydUbYjBg_S/s1024/archtecture-realisation-model.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguCncv2xjMT4JqtSxMcGdh_MLbDJCvymYiQ4x92rnfVx7VSEIZ-4o-JgG20xM6w4cfFY4136V-U8WQnfJsnFNx4BLz20KFnQD9aP8WsL2hQP8-lGrkf0Rix824PivuzANhBA5IbqMYZpMJOq7XnDWAIxnYb32rs3DECKneSkOGpvydUbYjBg_S/s320/archtecture-realisation-model.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;LLMs can help solution architects generate baseline infrastructure-as-code, API contracts, or sequence diagrams directly from architecture models or user stories. This:&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Reduces the handoff gap between architecture and engineering&lt;/li&gt;
  &lt;li&gt;Improves traceability from high-level decisions to code artifacts&lt;/li&gt;
  &lt;li&gt;Accelerates the iterative refinement of architecture through working prototypes&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;Intelligent Feedback Loops for Architecture Evolution&lt;/h4&gt;
&lt;p&gt;With AI embedded in CI/CD telemetry, architects can access new insights such as:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Which architectural decisions correlate with slower deployments or more defects&lt;/li&gt;
  &lt;li&gt;Where design intent is being consistently ignored or misinterpreted&lt;/li&gt;
  &lt;li&gt;Whether technical debt is accumulating around specific architecture choices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This creates &lt;b&gt;continuous architecture feedback loops&lt;/b&gt;, essential for adapting and evolving architecture in real time.&lt;/p&gt;

&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;Empowering Federated Architecture Models&lt;/h4&gt;
&lt;p&gt;In large-scale agile enterprises, centralized architecture can’t scale alone. AI tooling that shifts CI/CD left also enables &lt;b&gt;federated architecture practices&lt;/b&gt;, where delivery teams take more responsibility for alignment and realization — with AI acting as an intelligent guide.&lt;/p&gt;

&lt;p&gt;This supports architecture operating models such as the &lt;i&gt;Architecture Owner&lt;/i&gt; role in SAFe, or the concept of &lt;i&gt;architecture as code&lt;/i&gt; in platform teams.&lt;/p&gt;

&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;The Bottom Line&lt;/h3&gt;

&lt;p&gt;As AI pushes CI/CD left, &lt;b&gt;architecture is no longer a PowerPoint exercise&lt;/b&gt; — it becomes executable, testable, and enforceable much earlier in the lifecycle.&lt;/p&gt;

&lt;p&gt;This marks the dawn of a new software development paradigm — one where &lt;b&gt;automation is intelligent, feedback is immediate, and DevOps is embedded from the start&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;For Enterprise and Solution Architects, this is a profound opportunity to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Ensure traceable realization of architectural intent&lt;/li&gt;
  &lt;li&gt;Accelerate delivery while reducing risk&lt;/li&gt;
  &lt;li&gt;Continuously improve architecture with real-world signals&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;What’s Next?&lt;/h3&gt;

&lt;p&gt;In future posts, we’ll explore:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Real-world tools and plugins enabling this shift&lt;/li&gt;
  &lt;li&gt;AI-powered DevSecOps in action&lt;/li&gt;
  &lt;li&gt;How to redesign CI/CD governance in an AI-augmented world&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8822183456463512923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8822183456463512923'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/06/is-ai-shifting-cicd-left.html' title='Is AI Shifting CI/CD Left?'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqD5vcOcmcLjxYJTT4i8nRcWK9OwmPmPT45GYkTxjibBLaKHXfEo62Uke44FRMBzMAnqysFQKbUpGZBt6AUGmD-5Fjp9EXfub0qdVbjILAQJivxVTe9tmxLEcWIcfpJsA8cceOH83rgbP61fJT0SCfqpb31aRuFu-4CfY5cPIFro5N1KkO5ANW/s72-c/ai-cicd-shift-left.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-7019088074586737275</id><published>2025-06-05T07:33:00.009+10:00</published><updated>2025-06-05T08:13:49.238+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>2025 Internet Trends: The AI Surge – Key Takeaways from Mary Meeker&#39;s Report</title><content type='html'>&lt;h2&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ROmzLFXoBGOhWFZdlgC1iOSv30K7MIex7yIvubebLVPdohuyr_c_kevGPvc7OwDb5C-a-vuSQbPWup55a3CZihLJzyA9vNsZCnyjoKT8CKCGyQ3ebzfCuSTHGUqXZE7gvAM29GblkrtXW8E9I3pBobCTFq82SUB6rRkQj2znaH2Ohfc1CwGL/s912/mary-meeker-ai-2025.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;676&quot; data-original-width=&quot;912&quot; height=&quot;474&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ROmzLFXoBGOhWFZdlgC1iOSv30K7MIex7yIvubebLVPdohuyr_c_kevGPvc7OwDb5C-a-vuSQbPWup55a3CZihLJzyA9vNsZCnyjoKT8CKCGyQ3ebzfCuSTHGUqXZE7gvAM29GblkrtXW8E9I3pBobCTFq82SUB6rRkQj2znaH2Ohfc1CwGL/w640-h474/mary-meeker-ai-2025.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;b&gt;Mary Meeker&lt;/b&gt; and the BOND team have released their much-anticipated &lt;i&gt;2025 Internet Trends&lt;/i&gt; report—and this year, the focus is clear: &lt;b&gt;Artificial Intelligence&lt;/b&gt;. What began as a collection of “disparate data-points” turned into a sweeping 300+ page document detailing how AI is transforming everything—from internet usage and enterprise software to labor markets and geopolitics (p. 2).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;1. AI Adoption is Outpacing the Internet Era&lt;/h3&gt;
&lt;p&gt;In just 17 months, OpenAI’s ChatGPT scaled from 100 million to &lt;b&gt;800 million weekly active users&lt;/b&gt;, an 8x growth rate that dwarfs the pace of early internet platforms (p. 55).&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;“AI user and usage trending is ramping materially faster…and the machines can outpace us.” – &lt;i&gt;Mary Meeker, p. 2&lt;/i&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;To put it into context, while the Internet took 23 years to reach 90% of its global user base outside North America, ChatGPT did it in just &lt;b&gt;three years&lt;/b&gt; (p. 56).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;2. Capital Expenditure in AI is Exploding&lt;/h3&gt;
&lt;p&gt;Tech giants—Apple, NVIDIA, Microsoft, Alphabet, Amazon (AWS), and Meta—are projected to spend a massive &lt;b&gt;$212B in CapEx in 2024&lt;/b&gt;, a 63% increase over the last decade (p. 97). This is not just infrastructure—it’s a full-scale arms race to define the future of AI platforms.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;3. Performance Up, Costs Down&lt;/h3&gt;
&lt;p&gt;Training compute has grown at &lt;b&gt;360% annually&lt;/b&gt; over the past 15 years (p. 15), while inference costs per token have steadily fallen. This convergence has spurred developer participation: NVIDIA’s AI ecosystem has grown to 6 million developers (p. 38), and Google’s Gemini AI ecosystem now boasts 7 million developers, a 5x year-over-year increase (p. 39).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;4. Simultaneous Global Adoption&lt;/h3&gt;
&lt;p&gt;Unlike the first wave of the internet, AI adoption isn’t starting in Silicon Valley and diffusing globally—it’s going global &lt;b&gt;from day one&lt;/b&gt;. China is not only a key competitor but also a significant contributor to open-source models and industrial robotics (p. 289, p. 293).&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;“AI leadership could beget geopolitical leadership – and not vice-versa.” – &lt;i&gt;p. 8&lt;/i&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;5. AI Is Reshaping the Workforce&lt;/h3&gt;
&lt;p&gt;AI job postings in the U.S. have surged by &lt;b&gt;+448%&lt;/b&gt; since 2018, while non-AI tech roles are actually down 9% (p. 302). Across enterprises, over 75% of global CMOs are already using or testing generative AI tools (p. 70). And legacy players like JP Morgan and Kaiser Permanente are modernizing entire systems using AI (p. 72, p. 73).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;6. AI Has Gone Human&lt;/h3&gt;
&lt;p&gt;In a March 2025 study, &lt;b&gt;73% of participants mistook AI responses as human&lt;/b&gt; in Turing-style tests (p. 42). ChatGPT and other models are now matching or surpassing human performance on reasoning benchmarks like MMLU (p. 41), and generating realistic images, audio, and even translated voices (p. 44–47).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;7. Risks Are Real, But So Is Optimism&lt;/h3&gt;
&lt;p&gt;The report is also clear about the risks: algorithmic bias, employment displacement, surveillance, and AI weaponisation. But the long-term view leans optimistic:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;“Success in creating AI could be the biggest event in the history of our civilization. But it could also be the last – unless we learn how to avoid the risks.” – &lt;i&gt;Stephen Hawking, p. 51&lt;/i&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Final Thoughts&lt;/h3&gt;
&lt;p&gt;AI is no longer a lab experiment—it is the defining technology of our time. As Mary Meeker puts it, the compounding power of AI is now layered on top of decades of internet infrastructure. The result? Faster adoption, broader impact, and massive change.&lt;/p&gt;

&lt;p&gt;Whether you’re a technologist, policymaker, or curious citizen, the message is clear: &lt;b&gt;It’s AI-first now&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Full Report:&amp;nbsp; &lt;a href=&quot;https://www.bondcap.com/report/tai/#view/0&quot; target=&quot;_blank&quot;&gt;https://www.bondcap.com/report/tai/#view/0&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/7019088074586737275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/7019088074586737275'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/06/2025-internet-trends-ai-surge-key.html' title='2025 Internet Trends: The AI Surge – Key Takeaways from Mary Meeker&#39;s Report'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ROmzLFXoBGOhWFZdlgC1iOSv30K7MIex7yIvubebLVPdohuyr_c_kevGPvc7OwDb5C-a-vuSQbPWup55a3CZihLJzyA9vNsZCnyjoKT8CKCGyQ3ebzfCuSTHGUqXZE7gvAM29GblkrtXW8E9I3pBobCTFq82SUB6rRkQj2znaH2Ohfc1CwGL/s72-w640-h474-c/mary-meeker-ai-2025.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-1973202669667540779</id><published>2025-03-08T16:06:00.004+11:00</published><updated>2025-03-08T16:06:28.820+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="Leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="Tech"/><title type='text'>Are Flat Hierarchies the Future of Work?</title><content type='html'>&lt;div _ngcontent-ng-c1518584453=&quot;&quot; class=&quot;markdown markdown-main-panel stronger&quot; dir=&quot;ltr&quot; id=&quot;model-response-message-contentr_662ca6a9f74328a5&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;p data-sourcepos=&quot;6:1-6:361&quot;&gt;&lt;span class=&quot;citation-0 recitation citation-end-0&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKDl7icfJnZpxtL-aJfaPDRkGLzgMw-iKWZ6cTrmua6XXrN6SRbUGEls0wEfaxtC87xnS6Ed_Os9ueMH5omA9Mz1pKmXGV_ElDbqJ9TCIoiF8rWjInMUCtx85OuQv4bzHk98AEYXtJIegYN-E70LIcepELNLPjWa5jF5g2JoO1SKJRosrqrpDE/s1403/flat-vs-topdown.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1403&quot; height=&quot;137&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKDl7icfJnZpxtL-aJfaPDRkGLzgMw-iKWZ6cTrmua6XXrN6SRbUGEls0wEfaxtC87xnS6Ed_Os9ueMH5omA9Mz1pKmXGV_ElDbqJ9TCIoiF8rWjInMUCtx85OuQv4bzHk98AEYXtJIegYN-E70LIcepELNLPjWa5jF5g2JoO1SKJRosrqrpDE/s320/flat-vs-topdown.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The traditional organizational structure, with its multiple layers of management, is increasingly being challenged by a new model: the flat hierarchy. &lt;span class=&quot;citation-1 recitation citation-end-1&quot;&gt;In a flat hierarchy, there are fewer layers of management between the top and bottom of the organization, and individual contributors are given more autonomy and decision-making power.&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;8:1-8:302&quot;&gt;This trend is being driven by several factors, including the need for organizations to be more agile and responsive to change, the increasing availability of technology that enables employees to work more independently, and the growing desire of employees for more autonomy and control over their work.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;10:1-10:50&quot; style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 data-sourcepos=&quot;10:1-10:50&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;The Pandemic&#39;s Impact: Exposing Inefficiencies&lt;/strong&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;12:1-12:288&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBzjBoVUsp-1xF4R-P5Kx3edPJiIRybV_eAFpudQ2pXYaYelNGUSDb4xzjTwcBtwi4UM6_Y4F905AhRW5l85qAc8iRnEOZA1SESkfKLYWfhqUNx1M0Q2MkPlL7quO68vxRVx3zioEYrbUd-_7gR3x6UzsmiPfbzfeWf3h6GkAaPX2SoVcVkAzz/s2048/remote-work.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;2048&quot; data-original-width=&quot;2048&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBzjBoVUsp-1xF4R-P5Kx3edPJiIRybV_eAFpudQ2pXYaYelNGUSDb4xzjTwcBtwi4UM6_Y4F905AhRW5l85qAc8iRnEOZA1SESkfKLYWfhqUNx1M0Q2MkPlL7quO68vxRVx3zioEYrbUd-_7gR3x6UzsmiPfbzfeWf3h6GkAaPX2SoVcVkAzz/s320/remote-work.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;The COVID-19 pandemic served as a massive, unplanned experiment in remote work, and it illuminated some critical truths about organizational structures. One of the most significant revelations was the limited value that many middle management layers provided in today&#39;s work environment, especially in organizations where Knowledge Workers are the main producers of the organisation&#39;s output.&lt;p&gt;&lt;/p&gt;&lt;ul data-sourcepos=&quot;14:1-25:0&quot; style=&quot;padding-inline-start: 32px; text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;14:1-16:111&quot;&gt;&lt;strong&gt;Increased Autonomy:&lt;/strong&gt;
&lt;ul data-sourcepos=&quot;15:5-16:111&quot; style=&quot;padding-inline-start: 32px;&quot;&gt;&lt;li data-sourcepos=&quot;15:5-15:207&quot;&gt;With forced remote work, individual contributors had to become more self-reliant. Many discovered they could effectively manage their tasks and collaborate with colleagues without constant supervision.&lt;/li&gt;&lt;li data-sourcepos=&quot;16:5-16:111&quot;&gt;This demonstrated that, with the right tools and clear goals, employees can thrive with greater autonomy.&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&lt;br /&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;17:1-19:140&quot;&gt;&lt;strong&gt;Reduced Need for Oversight:&lt;/strong&gt;
&lt;ul data-sourcepos=&quot;18:5-19:140&quot; style=&quot;padding-inline-start: 32px;&quot;&gt;&lt;li data-sourcepos=&quot;18:5-18:175&quot;&gt;The pandemic revealed that much of the perceived need for middle management oversight was rooted in presenteeism—the idea that physical presence equates to productivity.&lt;/li&gt;&lt;li data-sourcepos=&quot;19:5-19:140&quot;&gt;When output was measured by results rather than hours spent in the office, the necessity of constant managerial monitoring diminished.&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&lt;br /&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;20:1-22:149&quot;&gt;&lt;strong&gt;Streamlined Communication:&lt;/strong&gt;
&lt;ul data-sourcepos=&quot;21:5-22:149&quot; style=&quot;padding-inline-start: 32px;&quot;&gt;&lt;li data-sourcepos=&quot;21:5-21:159&quot;&gt;&lt;span class=&quot;citation-2 recitation citation-end-2&quot;&gt;Remote work forced organizations to adopt digital communication tools, which often bypassed traditional hierarchical communication channels.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;22:5-22:149&quot;&gt;This resulted in more direct and efficient information flow, highlighting the potential for streamlined communication in flatter organizations.&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&lt;br /&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;23:1-25:0&quot;&gt;&lt;strong&gt;Andy Jasse and Amazon:&lt;/strong&gt;
&lt;ul data-sourcepos=&quot;24:5-25:0&quot; style=&quot;padding-inline-start: 32px;&quot;&gt;&lt;li data-sourcepos=&quot;24:5-25:0&quot;&gt;&lt;span class=&quot;citation-3 recitation citation-end-3&quot;&gt;As seen in a Fortune article published recently, even large companies like Amazon are reevaluating the roles of middle managers. &lt;/span&gt;Andy Jasse is leading the charge in this re-evaluation. This shows that the pandemic has caused even the largest companies to re-evaluate how they are structured. (Source: &lt;a _nghost-ng-c2325335993=&quot;&quot; href=&quot;https://fortune.com/2025/03/04/amazon-ceo-andy-jassy-middle-managers-rto-gen-z/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://fortune.com/2025/03/04/amazon-ceo-andy-jassy-middle-managers-rto-gen-z/&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;26:1-26:32&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;26:1-26:32&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Benefits of Flat Hierarchies&lt;/strong&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;28:1-28:381&quot;&gt;There are a number of benefits to adopting a flat hierarchy. One of the most significant is that it can help to improve communication and collaboration within an organization. &lt;span class=&quot;citation-4 recitation citation-end-4&quot;&gt;When there are fewer layers of management, information can flow more freely between employees, and it is easier for employees to connect with each other and work together towards common goals.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;30:1-30:270&quot;&gt;&lt;span class=&quot;citation-5 recitation citation-end-5&quot;&gt;Flat hierarchies can also help to increase employee engagement and motivation. &lt;/span&gt;&lt;span class=&quot;citation-6 recitation citation-end-6&quot;&gt;When employees are given more autonomy and control over their work, they are more likely to feel invested in their jobs and to be motivated to perform at their best.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;32:1-32:162&quot;&gt;&lt;span class=&quot;citation-7 recitation citation-end-7&quot;&gt;Finally, flat hierarchies can help to reduce costs.&lt;/span&gt; When there are fewer managers, organizations can save money on salaries and other overhead costs. In my view, this not only reduces costs, but also frees up budget to reward those individual contributors who are directly responsible for the output.&lt;/p&gt;&lt;p data-sourcepos=&quot;34:1-34:37&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;34:1-34:37&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;How to Implement a Flat Hierarchy&lt;/strong&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;36:1-36:294&quot;&gt;If you are considering implementing a flat hierarchy in your organization, there are a few things you need to do. First, you need to clearly define roles and responsibilities. This will help to ensure that everyone knows what they are responsible for and that there is no duplication of effort.&lt;/p&gt;&lt;p data-sourcepos=&quot;38:1-38:219&quot;&gt;Second, you need to invest in training and development for your employees. This will help them to develop the skills they need to succeed in a flat hierarchy, such as decision-making, problem-solving, and communication.&lt;/p&gt;&lt;p data-sourcepos=&quot;40:1-40:156&quot;&gt;Finally, you need to create a culture of trust and transparency. This will help to ensure that employees feel comfortable taking risks and making decisions.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;42:1-42:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;&lt;h3 data-sourcepos=&quot;42:1-42:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;44:1-44:405&quot;&gt;Flat hierarchies are becoming increasingly common in organizations of all sizes. The pandemic has accelerated this trend, demonstrating the limitations of traditional management structures and the benefits of empowering individual contributors. By reducing the number of layers of management and empowering individual contributors, organizations can become more agile, efficient, and responsive to change.&lt;/p&gt;&lt;p data-sourcepos=&quot;46:1-46:26&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;46:1-46:26&quot;&gt;&lt;strong&gt;Additional reading ...&lt;/strong&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;48:1-48:204&quot;&gt;&lt;a _nghost-ng-c2325335993=&quot;&quot; href=&quot;https://www.google.com/search?q=https://www.forbes.com/sites/forbescoachescouncil/2022/06/16/the-rise-of-flat-organizational-structures/%3Fsh%3D47474d386215&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;The Rise of Flat Organizational Structures&lt;/a&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;49:1-49:208&quot;&gt;&lt;a _nghost-ng-c2325335993=&quot;&quot; href=&quot;https://www.google.com/search?q=https://www.forbes.com/sites/forbescoachescouncil/2022/06/16/the-rise-of-flat-organizational-structures/%3Fsh%3D47474d386215&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;The Benefits of Flat Organizational Structures&lt;/a&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;50:1-51:0&quot;&gt;&lt;a _nghost-ng-c2325335993=&quot;&quot; href=&quot;https://www.google.com/search?q=https://www.forbes.com/sites/forbescoachescouncil/2022/06/16/the-rise-of-flat-organizational-structures/%3Fsh%3D47474d386215&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;How to Implement a Flat Organizational Structure&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/1973202669667540779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/1973202669667540779'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/03/are-flat-hierarchies-future-of-work.html' title='Are Flat Hierarchies the Future of Work?'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKDl7icfJnZpxtL-aJfaPDRkGLzgMw-iKWZ6cTrmua6XXrN6SRbUGEls0wEfaxtC87xnS6Ed_Os9ueMH5omA9Mz1pKmXGV_ElDbqJ9TCIoiF8rWjInMUCtx85OuQv4bzHk98AEYXtJIegYN-E70LIcepELNLPjWa5jF5g2JoO1SKJRosrqrpDE/s72-c/flat-vs-topdown.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-4076291702055454015</id><published>2025-01-05T14:10:00.006+11:00</published><updated>2025-09-04T16:36:00.287+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="middleware"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>ReAct Prompting: Elevating Large Language Models with Reasoning and Action</title><content type='html'>&lt;p&gt;Large Language Models (LLMs) have revolutionized how we interact with machines, but they often struggle with tasks that require complex reasoning, decision-making, and interaction with the real world. Enter ReAct Prompting, a novel approach that empowers LLMs to exhibit more human-like intelligence by incorporating reasoning, action, and observation into their decision-making process.&lt;/p&gt;&lt;div _ngcontent-ng-c2156892898=&quot;&quot; class=&quot;markdown markdown-main-panel response-optimization stronger&quot; dir=&quot;ltr&quot; id=&quot;model-response-message-contentr_f5ae2373627e9262&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_KmJlMHhAZRppPUxlAtRjxT4DdjqB5eqEbZUpg_W6SCh7uXbblL4kx3KwMJ0vlKr1FOpHcbUb_s9myG4OjeJH0h8dXt5EByKevJ0Lwqhm0Fl7dnmJ3-R_MIUa0DM6Sj0hdzIg1UfpBV_z5Gp-3K7ViDqCarwxalFWDv_3kX8bel6W8S7rZEZ/s1146/agent-architecture.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;725&quot; data-original-width=&quot;1146&quot; height=&quot;253&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_KmJlMHhAZRppPUxlAtRjxT4DdjqB5eqEbZUpg_W6SCh7uXbblL4kx3KwMJ0vlKr1FOpHcbUb_s9myG4OjeJH0h8dXt5EByKevJ0Lwqhm0Fl7dnmJ3-R_MIUa0DM6Sj0hdzIg1UfpBV_z5Gp-3K7ViDqCarwxalFWDv_3kX8bel6W8S7rZEZ/w400-h253/agent-architecture.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3 data-sourcepos=&quot;7:1-7:28&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;What is ReAct Prompting?&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;9:1-9:68&quot;&gt;&lt;a href=&quot;https://www.promptingguide.ai/techniques/react&quot; target=&quot;_blank&quot;&gt;ReAct Prompting &lt;/a&gt;is a framework that guides LLMs to perform tasks by:&lt;/p&gt;&lt;ol data-sourcepos=&quot;11:1-16:0&quot;&gt;&lt;li data-sourcepos=&quot;11:1-12:0&quot;&gt;
&lt;p data-sourcepos=&quot;11:4-11:224&quot;&gt;&lt;b&gt;Reasoning:&lt;/b&gt; The LLM first analyzes the given task and generates a sequence of thoughts or reasoning steps. This involves breaking down the problem, identifying relevant information, and considering potential solutions.&lt;/p&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;13:1-14:0&quot;&gt;
&lt;p data-sourcepos=&quot;13:4-13:212&quot;&gt;&lt;b&gt;Action:&lt;/b&gt; Based on its reasoning, the LLM decides on an action to take. This could involve retrieving information from a knowledge base, performing a calculation, or interacting with an external tool or API.&lt;/p&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;15:1-16:0&quot;&gt;
&lt;p data-sourcepos=&quot;15:4-15:237&quot;&gt;&lt;b&gt;Observation:&lt;/b&gt; After performing the action, the LLM observes the outcome and updates its internal state accordingly. This feedback loop allows the model to refine its understanding of the situation and adjust its subsequent actions.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;h4 data-sourcepos=&quot;17:1-17:38&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Key Advantages of ReAct Prompting:&lt;/b&gt;&lt;/h4&gt;&lt;ul data-sourcepos=&quot;19:1-23:0&quot;&gt;&lt;li data-sourcepos=&quot;19:1-19:190&quot;&gt;&lt;b&gt;Enhanced Reasoning and Decision-Making:&lt;/b&gt; By explicitly modeling reasoning and action, ReAct enables LLMs to tackle complex problems that require multi-step planning and decision-making.&lt;/li&gt;&lt;li data-sourcepos=&quot;20:1-20:167&quot;&gt;&lt;b&gt;Improved Task Performance:&lt;/b&gt; ReAct has demonstrated significant improvements in various tasks, including question answering, dialogue systems, and robotic control.&lt;/li&gt;&lt;li data-sourcepos=&quot;21:1-21:191&quot;&gt;&lt;b&gt;Increased Transparency and Explainability:&lt;/b&gt; The explicit reasoning steps generated by the LLM provide insights into its decision-making process, making it easier to understand and debug.&lt;/li&gt;&lt;li data-sourcepos=&quot;22:1-23:0&quot;&gt;&lt;b&gt;Greater Flexibility and Adaptability:&lt;/b&gt; ReAct can be easily adapted to different tasks and environments by simply modifying the available actions and the observation feedback mechanism.&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;24:1-24:60&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;24:1-24:60&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Example: ReAct Prompting for a Restaurant Recommendation&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;26:1-26:122&quot;&gt;Imagine you&#39;re using an LLM to find a restaurant for dinner. A ReAct Prompting approach might involve the following steps:&lt;/p&gt;&lt;ol data-sourcepos=&quot;28:1-45:0&quot;&gt;&lt;li data-sourcepos=&quot;28:1-31:0&quot;&gt;
&lt;p data-sourcepos=&quot;28:4-28:18&quot;&gt;&lt;b&gt;Reasoning:&lt;/b&gt;&lt;/p&gt;
&lt;ul data-sourcepos=&quot;29:5-31:0&quot;&gt;&lt;li data-sourcepos=&quot;29:5-29:104&quot;&gt;&quot;I need to find a restaurant that serves Italian food and is within walking distance of my hotel.&quot;&lt;/li&gt;&lt;li data-sourcepos=&quot;30:5-31:0&quot;&gt;&quot;I should check online reviews to see which restaurants are highly rated.&quot;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;32:1-35:0&quot;&gt;
&lt;p data-sourcepos=&quot;32:4-32:15&quot;&gt;&lt;b&gt;Action:&lt;/b&gt;&lt;/p&gt;
&lt;ul data-sourcepos=&quot;33:5-35:0&quot;&gt;&lt;li data-sourcepos=&quot;33:5-33:74&quot;&gt;&quot;Search Google Maps for &#39;Italian restaurants near [hotel address]&#39;.&quot;&lt;/li&gt;&lt;li data-sourcepos=&quot;34:5-35:0&quot;&gt;&quot;Read the top 3 reviews for each of the top-rated restaurants.&quot;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;36:1-39:0&quot;&gt;
&lt;p data-sourcepos=&quot;36:4-36:20&quot;&gt;&lt;b&gt;Observation:&lt;/b&gt;&lt;/p&gt;
&lt;ul data-sourcepos=&quot;37:5-39:0&quot;&gt;&lt;li data-sourcepos=&quot;37:5-37:63&quot;&gt;&quot;Restaurant A has excellent reviews but is a bit pricey.&quot;&lt;/li&gt;&lt;li data-sourcepos=&quot;38:5-39:0&quot;&gt;&quot;Restaurant B has good reviews and is more affordable.&quot;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;40:1-42:0&quot;&gt;
&lt;p data-sourcepos=&quot;40:4-40:18&quot;&gt;&lt;b&gt;Reasoning:&lt;/b&gt;&lt;/p&gt;
&lt;ul data-sourcepos=&quot;41:5-42:0&quot;&gt;&lt;li data-sourcepos=&quot;41:5-42:0&quot;&gt;&quot;I&#39;m on a budget, so Restaurant B seems like a better option.&quot;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;43:1-45:0&quot;&gt;
&lt;p data-sourcepos=&quot;43:4-43:15&quot;&gt;&lt;b&gt;Action:&lt;/b&gt;&lt;/p&gt;
&lt;ul data-sourcepos=&quot;44:5-45:0&quot;&gt;&lt;li data-sourcepos=&quot;44:5-45:0&quot;&gt;&quot;Make a reservation at Restaurant B.&quot;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;h4 data-sourcepos=&quot;46:1-46:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;&lt;h4 data-sourcepos=&quot;46:1-46:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;An example written using&amp;nbsp; Python&lt;/b&gt;&lt;/h4&gt;&lt;h4 data-sourcepos=&quot;46:1-46:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;
  &lt;pre style=&quot;background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot;&gt;from langchain.chains import ReActChain&lt;br /&gt;from langchain.llms import OpenAI&lt;br /&gt;&lt;br /&gt;# Replace with your actual OpenAI API key&lt;br /&gt;llm = OpenAI(model_name=&quot;text-davinci-003&quot;, temperature=0.7) &lt;br /&gt;&lt;br /&gt;react_chain = ReActChain(&lt;br /&gt;    llm=llm, &lt;br /&gt;    verbose=True, &lt;br /&gt;    max_iterations=3, &lt;br /&gt;    tools=[&quot;search&quot;] &lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;# Example usage:&lt;br /&gt;prompt = &quot;Find me the best Italian restaurant near Times Square in New York City.&quot;&lt;br /&gt;result = react_chain.run(prompt)&lt;br /&gt;&lt;br /&gt;print(result)&lt;/span&gt;&lt;/pre&gt;&lt;/h4&gt;&lt;p data-sourcepos=&quot;40:1-40:17&quot;&gt;&lt;b&gt;How it works:&lt;/b&gt;&lt;/p&gt;&lt;ul data-sourcepos=&quot;42:1-46:0&quot;&gt;&lt;li data-sourcepos=&quot;42:1-42:96&quot;&gt;The &lt;b&gt;&lt;code&gt;ReActChain&lt;/code&gt;&lt;/b&gt; will internally guide the LLM through a series of reasoning and action steps.&lt;/li&gt;&lt;li data-sourcepos=&quot;43:1-43:201&quot;&gt;The &lt;b&gt;LLM&lt;/b&gt; will generate thoughts, such as &quot;I need to find Italian restaurants near Times Square,&quot; and then decide on an action, such as &quot;Search Google Maps for &#39;Italian restaurants near Times Square&#39;.&quot;&lt;/li&gt;&lt;li data-sourcepos=&quot;44:1-44:99&quot;&gt;The &lt;b&gt;&quot;search&quot; tool &lt;/b&gt;will be used to query Google Maps, and the results will be fed back to the LLM.&lt;/li&gt;&lt;li data-sourcepos=&quot;45:1-46:0&quot;&gt;The &lt;b&gt;LLM&lt;/b&gt; will then analyze the search results, potentially refine its reasoning, and decide on further actions or generate the final recommendation.&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-sourcepos=&quot;46:1-46:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;p&gt;&lt;/p&gt;
  
  &lt;/h4&gt;&lt;h3 data-sourcepos=&quot;46:1-46:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;&lt;h3 data-sourcepos=&quot;46:1-46:14&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;48:1-48:455&quot;&gt;ReAct Prompting represents a significant step towards creating more intelligent and versatile LLMs. By incorporating reasoning, action, and observation into their decision-making process, these models can tackle increasingly complex tasks and exhibit more human-like behavior. As research in this area continues to advance, we can expect to see even more sophisticated and capable AI systems that can seamlessly integrate with and navigate the real world.&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4076291702055454015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4076291702055454015'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2025/01/react-prompting-elevating-large.html' title='ReAct Prompting: Elevating Large Language Models with Reasoning and Action'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_KmJlMHhAZRppPUxlAtRjxT4DdjqB5eqEbZUpg_W6SCh7uXbblL4kx3KwMJ0vlKr1FOpHcbUb_s9myG4OjeJH0h8dXt5EByKevJ0Lwqhm0Fl7dnmJ3-R_MIUa0DM6Sj0hdzIg1UfpBV_z5Gp-3K7ViDqCarwxalFWDv_3kX8bel6W8S7rZEZ/s72-w400-h253-c/agent-architecture.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-7820474003178611685</id><published>2024-12-29T15:47:00.000+11:00</published><updated>2024-12-29T15:47:02.495+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Building Effective Agents: A Primer</title><content type='html'>&lt;div _ngcontent-ng-c2156892898=&quot;&quot; class=&quot;markdown markdown-main-panel response-optimization stronger&quot; dir=&quot;ltr&quot; id=&quot;model-response-message-contentr_9e88b839fa28e8d1&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;p data-sourcepos=&quot;3:1-3:39&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-hUItkGPAa0qwAKYfrMhgjsqzihuusbvyP1cd83riKHTE8aBmyPy_TZLTFSUXDwgWjuwGjzom7dVRSjLR_YSL8O0m5RUolCD-nQ_P9flLLqgFdsSo9hxQdlQSM8j2v-EBHLHizN3PEyo1aEOo98yiSSFiG7Aje8zcrPlJXGhzn3UNkvTJivAd/s2048/ai-agent.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;2048&quot; data-original-width=&quot;2048&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-hUItkGPAa0qwAKYfrMhgjsqzihuusbvyP1cd83riKHTE8aBmyPy_TZLTFSUXDwgWjuwGjzom7dVRSjLR_YSL8O0m5RUolCD-nQ_P9flLLqgFdsSo9hxQdlQSM8j2v-EBHLHizN3PEyo1aEOo98yiSSFiG7Aje8zcrPlJXGhzn3UNkvTJivAd/s320/ai-agent.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;In today&#39;s rapidly evolving technological landscape, the concept of &quot;agents&quot; is gaining significant traction. At their core, agents are autonomous systems designed to perform specific tasks or achieve defined goals. These systems can range from simple software bots to complex AI-powered entities capable of interacting with the real world. Large Language Models (LLMs), with their remarkable ability to understand and generate human language, are a prime example of this emerging class of agents.&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:322&quot;&gt;The potential benefits of effective agents are vast. Imagine a world where AI-powered assistants seamlessly manage our schedules, optimize our energy consumption, and even personalize our healthcare experiences. However, realizing this potential requires a careful and deliberate approach to their design and development.&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:51&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:51&quot;&gt;&lt;strong&gt;Key Considerations: Simplicity and Transparency&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:128&quot;&gt;The article &quot;&lt;a href=&quot;https://www.anthropic.com/research/building-effective-agents&quot; target=&quot;_blank&quot;&gt;Building Effective Agents&lt;/a&gt;&quot; by Anthropic highlights two crucial considerations: &lt;strong&gt;simplicity&lt;/strong&gt; and &lt;strong&gt;transparency&lt;/strong&gt;.&lt;/p&gt;&lt;ul data-sourcepos=&quot;13:1-28:0&quot; style=&quot;text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;13:1-20:0&quot;&gt;
&lt;p data-sourcepos=&quot;13:3-14:336&quot;&gt;&lt;strong&gt;Simplicity:&lt;/strong&gt;
Simpler agents are inherently easier to understand and reason about. This simplicity not only facilitates debugging and maintenance but also enhances our ability to predict and control their behavior. By minimizing complexity, we can reduce the risk of unintended consequences and ensure that agents align with our desired outcomes.&lt;/p&gt;
&lt;p data-sourcepos=&quot;16:5-19:78&quot;&gt;Achieving simplicity in agent design can involve various strategies, such as:&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li data-sourcepos=&quot;16:5-19:78&quot;&gt;&lt;strong&gt;Modularization:&lt;/strong&gt; Breaking down complex tasks into smaller, more manageable sub-tasks.&amp;nbsp;&lt;/li&gt;&lt;li data-sourcepos=&quot;16:5-19:78&quot;&gt;&lt;strong&gt;Abstraction:&lt;/strong&gt; Creating higher-level representations that simplify the underlying complexity.&amp;nbsp;&lt;/li&gt;&lt;li data-sourcepos=&quot;16:5-19:78&quot;&gt;&lt;strong&gt;Minimalism:&lt;/strong&gt; Striving for the most concise and elegant solutions.&lt;/li&gt;&lt;/ol&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;21:1-28:0&quot;&gt;
&lt;p data-sourcepos=&quot;21:3-22:339&quot;&gt;&lt;strong&gt;Transparency:&lt;/strong&gt;
Transparency is paramount for building trust and ensuring accountability. When we can understand how an agent makes decisions, we can more effectively evaluate its performance, identify biases, and intervene when necessary. Transparent agents also facilitate auditing and debugging, making it easier to pinpoint and rectify any issues.&lt;/p&gt;
&lt;p data-sourcepos=&quot;24:5-27:112&quot;&gt;Promoting transparency in agent design can involve:&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li data-sourcepos=&quot;24:5-27:112&quot;&gt;&lt;strong&gt;Providing clear explanations:&lt;/strong&gt; Clearly documenting the agent&#39;s design, its underlying logic, and the rationale behind its decisions.&amp;nbsp;&lt;/li&gt;&lt;li data-sourcepos=&quot;24:5-27:112&quot;&gt;&lt;strong&gt;Visualizing decision-making processes:&lt;/strong&gt; Using visualizations and other techniques to make the agent&#39;s internal workings more understandable.&amp;nbsp;&lt;/li&gt;&lt;li data-sourcepos=&quot;24:5-27:112&quot;&gt;&lt;strong&gt;Allowing for human oversight:&lt;/strong&gt; Enabling human intervention and control at critical decision points.&lt;/li&gt;&lt;/ol&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;33:1-33:23&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;33:1-33:23&quot;&gt;&lt;strong&gt;Further Exploration&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;35:1-35:179&quot;&gt;I encourage you to dive deeper into the fascinating world of agent technology. The field is rapidly evolving, and there are numerous resources available for further exploration. Here&#39;s one of the videos I found to contain a good overview. &lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;458&quot; src=&quot;https://www.youtube.com/embed/0v7TQIh_kes&quot; width=&quot;551&quot; youtube-src-id=&quot;0v7TQIh_kes&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/7820474003178611685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/7820474003178611685'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/12/building-effective-agents-primer.html' title='Building Effective Agents: A Primer'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-hUItkGPAa0qwAKYfrMhgjsqzihuusbvyP1cd83riKHTE8aBmyPy_TZLTFSUXDwgWjuwGjzom7dVRSjLR_YSL8O0m5RUolCD-nQ_P9flLLqgFdsSo9hxQdlQSM8j2v-EBHLHizN3PEyo1aEOo98yiSSFiG7Aje8zcrPlJXGhzn3UNkvTJivAd/s72-c/ai-agent.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-712340408972598922</id><published>2024-12-19T21:07:00.002+11:00</published><updated>2024-12-19T21:07:16.141+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Building a Generative AI Contact Center Solution</title><content type='html'>&lt;p&gt;I recently came across an interesting article on the AWS website detailing how DoorDash is using generative AI, and I wanted to share some of the key highlights with you. The article, found at &lt;a _nghost-ng-c2019469870=&quot;&quot; href=&quot;https://aws.amazon.com/solutions/case-studies/doordash-bedrock-case-study/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://aws.amazon.com/solutions/case-studies/doordash-bedrock-case-study/&lt;/a&gt;, explains how DoorDash utilized Amazon&#39;s cloud service, Amazon Bedrock, to build a generative AI contact center solution. This solution aimed to improve the user experience for millions of delivery drivers (Dashers) globally.&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:245&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvwruX3otQ7pwFkMBXbTpGw_LuJqAduUS0L_Y4_n2dcDHYZH0T8ufrSxLGV9rxHk64_UOEEMJ68Ez_3XrlQcSTKyrkA0SD0cc_t8cpb0O-MwxqyJNeLHcgJO1LcqJavLK2wTGuVrqpGrbN1uhl5n7dPHvMCfQRA5fEbaJhx94eMsbh6sG4jA0/s1024/aws-doordash-rag.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;768&quot; data-original-width=&quot;1024&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvwruX3otQ7pwFkMBXbTpGw_LuJqAduUS0L_Y4_n2dcDHYZH0T8ufrSxLGV9rxHk64_UOEEMJ68Ez_3XrlQcSTKyrkA0SD0cc_t8cpb0O-MwxqyJNeLHcgJO1LcqJavLK2wTGuVrqpGrbN1uhl5n7dPHvMCfQRA5fEbaJhx94eMsbh6sG4jA0/s320/aws-doordash-rag.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Previously, supporting Dashers through phone support relied on human representatives, which could lead to slow response times and potentially lower quality answers. By implementing a generative AI system, DoorDash sought to address these issues.&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:229&quot;&gt;Amazon Bedrock provided a foundation for the project by offering access to high-performing AI models from various leading AI companies. This allowed DoorDash to select the most suitable model, Anthropic&#39;s Claude, for their needs.&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:296&quot;&gt;The collaboration between DoorDash, Amazon Web Services (AWS), and Anthropic resulted in a successful generative AI contact center solution. The new system reduced the development time for the AI application by 50% while maintaining a high standard for resolving issues and customer satisfaction.&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:296&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQn1BJ62_xliDFqn5OxEjJGACDEngXv6rZXrr_bVsiOPeXycATxacsgS3s54SGcC5udSP6wnphLJKWOYODwjCaWlBP5mhOoV2l42NQody9LhqpXACZIYdIgGMRPEMBG-W1b3IeCuf4k7iOGBbap5nV-WMmyF049L9KLIqJudq-CIHe_SPTWYh-/s960/DD%20Case%20Study%20Figure%201_%20Full%20Architecture.c069eaa93484795e89c11f04e26a3d1cd746e447.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;960&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQn1BJ62_xliDFqn5OxEjJGACDEngXv6rZXrr_bVsiOPeXycATxacsgS3s54SGcC5udSP6wnphLJKWOYODwjCaWlBP5mhOoV2l42NQody9LhqpXACZIYdIgGMRPEMBG-W1b3IeCuf4k7iOGBbap5nV-WMmyF049L9KLIqJudq-CIHe_SPTWYh-/s16000/DD%20Case%20Study%20Figure%201_%20Full%20Architecture.c069eaa93484795e89c11f04e26a3d1cd746e447.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;i&gt;Source: &lt;a href=&quot;https://aws.amazon.com/solutions/case-studies/doordash-bedrock-case-study&quot;&gt;https://aws.amazon.com/solutions/case-studies/doordash-bedrock-case-study&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;p data-sourcepos=&quot;9:1-9:296&quot;&gt; &lt;br /&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:296&quot;&gt; &lt;br /&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/712340408972598922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/712340408972598922'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/12/building-generative-ai-contact-center.html' title='Building a Generative AI Contact Center Solution'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvwruX3otQ7pwFkMBXbTpGw_LuJqAduUS0L_Y4_n2dcDHYZH0T8ufrSxLGV9rxHk64_UOEEMJ68Ez_3XrlQcSTKyrkA0SD0cc_t8cpb0O-MwxqyJNeLHcgJO1LcqJavLK2wTGuVrqpGrbN1uhl5n7dPHvMCfQRA5fEbaJhx94eMsbh6sG4jA0/s72-c/aws-doordash-rag.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-5759844394130024045</id><published>2024-11-14T07:12:00.002+11:00</published><updated>2024-12-16T06:33:43.427+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="middleware"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Decades of Integration Expertise, Fueled by Serverless: A Case Study</title><content type='html'>&lt;div _ngcontent-ng-c1111605338=&quot;&quot; class=&quot;markdown markdown-main-panel response-optimization stronger&quot; dir=&quot;ltr&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;div _ngcontent-ng-c1111605338=&quot;&quot; class=&quot;markdown markdown-main-panel response-optimization stronger&quot; dir=&quot;ltr&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE789lH6SyS8yOwArADGUGfut94KY_HFlnrhB4tTki8fHvmjvySec9YRXwp-y4PKVx5K56Lf_oMGn3W1Pw3fCQdrfAT2eDlVGtpao8xH3BbngrKpsIpE-3vKilvhuQDH8WVZWOqO965FXAW-WeYDdhbOo7uNfrPb0ci3R_5I1SBQpAaXjk2g4H/s982/SWM.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;982&quot; height=&quot;172&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE789lH6SyS8yOwArADGUGfut94KY_HFlnrhB4tTki8fHvmjvySec9YRXwp-y4PKVx5K56Lf_oMGn3W1Pw3fCQdrfAT2eDlVGtpao8xH3BbngrKpsIpE-3vKilvhuQDH8WVZWOqO965FXAW-WeYDdhbOo7uNfrPb0ci3R_5I1SBQpAaXjk2g4H/s320/SWM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c1111605338=&quot;&quot; class=&quot;markdown markdown-main-panel response-optimization stronger&quot; dir=&quot;ltr&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;p data-sourcepos=&quot;1:1-1:455&quot;&gt;&lt;a href=&quot;https://sevenwestmedia.com.au/&quot; target=&quot;_blank&quot;&gt;Seven West Media&lt;/a&gt; is one of Australia&#39;s leading media companies, owning and operating a diverse range of media assets across television, digital, and publishing platforms. With iconic brands like Channel 7, 7plus, and Pacific Magazines, Seven West Media delivers engaging content to millions of Australians daily. The company&#39;s commitment to innovation and audience-centric strategies has positioned it as a major player in the Australian media landscape.&lt;/p&gt;&lt;/div&gt;&lt;p data-sourcepos=&quot;5:1-5:275&quot;&gt;&lt;a href=&quot;https://www.mediaweek.com.au/seven-degrees-2025-sevens-total-tv-trading-system-phoenix-launch-date-revealed/&quot; target=&quot;_blank&quot;&gt;Seven&#39;s recent launch of Phoenix&lt;/a&gt;, a groundbreaking total TV trading system, marks a significant leap in the media industry. As the lead integration solution architect, I was instrumental in designing the application integration platform that powers this innovative solution.&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:222&quot;&gt;My decades of experience in software engineering and integration middleware, coupled with the robust capabilities of AWS Serverless technologies, were pivotal in building a scalable, cost-effective, and reliable platform.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;9:1-9:31&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;The Power of AWS Serverless&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;11:1-11:142&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/serverless/&quot; target=&quot;_blank&quot;&gt;AWS Serverless technologies&lt;/a&gt; offered a compelling solution for Phoenix. By eliminating the need for traditional server management, we achieved:&lt;/p&gt;&lt;ul data-sourcepos=&quot;13:1-16:0&quot;&gt;&lt;li data-sourcepos=&quot;13:1-13:130&quot;&gt;&lt;b&gt;Scalability:&lt;/b&gt; The platform can effortlessly adapt to fluctuating workloads, ensuring optimal performance during peak periods.&lt;/li&gt;&lt;li data-sourcepos=&quot;14:1-14:88&quot;&gt;&lt;b&gt;Cost-Efficiency:&lt;/b&gt; We only pay for the compute resources consumed, optimizing costs.&lt;/li&gt;&lt;li data-sourcepos=&quot;15:1-16:0&quot;&gt;&lt;b&gt;Rapid Development:&lt;/b&gt; Serverless functions enable rapid development and deployment cycles. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;19:1-19:50&quot;&gt;My contributions to the project were multifaceted:&lt;/p&gt;&lt;ul data-sourcepos=&quot;21:1-24:0&quot;&gt;&lt;li data-sourcepos=&quot;21:1-21:179&quot;&gt;&lt;b&gt;Architecture Design:&lt;/b&gt; I architected the integration platform, leveraging AWS Serverless components like Lambda, API Gateway, EventBridge and SQS to create a robust and flexible solution.&lt;/li&gt;&lt;li data-sourcepos=&quot;22:1-22:133&quot;&gt;&lt;b&gt;Integration Strategy:&lt;/b&gt; I defined the integration strategy, ensuring seamless communication between various systems and services.&lt;/li&gt;&lt;li data-sourcepos=&quot;23:1-24:0&quot;&gt;&lt;b&gt;Technical Leadership:&lt;/b&gt; I led the technical team, guiding the implementation and addressing technical challenges.&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;25:1-25:195&quot;&gt;By combining my deep understanding of integration patterns and AWS Serverless best practices, I was able to deliver a platform that empowers Seven to revolutionize their media trading operations.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;27:1-27:28&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;The Future of TV Trading&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;29:1-29:238&quot;&gt;Phoenix represents a significant step forward in the TV trading industry. By embracing innovative technologies and experienced leadership, we have created a platform that will drive efficiency, transparency, and growth for years to come.&lt;/p&gt;&lt;p data-sourcepos=&quot;33:1-33:92&quot;&gt;I am excited to see how Phoenix continues to evolve and shape the future of TV advertising. &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyYqi8TttKRQDanF95_RQUk-D56IAPXIMXvbYMzO5A7W-298nQqYFpccUqciGSjuWYpZNNDhdK5bHXcPm-eGCzLkfRyV8JrO5SZ2krKjwYzqaBmdqk1RZ88WyOZFM7QCSYqzj5yOYY75lCLaOYEeLlKijVMLZXKBz6fsNF_nABNK8eoeATRP4k/s3975/SWM%20Integration%20Solutioning%20-%20No%20Event%20Sourcing%20Support%20(Polling).jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;2063&quot; data-original-width=&quot;3975&quot; height=&quot;333&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyYqi8TttKRQDanF95_RQUk-D56IAPXIMXvbYMzO5A7W-298nQqYFpccUqciGSjuWYpZNNDhdK5bHXcPm-eGCzLkfRyV8JrO5SZ2krKjwYzqaBmdqk1RZ88WyOZFM7QCSYqzj5yOYY75lCLaOYEeLlKijVMLZXKBz6fsNF_nABNK8eoeATRP4k/w640-h333/SWM%20Integration%20Solutioning%20-%20No%20Event%20Sourcing%20Support%20(Polling).jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;/div&gt;&lt;div _ngcontent-ng-c1111605338=&quot;&quot; class=&quot;markdown markdown-main-panel response-optimization stronger&quot; dir=&quot;ltr&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;Are you interested in learning more about how AWS Serverless technologies can help you to achieve your business goals? If so, &lt;a href=&quot;https://www.linkedin.com/in/tyrell/&quot; target=&quot;_blank&quot;&gt;please contact me today&lt;/a&gt;.&lt;p data-sourcepos=&quot;26:1-26:150&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-sourcepos=&quot;26:1-26:150&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/5759844394130024045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/5759844394130024045'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/11/decades-of-integration-expertise-fueled.html' title='Decades of Integration Expertise, Fueled by Serverless: A Case Study'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE789lH6SyS8yOwArADGUGfut94KY_HFlnrhB4tTki8fHvmjvySec9YRXwp-y4PKVx5K56Lf_oMGn3W1Pw3fCQdrfAT2eDlVGtpao8xH3BbngrKpsIpE-3vKilvhuQDH8WVZWOqO965FXAW-WeYDdhbOo7uNfrPb0ci3R_5I1SBQpAaXjk2g4H/s72-c/SWM.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-5840720506839085830</id><published>2024-09-11T21:17:00.004+10:00</published><updated>2024-09-11T21:18:53.545+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Klarna&#39;s  AI-Driven Tech Overhaul: Salesforce and Workday Shutdown followed by Job Cuts</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;i&gt;August, 2024. AI is disrupting SaaS, and no one saw it coming ....&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Klarna, the popular buy-now-pay-later platform, is undergoing a significant technological transformation.&amp;nbsp;&lt;/p&gt;&lt;p&gt;As announced by CEO Sebastian Siemiatkowski, the company is shutting down its use of Salesforce and Workday, two major software-as-a-service (SaaS) providers. This decision is part of a broader initiative to streamline operations and leverage artificial intelligence (AI) for greater efficiency.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;588&#39; height=&#39;489&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dxAjoaYiSoDkk1QmSot9Pb7yqi7rOENcpU7Slh1RRXSm-kswY1eaFhSDuahu_I3IAY0eIFWdWpwB1s&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;According to Siemiatkowski, Klarna is consolidating its tech stack and replacing SaaS solutions with internally developed systems. This move is expected to reduce costs and improve the company&#39;s overall performance. The CEO emphasized the role of AI in driving this transformation, stating that the technology will enable Klarna to standardize processes and create a more lightweight and effective tech infrastructure.&lt;br /&gt;&lt;br /&gt;In addition to the SaaS shutdown, Klarna has also announced plans to reduce its workforce. The company believes that AI can help automate certain tasks and reduce the need for human intervention, leading to cost savings and improved efficiency.&lt;br /&gt;&lt;br /&gt;Klarna&#39;s recent announcement comes on the heels of its second-quarter financial results, which showed a 27% increase in revenue year-over-year. The company&#39;s strategic shift towards AI and a more streamlined tech stack is likely to have a significant impact on its future growth and profitability.&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/5840720506839085830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/5840720506839085830'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/09/klarnas-ai-driven-tech-overhaul.html' title='Klarna&#39;s  AI-Driven Tech Overhaul: Salesforce and Workday Shutdown followed by Job Cuts'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-5300956527410855308</id><published>2024-08-01T15:54:00.009+10:00</published><updated>2024-08-01T22:05:28.886+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="generative-ai"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><title type='text'>Zero-copy Data Integration (ZCI): Towards A New Era of Data Management</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;Understanding Zero-copy Data Integration (&lt;span&gt;ZCI&lt;/span&gt;)&lt;br /&gt;&lt;/h2&gt;&lt;p data-sourcepos=&quot;5:1-5:26&quot;&gt;&lt;span&gt;Zero-copy Integration (ZCI) is an approach to managing and accessing data across disparate systems.&lt;/span&gt;&lt;span&gt; Unlike traditional data integration methods that involve extracting,&lt;/span&gt;&lt;span&gt; transforming,&lt;/span&gt;&lt;span&gt; and loading (ETL) data into a centralized data warehouse,&lt;/span&gt;&lt;span&gt; ZCI enables direct access to data in its original location without physically moving or copying it.&lt;/span&gt;&lt;span&gt; This paradigm shift offers significant advantages in terms of performance,&lt;/span&gt;&lt;span&gt; cost,&lt;/span&gt;&lt;span&gt; and data governance.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:124&quot;&gt;&lt;span&gt;By eliminating the need for data movement,&lt;/span&gt;&lt;span&gt; ZCI drastically reduces latency and improves query performance.&lt;/span&gt;&lt;span&gt; Additionally,&lt;/span&gt;&lt;span&gt; it helps to preserve data integrity and consistency as there&#39;s no risk of data corruption during the transfer process.&lt;/span&gt;&lt;span&gt; Furthermore,&lt;/span&gt;&lt;span&gt; ZCI can significantly lower storage costs by avoiding redundant data copies.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:124&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDN7f5s1qR44_EXmQprkD6T8JKL9_w8X_PKI9eq8iTK0M03ISwJqRySl1QkL9sxgkF5BYfL9ShK-KWXKximSg94mhqcQVz_OW4DoBe7_83wlqir8Zysb9joTnoBH6yGrFxq6mB5N29YVF5NgkDhZAsz5-Tx6Uj1sUEFL-gtXGMEOnCHB6kOoKW/s2262/comparison-table.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;2262&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDN7f5s1qR44_EXmQprkD6T8JKL9_w8X_PKI9eq8iTK0M03ISwJqRySl1QkL9sxgkF5BYfL9ShK-KWXKximSg94mhqcQVz_OW4DoBe7_83wlqir8Zysb9joTnoBH6yGrFxq6mB5N29YVF5NgkDhZAsz5-Tx6Uj1sUEFL-gtXGMEOnCHB6kOoKW/w640-h204/comparison-table.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h1 data-sourcepos=&quot;9:1-9:57&quot; style=&quot;text-align: left;&quot;&gt;Architectural Patterns for Zero-copy Data Integration&lt;/h1&gt;&lt;p data-sourcepos=&quot;11:1-11:65&quot;&gt;&lt;span&gt;Several architectural patterns can be potentially employed to implement ZCI: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;13:1-13:18&quot; style=&quot;text-align: left;&quot;&gt;1. Federation&lt;/h3&gt;&lt;ul data-sourcepos=&quot;14:1-16:84&quot;&gt;&lt;li data-sourcepos=&quot;14:1-14:164&quot;&gt;&lt;b&gt;Overview:&lt;/b&gt;&lt;span&gt; This pattern involves creating a virtual view of data from multiple sources,&lt;/span&gt;&lt;span&gt; allowing users to query data as if it were stored in a single location.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;15:1-15:75&quot;&gt;&lt;b&gt;Key components:&lt;/b&gt;&lt;span&gt; Federation engine,&lt;/span&gt;&lt;span&gt; metadata repository,&lt;/span&gt;&lt;span&gt; data sources.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;16:1-16:84&quot;&gt;&lt;b&gt;Benefits:&lt;/b&gt;&lt;span&gt; Real-time access,&lt;/span&gt;&lt;span&gt; reduced data movement,&lt;/span&gt;&lt;span&gt; simplified data management.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;17:1-18:0&quot;&gt;&lt;b&gt;Challenges:&lt;/b&gt;&lt;span&gt; Performance overhead,&lt;/span&gt;&lt;span&gt; potential data inconsistencies.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;19:1-19:27&quot; style=&quot;text-align: left;&quot;&gt;2. Data Virtualization&lt;/h3&gt;&lt;ul data-sourcepos=&quot;20:1-24:0&quot;&gt;&lt;li data-sourcepos=&quot;20:1-20:207&quot;&gt;&lt;b&gt;Overview:&lt;/b&gt;&lt;span&gt; Similar to federation,&lt;/span&gt;&lt;span&gt; data virtualization creates a virtual layer on top of existing data sources.&lt;/span&gt;&lt;span&gt; However,&lt;/span&gt;&lt;span&gt; it often provides more advanced data transformation and manipulation capabilities.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;21:1-21:57&quot;&gt;&lt;b&gt;Key components:&lt;/b&gt;&lt;span&gt; Virtualization layer,&lt;/span&gt;&lt;span&gt; data sources.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;22:1-22:63&quot;&gt;&lt;b&gt;Benefits:&lt;/b&gt;&lt;span&gt; Flexibility,&lt;/span&gt;&lt;span&gt; agility,&lt;/span&gt;&lt;span&gt; reduced development time.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;23:1-24:0&quot;&gt;&lt;b&gt;Challenges:&lt;/b&gt;&lt;span&gt; Performance overhead,&lt;/span&gt;&lt;span&gt; complexity.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;25:1-25:17&quot; style=&quot;text-align: left;&quot;&gt;3. Data Mesh&lt;/h3&gt;&lt;ul data-sourcepos=&quot;26:1-26:184&quot;&gt;&lt;li data-sourcepos=&quot;26:1-26:184&quot;&gt;&lt;b&gt;Overview:&lt;/b&gt;&lt;span&gt; A decentralized data architecture where domain-driven data teams own and manage their data products.&lt;/span&gt;&lt;span&gt; ZCI can be leveraged to enable data sharing and consumption across domains.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;27:1-27:79&quot;&gt;&lt;b&gt;Key components:&lt;/b&gt;&lt;span&gt; Domain data products,&lt;/span&gt;&lt;span&gt; data mesh platform,&lt;/span&gt;&lt;span&gt; data consumers.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;28:1-28:70&quot;&gt;&lt;b&gt;Benefits:&lt;/b&gt;&lt;span&gt; Increased agility,&lt;/span&gt;&lt;span&gt; improved data quality,&lt;/span&gt;&lt;span&gt; scalability.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;29:1-30:0&quot;&gt;&lt;b&gt;Challenges:&lt;/b&gt;&lt;span&gt; Data governance,&lt;/span&gt;&lt;span&gt; complexity.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;31:1-31:23&quot; style=&quot;text-align: left;&quot;&gt;4. Hybrid Approach&lt;/h3&gt;&lt;ul data-sourcepos=&quot;32:1-36:0&quot;&gt;&lt;li data-sourcepos=&quot;32:1-32:184&quot;&gt;&lt;b&gt;Overview:&lt;/b&gt;&lt;span&gt; Combines elements of the above patterns to optimize for specific use cases.&lt;/span&gt;&lt;span&gt; For example,&lt;/span&gt;&lt;span&gt; federate frequently accessed data and virtualize less frequently accessed data.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;33:1-33:76&quot;&gt;&lt;b&gt;Key components:&lt;/b&gt;&lt;span&gt; Federation engine,&lt;/span&gt;&lt;span&gt; virtualization layer,&lt;/span&gt;&lt;span&gt; data sources.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;34:1-34:58&quot;&gt;&lt;b&gt;Benefits:&lt;/b&gt;&lt;span&gt; Flexibility,&lt;/span&gt;&lt;span&gt; performance,&lt;/span&gt;&lt;span&gt; cost-efficiency.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;35:1-36:0&quot;&gt;&lt;b&gt;Challenges:&lt;/b&gt;&lt;span&gt; Increased complexity.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;1:1-1:60&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-sourcepos=&quot;1:1-1:60&quot;&gt;Real-World Use Cases of Zero-copy Data Integration (ZCI)&lt;/h2&gt;&lt;p data-sourcepos=&quot;3:1-3:32&quot;&gt;&lt;span&gt;Zero-copy Data Integration (ZCI) offers significant advantages in various industries.&lt;/span&gt;&lt;span&gt; Let&#39;s explore some real-world use cases:&lt;/span&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;5:1-5:22&quot;&gt;Financial Services&lt;/h3&gt;&lt;ul data-sourcepos=&quot;7:1-7:32&quot;&gt;&lt;li data-sourcepos=&quot;7:1-7:32&quot;&gt;&lt;b&gt;Real-time Risk Assessment:&lt;/b&gt;&lt;span&gt; By accessing data directly from various sources (trading platforms,&lt;/span&gt;&lt;span&gt; market data feeds,&lt;/span&gt;&lt;span&gt; customer databases),&lt;/span&gt;&lt;span&gt; financial institutions can perform real-time risk assessments without the latency of data movement.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;8:1-8:126&quot;&gt;&lt;b&gt;Fraud Detection:&lt;/b&gt;&lt;span&gt; ZCI enables rapid analysis of large datasets from different systems to identify fraudulent activities.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;9:1-9:31&quot;&gt;&lt;b&gt;Regulatory Compliance:&lt;/b&gt;&lt;span&gt; By providing a unified view of data,&lt;/span&gt;&lt;span&gt; financial institutions can more efficiently meet regulatory requirements.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;11:1-11:14&quot;&gt;Healthcare&lt;/h3&gt;&lt;ul data-sourcepos=&quot;13:1-16:0&quot;&gt;&lt;li data-sourcepos=&quot;13:1-13:193&quot;&gt;&lt;b&gt;Precision Medicine:&lt;/b&gt;&lt;span&gt; ZCI can facilitate the integration of patient data from various sources (electronic health records,&lt;/span&gt;&lt;span&gt; genomics,&lt;/span&gt;&lt;span&gt; clinical trials) to enable personalized treatment plans.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;14:1-14:154&quot;&gt;&lt;b&gt;Population Health Management:&lt;/b&gt;&lt;span&gt; Analyzing large healthcare datasets without data movement can help identify trends and improve public health outcomes.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;15:1-16:0&quot;&gt;&lt;b&gt;Supply Chain Optimization:&lt;/b&gt;&lt;span&gt; ZCI can optimize the supply chain of medical supplies and equipment by providing real-time visibility into inventory levels and demand.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;17:1-17:10&quot;&gt;Retail&lt;/h3&gt;&lt;ul data-sourcepos=&quot;19:1-19:80&quot;&gt;&lt;li data-sourcepos=&quot;19:1-19:80&quot;&gt;&lt;b&gt;Omnichannel Commerce:&lt;/b&gt;&lt;span&gt; By integrating data from online and offline channels,&lt;/span&gt;&lt;span&gt; retailers can provide a seamless customer experience.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;20:1-20:142&quot;&gt;&lt;b&gt;Inventory Management:&lt;/b&gt;&lt;span&gt; ZCDI can optimize inventory levels by providing real-time visibility into stock levels across different locations.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;21:1-22:0&quot;&gt;&lt;b&gt;Customer Analytics:&lt;/b&gt;&lt;span&gt; Analyzing customer data without data movement can help retailers identify trends and personalize marketing campaigns.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;23:1-23:17&quot;&gt;Manufacturing&lt;/h3&gt;&lt;ul data-sourcepos=&quot;25:1-27:94&quot;&gt;&lt;li data-sourcepos=&quot;25:1-25:182&quot;&gt;&lt;b&gt;Supply Chain Optimization:&lt;/b&gt;&lt;span&gt; ZCI can improve supply chain efficiency by providing real-time visibility into inventory levels,&lt;/span&gt;&lt;span&gt; production schedules,&lt;/span&gt;&lt;span&gt; and transportation logistics.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;26:1-26:114&quot;&gt;&lt;b&gt;Predictive Maintenance:&lt;/b&gt;&lt;span&gt; Analyzing sensor data from equipment can help predict failures and prevent downtime.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;27:1-27:94&quot;&gt;&lt;b&gt;Quality Control:&lt;/b&gt;&lt;span&gt; ZCI can be used to analyze product data to identify quality issues and improve product quality.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;29:1-29:22&quot;&gt;Telecommunications&lt;/h3&gt;&lt;ul data-sourcepos=&quot;31:1-34:0&quot;&gt;&lt;li data-sourcepos=&quot;31:1-31:137&quot;&gt;&lt;b&gt;Network Optimization:&lt;/b&gt;&lt;span&gt; ZCI can help optimize network performance by analyzing network data without moving it to a central location.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;32:1-32:135&quot;&gt;&lt;b&gt;Customer Analytics:&lt;/b&gt;&lt;span&gt; Analyzing customer data can help telecom providers identify customer needs and improve customer satisfaction.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;33:1-34:0&quot;&gt;&lt;b&gt;Fraud Prevention:&lt;/b&gt;&lt;span&gt; ZCI can help detect fraudulent activities by analyzing call records and other data in real-time.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-sourcepos=&quot;35:1-35:20&quot;&gt;Other Industries&lt;/h3&gt;&lt;ul data-sourcepos=&quot;37:1-39:66&quot;&gt;&lt;li data-sourcepos=&quot;37:1-37:95&quot;&gt;&lt;b&gt;Logistics and Transportation:&lt;/b&gt;&lt;span&gt; Optimizing routes,&lt;/span&gt;&lt;span&gt; managing fleets,&lt;/span&gt;&lt;span&gt; and tracking shipments.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;38:1-38:103&quot;&gt;&lt;b&gt;Energy:&lt;/b&gt;&lt;span&gt; Analyzing energy consumption patterns,&lt;/span&gt;&lt;span&gt; predicting demand,&lt;/span&gt;&lt;span&gt; and optimizing grid operations.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;39:1-39:66&quot;&gt;&lt;b&gt;Government:&lt;/b&gt;&lt;span&gt; Improving citizen services,&lt;/span&gt;&lt;span&gt; combating fraud,&lt;/span&gt;&lt;span&gt; and optimizing resource allocation.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;41:1-41:158&quot;&gt;&lt;span&gt;In these examples,&lt;/span&gt;&lt;span&gt; ZCI plays a crucial role in enabling real-time decision-making,&lt;/span&gt;&lt;span&gt; improving operational efficiency,&lt;/span&gt;&lt;span&gt; and gaining valuable insights from data.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;41:1-41:158&quot;&gt;&lt;span&gt;Zero-copy Data Integration represents a significant advancement in data management.&lt;/span&gt;&lt;span&gt; By eliminating the need for data movement,&lt;/span&gt;&lt;span&gt; ZCI offers substantial benefits in terms of performance,&lt;/span&gt;&lt;span&gt; cost,&lt;/span&gt;&lt;span&gt; and data governance.&lt;/span&gt;&lt;span&gt; Understanding the different architectural patterns is crucial for selecting the optimal approach based on specific business requirements and constraints.&lt;/span&gt;&lt;span&gt; As technology continues to evolve,&lt;/span&gt;&lt;span&gt; we can expect to see even more innovative ZCI solutions emerging in the future, such as solutions incorporating ZCI and AI.&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 data-sourcepos=&quot;5:1-5:32&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h2 data-sourcepos=&quot;5:1-5:32&quot; style=&quot;text-align: left;&quot;&gt;How can ZCI Fuel Generative AI?&lt;/h2&gt;&lt;ul data-sourcepos=&quot;7:1-7:30&quot;&gt;&lt;li data-sourcepos=&quot;7:1-7:30&quot;&gt;&lt;b&gt;Data Accessibility:&lt;/b&gt;&lt;span&gt; ZCI provides a unified view of data across disparate systems.&lt;/span&gt;&lt;span&gt; This makes data readily available for Generative AI models to learn from and generate insights.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;8:1-8:23&quot;&gt;&lt;b&gt;Data Freshness:&lt;/b&gt;&lt;span&gt; ZCI&#39;s ability to provide near real-time data access ensures that Generative AI models are trained on the most up-to-date information.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;9:1-9:164&quot;&gt;&lt;b&gt;Data Volume:&lt;/b&gt;&lt;span&gt; By enabling access to vast amounts of data without the overhead of data movement,&lt;/span&gt;&lt;span&gt; ZCI supports the training of large-scale Generative AI models.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;10:1-10:114&quot;&gt;&lt;b&gt;Data Privacy:&lt;/b&gt;&lt;span&gt; ZCI can help protect sensitive data by allowing AI models to access data without exposing it.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;11:1-12:0&quot;&gt;&lt;b&gt;Computational Efficiency:&lt;/b&gt;&lt;span&gt; ZCI reduces the computational overhead associated with data movement and transformation,&lt;/span&gt;&lt;span&gt; allowing more resources to be dedicated to AI model training and inference.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfiJe7y70c-C18FkcZAEr2IgKqhlfmfvrEXTrCubslH6DFPzt3UWfqlKbolfi1ced3BiEkI7lakTwqzBEq5PArLsyeEM0_TaEW0HwF2YnffmeEUzKRPsqFH1yrXRJ8yfjNpokOQysDmtRuZTFjsXqLjfCzXmJKDws0d9IRl9j9VmgtlL-V2IXh/s1024/data-integration.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfiJe7y70c-C18FkcZAEr2IgKqhlfmfvrEXTrCubslH6DFPzt3UWfqlKbolfi1ced3BiEkI7lakTwqzBEq5PArLsyeEM0_TaEW0HwF2YnffmeEUzKRPsqFH1yrXRJ8yfjNpokOQysDmtRuZTFjsXqLjfCzXmJKDws0d9IRl9j9VmgtlL-V2IXh/w640-h640/data-integration.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 data-sourcepos=&quot;1:1-1:48&quot;&gt;ZCI for Retrieval Augmented Generation (RAG)&lt;/h2&gt;&lt;p data-sourcepos=&quot;3:1-3:132&quot;&gt;&lt;b&gt;ZCI&lt;/b&gt; is an excellent fit for &lt;b&gt;RAG&lt;/b&gt; as it provides the foundation for accessing and utilizing diverse data sources efficiently.&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:25&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;5:1-5:25&quot;&gt;How ZCI Enhances RAG&lt;/h3&gt;&lt;ul data-sourcepos=&quot;7:1-12:0&quot;&gt;&lt;li data-sourcepos=&quot;7:1-7:220&quot;&gt;&lt;b&gt;Direct Data Access:&lt;/b&gt; ZCI allows direct access to data without the need for data movement or duplication. This is crucial for RAG as it requires rapid retrieval of relevant information to augment the LLM&#39;s response.&lt;/li&gt;&lt;li data-sourcepos=&quot;8:1-8:146&quot;&gt;&lt;b&gt;Data Freshness:&lt;/b&gt; ZCI ensures that the data used for RAG is always up-to-date, preventing the generation of outdated or inaccurate responses.&lt;/li&gt;&lt;li data-sourcepos=&quot;9:1-9:134&quot;&gt;&lt;b&gt;Scalability:&lt;/b&gt; As data volumes grow, ZCI can handle increasing data loads efficiently, allowing RAG systems to scale accordingly.&lt;/li&gt;&lt;li data-sourcepos=&quot;10:1-10:161&quot;&gt;&lt;b&gt;Data Governance:&lt;/b&gt; By providing a centralized view of data, ZCI can help ensure data quality and compliance, which is essential for trustworthy RAG systems.&lt;/li&gt;&lt;li data-sourcepos=&quot;11:1-12:0&quot;&gt;&lt;b&gt;Cost Efficiency:&lt;/b&gt; Eliminating data movement and storage redundancies through ZCI can significantly reduce the overall cost of running RAG systems.&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;13:1-13:22&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;13:1-13:22&quot;&gt;Example Use Cases&lt;/h3&gt;&lt;ul data-sourcepos=&quot;15:1-18:0&quot;&gt;&lt;li data-sourcepos=&quot;15:1-15:192&quot;&gt;&lt;b&gt;Customer Support:&lt;/b&gt; ZCI can provide real-time access to customer data, product information, and support documents, enabling RAG-powered chatbots to deliver accurate and helpful responses.&lt;/li&gt;&lt;li data-sourcepos=&quot;16:1-16:181&quot;&gt;&lt;b&gt;Financial Services:&lt;/b&gt; By accessing market data, customer information, and regulatory documents directly, ZCI can support RAG-based financial analysis and risk assessment tools.&lt;/li&gt;&lt;li data-sourcepos=&quot;17:1-18:0&quot;&gt;&lt;b&gt;Healthcare:&lt;/b&gt; ZCI can enable rapid access to patient records, medical research, and drug information, empowering RAG-based medical assistants and diagnostic tools.&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;19:1-19:33&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;19:1-19:33&quot;&gt;Challenges and Considerations&lt;/h3&gt;&lt;ul data-sourcepos=&quot;21:1-24:0&quot;&gt;&lt;li data-sourcepos=&quot;21:1-21:190&quot;&gt;&lt;b&gt;Data Quality:&lt;/b&gt; &lt;span class=&quot;citation-0 recitation citation-end-0&quot;&gt;Ensuring data quality is crucial for effective RAG systems.&lt;/span&gt; ZCI can help manage data quality but additional data cleaning and validation might be necessary.&lt;span _ngcontent-ng-c4172600463=&quot;&quot; class=&quot;button-container ng-star-inserted&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;22:1-22:183&quot;&gt;&lt;b&gt;Performance:&lt;/b&gt; Efficient data retrieval and processing are essential for real-time RAG applications. ZCI can contribute to performance but careful optimization might be required.&lt;/li&gt;&lt;li data-sourcepos=&quot;23:1-24:0&quot;&gt;&lt;b&gt;Security:&lt;/b&gt; Protecting sensitive data is paramount. ZCI can help manage data access but robust security measures are needed to safeguard information.&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;25:1-25:158&quot;&gt;By combining the strengths of ZCI and RAG, organizations can create powerful AI systems that deliver accurate, relevant, and up-to-date information to users.&lt;/p&gt;&lt;p data-sourcepos=&quot;25:1-25:158&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-sourcepos=&quot;25:1-25:158&quot; style=&quot;text-align: left;&quot;&gt;Further Reading&lt;/h2&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;25:1-25:158&quot; style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://www.datacollaboration.org/zero-copy-integration &quot; target=&quot;_blank&quot;&gt;https://www.datacollaboration.org/zero-copy-integration&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;25:1-25:158&quot; style=&quot;text-align: left;&quot;&gt;A Zero-copy Integration standard developed for Canada - &lt;a href=&quot;https://dgc-cgn.org/standards/find-a-standard/standards-in-data-governance/can-ciosc-100-9-data-governance-part-9-zero-copy-integration/&quot; target=&quot;_blank&quot;&gt;https://dgc-cgn.org/standards/find-a-standard/standards-in-data-governance/can-ciosc-100-9-data-governance-part-9-zero-copy-integration/&amp;nbsp;&lt;/a&gt; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/5300956527410855308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/5300956527410855308'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/08/zero-copy-data-integration-zcdi-towards.html' title='Zero-copy Data Integration (ZCI): Towards A New Era of Data Management'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDN7f5s1qR44_EXmQprkD6T8JKL9_w8X_PKI9eq8iTK0M03ISwJqRySl1QkL9sxgkF5BYfL9ShK-KWXKximSg94mhqcQVz_OW4DoBe7_83wlqir8Zysb9joTnoBH6yGrFxq6mB5N29YVF5NgkDhZAsz5-Tx6Uj1sUEFL-gtXGMEOnCHB6kOoKW/s72-w640-h204-c/comparison-table.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-3118664795905703208</id><published>2024-07-20T07:44:00.027+10:00</published><updated>2024-07-21T13:25:33.916+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>19th July 2024 - The CrowdStrike &quot;Software Update&quot; that Y2K wished it was!</title><content type='html'>&lt;p&gt;&lt;span&gt;On July 19,&lt;/span&gt;&lt;span&gt; 2024,&lt;/span&gt;&lt;span&gt; a faulty software update from CrowdStrike,&lt;/span&gt;&lt;span&gt; a leading cybersecurity firm,&lt;/span&gt;&lt;span&gt; caused a widespread outage impacting businesses globally.&lt;/span&gt;&lt;span&gt; I&#39;m writing this blog post mostly for &lt;b&gt;posterity&lt;/b&gt;. I will dive into the context of the outage,&lt;/span&gt;&lt;span&gt; its far-reaching effects,&lt;/span&gt;&lt;span&gt; and the current remediation efforts. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3kcSw5JyVoRAGHOCOOXdd6h7Oiinfxa5Rw6kXCDVE57KklK4OiKj9xWbjgpcI6lhlSY6m356KVOhS_9B3VUia589QTFmGQAw2mHKABqOMLf-tcq1745NVQa8iG77KcT0WTW54_o-P6zh0j-VQRJQZvOq-myBftwjk3UVHyxRmJpGnFgkDvdiH/s490/look-at-me.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;358&quot; data-original-width=&quot;490&quot; height=&quot;293&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3kcSw5JyVoRAGHOCOOXdd6h7Oiinfxa5Rw6kXCDVE57KklK4OiKj9xWbjgpcI6lhlSY6m356KVOhS_9B3VUia589QTFmGQAw2mHKABqOMLf-tcq1745NVQa8iG77KcT0WTW54_o-P6zh0j-VQRJQZvOq-myBftwjk3UVHyxRmJpGnFgkDvdiH/w400-h293/look-at-me.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0PB_fMpKBBv186qhHKA5yIPClKOkQAJtHrxStk9PbTzmcb8mgP2uWexHYBfSRqzucqPIvAFJQ8mA5mfEXLf4NkfUzpqtlCAORD_3FvzFk_-4Xn3sXvUt5dHqkn-aULPD_b_vVcNoiO_Br9p5BQ-iZmkDOKYnFVnBlAUc6DJ_I4RpdOqaIeoZr/s500/look-at-me.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:48&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:48&quot;&gt;&lt;b&gt;Context: A Flawed Update Disrupts Operations&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:80&quot;&gt;&lt;span&gt;The culprit behind the outage was a defective update rolled out for CrowdStrike&#39;s Falcon tool,&lt;/span&gt;&lt;span&gt; specifically affecting Windows machines.&lt;/span&gt;&lt;span&gt; This update triggered critical errors,&lt;/span&gt;&lt;span&gt; causing systems to crash and hindering essential operations.&lt;/span&gt;&lt;span&gt; It&#39;s important to emphasize that CrowdStrike assures this was not a cyberattack.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:45&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:45&quot;&gt;&lt;b&gt;Impact: A Ripple Effect Across Industries&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:119&quot; style=&quot;text-align: left;&quot;&gt;&lt;span&gt;The outage cascaded across various sectors,&lt;/span&gt;&lt;span&gt; causing significant disruptions.&lt;/span&gt;&lt;span&gt; Here&#39;s a glimpse of the widespread impact:&lt;/span&gt;&lt;/p&gt;&lt;ul data-sourcepos=&quot;13:1-17:0&quot; style=&quot;text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;13:1-13:128&quot;&gt;&lt;b&gt;Travel:&lt;/b&gt;&lt;span&gt; Airlines were heavily affected,&lt;/span&gt;&lt;span&gt; with grounded flights due to issues with check-in systems and flight calculations.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;498&#39; height=&#39;414&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dzIkOfURu6y5tdLBGVM4SC2apclBSPqH9Hyi4Hlz7sNlvYVAJPfC2ILERQHyBF9KMqb5rBJZVxfIKw&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;513&#39; height=&#39;426&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dyIjKYvS2_URX6oe6epOOCkSRXpzvRl5JAt0So1SbzlBjbn18-hpIQZwjLrEvW02gVnl4L7KeEp-Gg&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;ul data-sourcepos=&quot;13:1-17:0&quot; style=&quot;text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;13:1-13:128&quot;&gt;&lt;b&gt;Finance:&lt;/b&gt;&lt;span&gt; Banks and other financial institutions experienced disruptions,&lt;/span&gt;&lt;span&gt; hindering critical services.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;15:1-15:92&quot;&gt;&lt;b&gt;Healthcare:&lt;/b&gt;&lt;span&gt; Hospitals and medical facilities faced challenges,&lt;/span&gt;&lt;span&gt; impacting patient care.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;16:1-17:0&quot;&gt;&lt;b&gt;Businesses:&lt;/b&gt;&lt;span&gt; Small and large businesses alike grappled with operational slowdowns and service outages. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqN_B4P4gp9wwRTPCWd83B2zCa3qtwHEopKb0eB9i-3OtHq93KccdhKYBXfK9Sbwuc_yxBku_6ilFw1zwBe6u_-dX_YxwZJX2hqkXWySME_v5MXbtn_imJc9iKbSv1UGBt_OTblVN4J8yBQx_c47ng7gJWf5J-Bw-X399M6GANDrbX8ZuU1KO5/s1280/supermarket.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqN_B4P4gp9wwRTPCWd83B2zCa3qtwHEopKb0eB9i-3OtHq93KccdhKYBXfK9Sbwuc_yxBku_6ilFw1zwBe6u_-dX_YxwZJX2hqkXWySME_v5MXbtn_imJc9iKbSv1UGBt_OTblVN4J8yBQx_c47ng7gJWf5J-Bw-X399M6GANDrbX8ZuU1KO5/w640-h480/supermarket.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p data-sourcepos=&quot;18:1-18:60&quot;&gt;&lt;b&gt;Remediation: Restoring Systems and Preventing Recurrence&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;18:1-18:60&quot;&gt;&lt;span style=&quot;background-color: #04ff00;&quot;&gt;Official remediation advice from CrowdStrike&lt;b&gt;: &lt;/b&gt;&lt;a href=&quot;https://www.crowdstrike.com/falcon-content-update-remediation-and-guidance-hub/&quot; target=&quot;_blank&quot;&gt;https://www.crowdstrike.com/falcon-content-update-remediation-and-guidance-hub/&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;https://www.crowdstrike.com/falcon-content-update-remediation-and-guidance-hub/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt; &lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;20:1-20:11&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9fGriaQSiusjmD2eyoPdmAP6Rx-ihAaSEm78wKW3kvDmluoncRpILLy3o8K5CQeBPfjV-5FUxkNaQsq0sYAm7145qXuwmmkjowIhjxtebET4a7c7ojLDV0GLs4CRKonM_QDhPpNE9gSYcu2ywJ51NselfVZtlqYj05FudnYIDPv9f9h6_0jhE/s884/office.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;872&quot; data-original-width=&quot;884&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9fGriaQSiusjmD2eyoPdmAP6Rx-ihAaSEm78wKW3kvDmluoncRpILLy3o8K5CQeBPfjV-5FUxkNaQsq0sYAm7145qXuwmmkjowIhjxtebET4a7c7ojLDV0GLs4CRKonM_QDhPpNE9gSYcu2ywJ51NselfVZtlqYj05FudnYIDPv9f9h6_0jhE/s320/office.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;CrowdStrike responded to the crisis.&lt;/span&gt;&lt;span&gt; They identified the faulty update,&lt;/span&gt;&lt;span&gt; isolated the issue,&lt;/span&gt;&lt;span&gt; and deployed a fix.&lt;/span&gt;&lt;span&gt; Additionally,&lt;/span&gt;&lt;span&gt; they&#39;ve offered resources and support to impacted customers to ensure a smooth recovery.&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;break-words tvm-parent-container&quot;&gt;&lt;span dir=&quot;ltr&quot;&gt;I found a &lt;a href=&quot;https://www.reddit.com/r/crowdstrike/comments/1e6vmkf/bsod_error_in_latest_crowdstrike_update/?utm_source=share&amp;amp;utm_medium=web3x&amp;amp;utm_name=web3xcss&amp;amp;utm_term=1&amp;amp;utm_content=share_button&quot; target=&quot;_blank&quot;&gt;Reddit thread&lt;/a&gt; that was kept updated by the community on the proposed workarounds and solutions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;break-words tvm-parent-container&quot;&gt;&lt;span dir=&quot;ltr&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Conclusion: Learning from the Outage&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The CrowdStrike outage serves as a stark reminder of our dependence on cybersecurity solutions and the potential consequences of technical glitches. By prioritising robust testing, open communication, and exceptional customer support, CrowdStrike can rebuild trust and ensure a more resilient future.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;505&#39; height=&#39;420&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dw2xIzUNuIFH3chj612VUOzgHt6lZLeVYpa0DVUZGjf4WhzyIWY6d4PZ6GYSiKGnkZlvA_BjsV60ZQ&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Looking forward to learning how the defective software update reached millions of devices worldwide. There will be a lot of learnings for all of technologists from this unfortunate incident. Most importantly, since CrowdStrike is a US company, a Congressional Hearing is in order. &lt;br /&gt;&lt;span class=&quot;break-words tvm-parent-container&quot;&gt;&lt;span dir=&quot;ltr&quot;&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;

&lt;script async=&quot;&quot; charset=&quot;UTF-8&quot; src=&quot;https://embed.reddit.com/widgets.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/3118664795905703208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/3118664795905703208'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/07/19th-july-2024-crowdstrike-software.html' title='19th July 2024 - The CrowdStrike &quot;Software Update&quot; that Y2K wished it was!'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3kcSw5JyVoRAGHOCOOXdd6h7Oiinfxa5Rw6kXCDVE57KklK4OiKj9xWbjgpcI6lhlSY6m356KVOhS_9B3VUia589QTFmGQAw2mHKABqOMLf-tcq1745NVQa8iG77KcT0WTW54_o-P6zh0j-VQRJQZvOq-myBftwjk3UVHyxRmJpGnFgkDvdiH/s72-w400-h293-c/look-at-me.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-8608471704604554168</id><published>2024-07-02T12:18:00.000+10:00</published><updated>2025-01-06T07:55:39.139+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><title type='text'>regreSSion: A High-Severity OpenSSH Vulnerability (CVE-2024-6387)</title><content type='html'>&lt;p&gt;&lt;strong&gt;What is CVE-2024-6387?&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:74&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT16TbnJCggrRHGF6LjKj3KbEHpAjFfXuHo7p7O7gOOifcjLpQprNwyrhlcZtfKoc1SgQEglYgz3ShZSCiemO2Z47T4vsVj0lmceXbhL41KBAJKepVboKm6_kqyXPnoQ9cen_aaOCNuzlQOWUd21Cw6vMK1iPU4hrSAMbRrWHh9TmzSu7SY_Sv/s1024/Designer.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT16TbnJCggrRHGF6LjKj3KbEHpAjFfXuHo7p7O7gOOifcjLpQprNwyrhlcZtfKoc1SgQEglYgz3ShZSCiemO2Z47T4vsVj0lmceXbhL41KBAJKepVboKm6_kqyXPnoQ9cen_aaOCNuzlQOWUd21Cw6vMK1iPU4hrSAMbRrWHh9TmzSu7SY_Sv/s320/Designer.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2024-6387&quot; target=&quot;_blank&quot;&gt;CVE-2024-6387&lt;/a&gt;,&lt;span&gt; also nicknamed &quot;regreSSion,&lt;/span&gt;&lt;span&gt;&quot; is a critical vulnerability in OpenSSH&#39;s server software (sshd) that allows for remote unauthenticated code execution (RCE) on affected systems.&lt;/span&gt;&lt;span&gt; This means an attacker could potentially take complete control of your machine without ever needing valid login credentials.&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:99&quot;&gt;&lt;span&gt;The vulnerability stems from a signal handler race condition within OpenSSH.&lt;/span&gt;&lt;span&gt; When a client fails to authenticate within a specific timeframe,&lt;/span&gt;&lt;span&gt; the server triggers a signal handler.&lt;/span&gt;&lt;span&gt;  Crucially,&lt;/span&gt;&lt;span&gt; some functions called during this process are not designed to handle interruptions and can lead to unexpected behavior.&lt;/span&gt;&lt;span&gt; In certain glibc-based Linux systems,&lt;/span&gt;&lt;span&gt; this can be exploited for RCE.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:22&quot;&gt;&lt;strong&gt;Who discovered it?&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:165&quot;&gt;&lt;span&gt;The Qualys Threat Research Unit (TRU) is credited with discovering CVE-2024-6387.&lt;/span&gt;&lt;span&gt; Their research indicates this vulnerability has the potential to affect millions of servers.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:41&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:41&quot;&gt;&lt;strong&gt;How can I find out if I&#39;m vulnerable?&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;15:1-15:79&quot;&gt;&lt;span&gt;There are two main ways to check if your system is vulnerable to CVE-2024-6387:&lt;/span&gt;&lt;/p&gt;&lt;ol data-sourcepos=&quot;17:1-18:0&quot;&gt;&lt;li data-sourcepos=&quot;17:1-18:0&quot;&gt;&lt;strong&gt;Check your OpenSSH version:&lt;/strong&gt;&lt;span&gt; Vulnerable systems will be running OpenSSH versions earlier than 4.&lt;/span&gt;&lt;span&gt;4p1 or 8.&lt;/span&gt;&lt;span&gt;5p1,&lt;/span&gt;&lt;span&gt; up to but not including 9.&lt;/span&gt;&lt;span&gt;8p1.&lt;/span&gt;&lt;span&gt; You can check your version by running the following command in your terminal:&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div _ngcontent-ng-c1104704030=&quot;&quot; class=&quot;code-block ng-tns-c1104704030-23 ng-trigger ng-trigger-codeBlockRevealAnimation&quot; style=&quot;display: block;&quot;&gt;&lt;div _ngcontent-ng-c1104704030=&quot;&quot; class=&quot;code-block-internal-container ng-tns-c1104704030-23&quot;&gt;&lt;div _ngcontent-ng-c1104704030=&quot;&quot; class=&quot;animated-opacity ng-tns-c1104704030-23&quot;&gt;&lt;pre _ngcontent-ng-c1104704030=&quot;&quot; class=&quot;ng-tns-c1104704030-23&quot;&gt;&lt;code _ngcontent-ng-c1104704030=&quot;&quot; class=&quot;code-container ng-tns-c1104704030-23 no-decoration-radius&quot; data-sourcepos=&quot;19:1-21:6&quot; data-test-id=&quot;code-content&quot; role=&quot;text&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;ssh -V
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol data-sourcepos=&quot;23:1-24:0&quot; start=&quot;2&quot;&gt;&lt;li data-sourcepos=&quot;23:1-24:0&quot;&gt;&lt;strong&gt;Consult your Linux distribution&#39;s security resources:&lt;/strong&gt;&lt;span&gt; Most Linux distributions have released advisories regarding CVE-2024-6387.&lt;/span&gt;&lt;span&gt; These advisories will detail the specific versions affected and any available patches.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-sourcepos=&quot;25:1-25:33&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;25:1-25:33&quot;&gt;&lt;strong&gt;Open Source Tools and Patches&lt;/strong&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;27:1-27:267&quot;&gt;&lt;span&gt;The good news is that patches are readily available to address CVE-2024-6387.&lt;/span&gt;&lt;span&gt; It&#39;s crucial to update your OpenSSH server to a patched version as soon as possible.&lt;/span&gt;&lt;span&gt;  You can find the update procedure specific to your Linux distribution through their official channels.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:13&quot;&gt;&lt;span&gt;Here are some additional resources:&lt;/span&gt;&lt;/p&gt;&lt;ul data-sourcepos=&quot;31:1-33:0&quot;&gt;&lt;li data-sourcepos=&quot;31:1-31:139&quot;&gt;&lt;span&gt;Qualys Threat Research Unit:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;a class=&quot;traceable-link&quot; href=&quot;https://www.qualys.com/regresshion-cve-2024-6387/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;OpenSSH Vulnerability: CVE-2024-6387 FAQs and Resources&lt;/a&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;32:1-33:0&quot;&gt;&lt;span&gt;Ubuntu Security Notice:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;a class=&quot;traceable-link&quot; href=&quot;https://ubuntu.com/security/CVE-2024-6387&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://ubuntu.com/security/CVE-2024-6387&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;34:1-34:14&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8608471704604554168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8608471704604554168'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/07/regression-high-severity-openssh.html' title='regreSSion: A High-Severity OpenSSH Vulnerability (CVE-2024-6387)'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT16TbnJCggrRHGF6LjKj3KbEHpAjFfXuHo7p7O7gOOifcjLpQprNwyrhlcZtfKoc1SgQEglYgz3ShZSCiemO2Z47T4vsVj0lmceXbhL41KBAJKepVboKm6_kqyXPnoQ9cen_aaOCNuzlQOWUd21Cw6vMK1iPU4hrSAMbRrWHh9TmzSu7SY_Sv/s72-c/Designer.jpeg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-4313276557024895462</id><published>2024-05-19T07:09:00.001+10:00</published><updated>2024-05-22T06:12:52.178+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="Leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Tech"/><title type='text'>Form Follows Function: A Timeless Principle for Design and Architecture</title><content type='html'>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6MAPcqylkxSCARgV5lXjQd9hstmrkAtAC_ZLKL6AauBDfse9nytL9ARhB3Ju_jUzFtdWQ0DKLgatjNaZrhVQa3OOjPy1dmqva5LAf73vwKLJpE0ZQf8AHd6lz4yMj1Qi7fiG4D1WnAtmHvaJposyOejT3yhMEgqsdutCYHtg5ZkRstJdcTTqe/s3226/bauhaus.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1814&quot; data-original-width=&quot;3226&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6MAPcqylkxSCARgV5lXjQd9hstmrkAtAC_ZLKL6AauBDfse9nytL9ARhB3Ju_jUzFtdWQ0DKLgatjNaZrhVQa3OOjPy1dmqva5LAf73vwKLJpE0ZQf8AHd6lz4yMj1Qi7fiG4D1WnAtmHvaJposyOejT3yhMEgqsdutCYHtg5ZkRstJdcTTqe/w447-h252/bauhaus.jpg&quot; width=&quot;447&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;In the world of design,&lt;/span&gt;&lt;span&gt; there are a few phrases that hold immense weight.&lt;/span&gt;&lt;span&gt; &quot;Form follows function&quot; is one such concept that has transcended disciplines and time.&lt;/span&gt;&lt;span&gt; Coined by renowned architect Louis Sullivan in 1896,&lt;/span&gt;&lt;span&gt; this principle emphasizes that the design of an object should be driven by its purpose.&lt;/span&gt;&lt;span&gt; In simpler terms,&lt;/span&gt;&lt;span&gt; the way something looks should be a direct result of what it&#39;s meant to do.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:40&quot;&gt;&lt;span&gt;This philosophy stands in stark contrast to the idea of aesthetics solely dictating design.&lt;/span&gt;&lt;span&gt;  Imagine a building adorned with intricate carvings and superfluous ornamentation – while it might be visually appealing,&lt;/span&gt;&lt;span&gt; it goes against the &quot;form follows function&quot; grain if these embellishments don&#39;t contribute to the building&#39;s functionality in some way.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:266&quot;&gt;&lt;span&gt;While Sullivan&#39;s initial focus was on architectural design,&lt;/span&gt;&lt;span&gt; the &quot;form follows function&quot; principle has far-reaching implications.&lt;/span&gt;&lt;span&gt; It can be effectively applied in various fields,&lt;/span&gt;&lt;span&gt; including software engineering and enterprise architecture,&lt;/span&gt;&lt;span&gt; as we shall explore further.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:266&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:60&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaokSX6Xg4mV5g614i10GHnRbb9idXRZ02Aa48nFbe2jaRy1fB0hDttTGnZb8pe97sDR1vi0WfkWCHrjQWSD2vCyl_DmBrQ2iPc-a7LVWpc0N57-no1Riinls5IiOOB2vZHco0WA71oKI79p6knmOvtUxoTCJlY98desE1cSJmhcAH9-Dkv06p/s1024/form-follows-function.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaokSX6Xg4mV5g614i10GHnRbb9idXRZ02Aa48nFbe2jaRy1fB0hDttTGnZb8pe97sDR1vi0WfkWCHrjQWSD2vCyl_DmBrQ2iPc-a7LVWpc0N57-no1Riinls5IiOOB2vZHco0WA71oKI79p6knmOvtUxoTCJlY98desE1cSJmhcAH9-Dkv06p/w320-h320/form-follows-function.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:60&quot;&gt;&lt;b&gt;Applying &quot;Form Follows Function&quot; in Software Engineering&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:75&quot;&gt;&lt;span&gt;In the realm of software engineering,&lt;/span&gt;&lt;span&gt; &quot;form follows function&quot; translates to designing software that prioritizes usability and functionality over superficial aesthetics.&lt;/span&gt;&lt;span&gt; Here&#39;s how this principle plays out:&lt;/span&gt;&lt;/p&gt;&lt;ul data-sourcepos=&quot;15:1-18:0&quot;&gt;&lt;li data-sourcepos=&quot;15:1-15:218&quot;&gt;&lt;b&gt;User-centered design:&lt;/b&gt;&lt;span&gt;  The core functionality of any software should cater to the needs of its users.&lt;/span&gt;&lt;span&gt;  User interfaces should be intuitive and easy to navigate,&lt;/span&gt;&lt;span&gt; allowing users to achieve their goals efficiently.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;16:1-16:262&quot;&gt;&lt;b&gt;Clean code:&lt;/b&gt;&lt;span&gt; Well-written code is not just about functionality but also readability and maintainability.&lt;/span&gt;&lt;span&gt; Clean code adheres to coding standards and best practices,&lt;/span&gt;&lt;span&gt; making it easier for developers to understand,&lt;/span&gt;&lt;span&gt; modify,&lt;/span&gt;&lt;span&gt; and extend the software in the future.&lt;/span&gt;&lt;/li&gt;&lt;li data-sourcepos=&quot;17:1-18:0&quot;&gt;&lt;b&gt;Focus on user experience (UX):&lt;/b&gt;&lt;span&gt;  A positive UX goes hand-in-hand with good design.&lt;/span&gt;&lt;span&gt; Software that adheres to &quot;form follows function&quot; should prioritize a seamless and enjoyable user experience.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;19:1-19:54&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;19:1-19:54&quot;&gt;&lt;b&gt;&quot;Form Follows Function&quot; in Enterprise Architecture&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;21:1-21:164&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj63EeqZD2uaRMTwdhMc8BeixQFkHghMcPf9NbqZCdwoqtXkpAhPkUIjo8HAfZTz8xoOEhmyajX8JkcPPkPhQgATRaJkuOZ5dOeIKP8i-kvEVnGNYV3QMWCxqNJwsGmKblpOjc-X0QgB9Gmi0dJ-9gDd2_0XAFUi0ZgSWAMRDGSMzeGG5zH_jYE/s1024/form-follows-function-enter%5Bprise-architecture.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;285&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj63EeqZD2uaRMTwdhMc8BeixQFkHghMcPf9NbqZCdwoqtXkpAhPkUIjo8HAfZTz8xoOEhmyajX8JkcPPkPhQgATRaJkuOZ5dOeIKP8i-kvEVnGNYV3QMWCxqNJwsGmKblpOjc-X0QgB9Gmi0dJ-9gDd2_0XAFUi0ZgSWAMRDGSMzeGG5zH_jYE/w285-h285/form-follows-function-enter%5Bprise-architecture.jpg&quot; width=&quot;285&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Enterprise architecture deals with the design and implementation of an organization&#39;s IT infrastructure.&lt;span&gt; Here&#39;s how &quot;form follows function&quot; applies in this context:&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;ul data-sourcepos=&quot;23:1-23:162&quot;&gt;&lt;li data-sourcepos=&quot;23:1-23:162&quot;&gt;&lt;b&gt;Business-driven IT solutions:&lt;/b&gt;&lt;span&gt;  The IT infrastructure should be designed to support the core business processes of the organization.&lt;/span&gt;&lt;span&gt;  There should be a clear alignment between the business goals and the technological solutions implemented. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;/b&gt;&lt;ul data-sourcepos=&quot;23:1-23:162&quot;&gt;&lt;li data-sourcepos=&quot;24:1-24:218&quot;&gt;&lt;b&gt;Scalability and flexibility:&lt;/b&gt;&lt;span&gt;  IT systems should be designed to accommodate future growth and changing business needs.&lt;/span&gt;&lt;span&gt;  A rigid and inflexible architecture can hinder an organization&#39;s ability to adapt and thrive.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;/span&gt;&lt;ul data-sourcepos=&quot;23:1-23:162&quot;&gt;&lt;li data-sourcepos=&quot;25:1-26:0&quot;&gt;&lt;b&gt;Integration and interoperability:&lt;/b&gt;&lt;span&gt;  Different IT systems within an organization should be able to communicate and exchange data seamlessly.&lt;/span&gt;&lt;span&gt; This ensures a smooth flow of information and avoids data silos.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;27:1-27:320&quot;&gt;&lt;span&gt;By adhering to the &quot;form follows function&quot; principle,&lt;/span&gt;&lt;span&gt; software engineers and enterprise architects can create solutions that are not only aesthetically pleasing but also functional,&lt;/span&gt;&lt;span&gt; efficient,&lt;/span&gt;&lt;span&gt; and scalable.&lt;/span&gt;&lt;span&gt; This approach ensures that technology serves a purpose and provides real value to the users and the organization.&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;27:1-27:320&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;27:1-27:320&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;460&quot; src=&quot;https://www.youtube.com/embed/DaxODmFnN6U&quot; width=&quot;554&quot; youtube-src-id=&quot;DaxODmFnN6U&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4313276557024895462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/4313276557024895462'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/05/form-follows-function-timeless.html' title='Form Follows Function: A Timeless Principle for Design and Architecture'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6MAPcqylkxSCARgV5lXjQd9hstmrkAtAC_ZLKL6AauBDfse9nytL9ARhB3Ju_jUzFtdWQ0DKLgatjNaZrhVQa3OOjPy1dmqva5LAf73vwKLJpE0ZQf8AHd6lz4yMj1Qi7fiG4D1WnAtmHvaJposyOejT3yhMEgqsdutCYHtg5ZkRstJdcTTqe/s72-w447-h252-c/bauhaus.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-8732765195975964605</id><published>2024-04-11T06:47:00.003+10:00</published><updated>2024-04-11T06:48:51.105+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="Leadership"/><title type='text'>The Doctor, the Data, and the Deadly Secret: The Semmelweis Reflex and the Power of Data Storytelling</title><content type='html'>&lt;p&gt;Imagine a world where a simple yet revolutionary idea is rejected, not because of a lack of evidence, but because it challenges the status quo. This is the cautionary tale of the Semmelweis reflex, named after Ignaz Semmelweis, a Hungarian physician who dared to question prevailing medical beliefs in 19th century Vienna.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcDE3bMiVdpfjOU8CMNZkoRs-pggLtYs8TCyllMko2-_EgFeslL-S2V50cUTdEKrO6_cKGHsFhXJ0g32MGqjDTN4UiKT8200rMVANzDQISwsOVPVJiDbwy3o__aPs7WC6RY1pT8fRkWbi_Pdm1E7UxTvGCewI4XDI1N1tvAdeGbpQwg4v_Ra-M/s1722/Borsos_&amp;amp;_Doctor_Semmelweis_Igna%CC%81c_cropped.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1722&quot; data-original-width=&quot;1658&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcDE3bMiVdpfjOU8CMNZkoRs-pggLtYs8TCyllMko2-_EgFeslL-S2V50cUTdEKrO6_cKGHsFhXJ0g32MGqjDTN4UiKT8200rMVANzDQISwsOVPVJiDbwy3o__aPs7WC6RY1pT8fRkWbi_Pdm1E7UxTvGCewI4XDI1N1tvAdeGbpQwg4v_Ra-M/s320/Borsos_&amp;amp;_Doctor_Semmelweis_Igna%CC%81c_cropped.jpg&quot; width=&quot;308&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Back then, childbirth was a terrifying ordeal. A significant number of women died from a mysterious illness known as childbed fever. The medical community, however, clung to the theory that the disease arose from emotional distress or miasma (polluted air).&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:323&quot;&gt;Enter Semmelweis. He noticed a disturbing trend. The First Maternity Ward, staffed by doctors who routinely delivered babies after performing autopsies, had a much higher mortality rate than the Second Ward, staffed by midwives. Data, in the form of these drastically different mortality rates, was staring him in the face.&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:327&quot;&gt;Through careful observation, Semmelweis discovered the culprit: invisible particles transmitted from contaminated hands during examinations. He implemented a mandatory handwashing protocol with a chlorine solution – a radical idea at the time. The results were astonishing. Childbed fever deaths in the First Ward plummeted.&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:288&quot;&gt;Semmelweis&#39; story is a powerful example of data-driven decision making. He didn&#39;t just collect information; he told a compelling story with his data, highlighting the stark contrast between the wards. This narrative, built on evidence, exposed a deadly flaw in accepted medical practices.&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:294&quot;&gt;The Semmelweis reflex serves as a warning against clinging to comfortable but potentially harmful beliefs. It also underscores the importance of effective data storytelling. By presenting data in a clear, compelling way, we can challenge assumptions, inspire action, and ultimately, save lives.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;15:1-15:48&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;&lt;h3 data-sourcepos=&quot;15:1-15:48&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Now, let&#39;s unlock the power within your data&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;17:1-17:294&quot;&gt;Semmelweis didn&#39;t just present dry numbers; he painted a picture with his data. He showed the human cost of inaction and the life-saving potential of his idea. This is the essence of data storytelling: transforming raw information into a captivating narrative that resonates with your audience.&lt;/p&gt;&lt;p data-sourcepos=&quot;17:1-17:294&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidkk9fr4SJSctJxhMJ7IQWnsPUEegn4mLYx0wXQ1GmD3Hyyh1Q1f4y1QrIU3H5-KI19_2_ztLeBzzS4BJFSMqwSzJ7IpgZwlJkK1S9DSiGLYFeN7biMhIAYQbyqJal7ulP6k4t5FtpwEmpFMalpOWCofZGhF6O_9-CJKfQOsvrWxsNpvLYpWkk/s972/theory-of-vardeverous-poisoning.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;382&quot; data-original-width=&quot;972&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidkk9fr4SJSctJxhMJ7IQWnsPUEegn4mLYx0wXQ1GmD3Hyyh1Q1f4y1QrIU3H5-KI19_2_ztLeBzzS4BJFSMqwSzJ7IpgZwlJkK1S9DSiGLYFeN7biMhIAYQbyqJal7ulP6k4t5FtpwEmpFMalpOWCofZGhF6O_9-CJKfQOsvrWxsNpvLYpWkk/w640-h252/theory-of-vardeverous-poisoning.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div data-sourcepos=&quot;19:1-19:62&quot; style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: x-small;&quot;&gt;Source: https://en.wikipedia.org/wiki/Ignaz_Semmelweis&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;p data-sourcepos=&quot;19:1-19:62&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-sourcepos=&quot;19:1-19:62&quot;&gt;Here are some key ingredients for effective data storytelling:&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li data-sourcepos=&quot;21:1-21:122&quot;&gt;&lt;b&gt;Focus on the &quot;why&quot;&lt;/b&gt;:  Don&#39;t just present findings; explain their significance. What problem are you trying to solve?&lt;/li&gt;&lt;li data-sourcepos=&quot;22:1-22:92&quot;&gt;&lt;b&gt;Know your audience&lt;/b&gt;: Tailor your language and visuals to their level of understanding.&lt;/li&gt;&lt;li data-sourcepos=&quot;23:1-23:100&quot;&gt;&lt;b&gt;Embrace visuals&lt;/b&gt;: Charts, graphs, and even infographics can make complex data easier to digest.&lt;/li&gt;&lt;li data-sourcepos=&quot;24:1-24:96&quot;&gt;&lt;b&gt;Keep it concise&lt;/b&gt;:  Avoid information overload. Highlight the most impactful pieces of data.&lt;/li&gt;&lt;li data-sourcepos=&quot;25:1-26:0&quot;&gt;&lt;b&gt;Weave a narrative&lt;/b&gt;:  Frame your data as a journey with a clear beginning, middle, and end.&lt;/li&gt;&lt;/ol&gt;&lt;p data-sourcepos=&quot;3:1-3:237&quot;&gt;By following these tips, you can transform your data from a collection of numbers into a powerful tool for persuasion and positive change. So, unlock the stories hidden within your data, craft compelling narratives, and inspire action!&lt;/p&gt;&lt;div _ngcontent-ng-c2682797003=&quot;&quot; class=&quot;container&quot;&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c1661710497=&quot;&quot; class=&quot;markdown markdown-main-panel&quot; dir=&quot;ltr&quot; style=&quot;--animation-duration: 600ms; --fade-animation-function: linear;&quot;&gt;&lt;div _ngcontent-ng-c2682797003=&quot;&quot; class=&quot;container&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c1852284289=&quot;&quot; class=&quot;response-footer gap complete&quot;&gt;&lt;div _ngcontent-ng-c3833575154=&quot;&quot; class=&quot;sources-list-container ng-star-inserted&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8732765195975964605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8732765195975964605'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/04/the-doctor-data-and-deadly-secret.html' title='The Doctor, the Data, and the Deadly Secret: The Semmelweis Reflex and the Power of Data Storytelling'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcDE3bMiVdpfjOU8CMNZkoRs-pggLtYs8TCyllMko2-_EgFeslL-S2V50cUTdEKrO6_cKGHsFhXJ0g32MGqjDTN4UiKT8200rMVANzDQISwsOVPVJiDbwy3o__aPs7WC6RY1pT8fRkWbi_Pdm1E7UxTvGCewI4XDI1N1tvAdeGbpQwg4v_Ra-M/s72-c/Borsos_&amp;_Doctor_Semmelweis_Igna%CC%81c_cropped.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-8274456504482980317</id><published>2024-04-01T07:46:00.016+11:00</published><updated>2025-01-06T07:55:29.499+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><title type='text'>Hidden in Plain Sight: Why Freeloading On Open Source Can Cripple Your Business</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;text-align: right;&quot;&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQWVQ8LdIndxmrl58Q9_g7EE_vnemgPI4Ebg-9TTNB6ojzrai9zad1D5dlyQUJXMcfA122jNUudns5CURaXnFQVsTNdo_-2g6zQGtfMPy30BiidTmzAsaBipeqPdtW7QjXbKkUAmDuGUoQPs7zHsdiApqG6Z8wfCIs4gZnHLP5HMg7ahHTiaN/s1024/freeee.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQWVQ8LdIndxmrl58Q9_g7EE_vnemgPI4Ebg-9TTNB6ojzrai9zad1D5dlyQUJXMcfA122jNUudns5CURaXnFQVsTNdo_-2g6zQGtfMPy30BiidTmzAsaBipeqPdtW7QjXbKkUAmDuGUoQPs7zHsdiApqG6Z8wfCIs4gZnHLP5HMg7ahHTiaN/w400-h400/freeee.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;The &quot;Free&quot; in Free and Open Source Software (FOSS) stands for &quot;Freedom&quot;; Not &quot;Free, as in Beer&quot;!&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;The free and open-source software (FOSS) revolution has transformed how businesses operate. From Linux powering your servers to web frameworks building your applications, FOSS offers a robust, cost-effective foundation. But for many for-profit entities, the relationship with open source is one-sided: they leverage the benefits without giving back.&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:253&quot;&gt;This approach might seem harmless, but a recent security concept throws a wrench into that complacency: &lt;b&gt;hypocrite commits&lt;/b&gt;. These are seemingly innocuous code changes submitted to open-source projects that hold the potential for future exploitation.&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:101&quot;&gt;Here&#39;s why for-profit entities ignoring open source should be deeply worried about hypocrite commits:&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:101&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;7:1-7:101&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;A Trojan Horse in the Codebase&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;7:1-7:101&quot;&gt;Imagine a seemingly harmless code tweak slipped into a critical 
open-source library. Months later, a follow-up commit unlocks the hidden
 vulnerability, potentially compromising countless systems built on that
 library. Your infrastructure, heavily reliant on open source, could be 
left exposed.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;11:1-11:444&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;&lt;h3 data-sourcepos=&quot;11:1-11:444&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Case in point&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;11:1-11:444&quot;&gt;In March 2024, a backdoor was discovered in versions 5.6.  of the XZ Utils, a widely used compression library for Linux distributions (&lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2024-3094&quot; target=&quot;_blank&quot;&gt;CVE-2024-3094&lt;/a&gt;). This backdoor, if exploited, could have allowed attackers to gain unauthorized access to systems. The malicious code was cleverly hidden and only triggered during the build process, highlighting the potential for sophisticated attacks leveraging seemingly harmless commits.&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:505&quot;&gt;Even more concerning are vulnerabilities that go undetected for years. In 2014, the infamous Heartbleed bug (&lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2014-0160&quot; target=&quot;_blank&quot;&gt;CVE-2014-0160&lt;/a&gt;) was discovered in OpenSSL, a critical cryptographic library used in countless applications, including the popular SSH protocol. This vulnerability allowed attackers to steal sensitive information transmitted over supposedly secure connections. The potential impact was massive, and it served as a wake-up call for the importance of ongoing security audits in open-source projects.&lt;/p&gt;&lt;h3 data-sourcepos=&quot;13:1-13:505&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;&lt;h3 data-sourcepos=&quot;13:1-13:505&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Open Season on Vulnerabilities&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;13:1-13:505&quot;&gt;Open-source projects, while championed by passionate developers, often
 lack the resources for constant security audits. Hypocrite commits 
exploit this gap. By not contributing back, you weaken the very tools 
your business depends on, making them easier targets for attackers.&lt;/p&gt;&lt;p data-sourcepos=&quot;17:1-17:475&quot;&gt;This isn&#39;t just a hypothetical scenario. In recent years, several critical vulnerabilities (CVEs) have been discovered in popular open-source projects, including &lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2019-5736&quot; target=&quot;_blank&quot;&gt;CVE-2019-5736 &lt;/a&gt;in Runc, a container runtime tool essential for containerized applications. This vulnerability could have allowed attackers to escalate privileges and gain control of containerized systems. By not contributing back, you essentially free ride on the efforts of others while leaving yourself exposed.&lt;/p&gt;&lt;p data-sourcepos=&quot;17:1-17:475&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;h3 data-sourcepos=&quot;17:1-17:475&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;The Ethical Cost&lt;/b&gt;&lt;/h3&gt;&lt;p data-sourcepos=&quot;17:1-17:475&quot;&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Beyond
 the security risk, there&#39;s a moral dimension. Open source thrives on 
collaboration. By solely taking without giving back, you freeload on the
 efforts of countless developers who dedicate their time and expertise 
to maintaining the software you rely on.&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;21:1-21:89&quot;&gt;So, how can you mitigate this risk and build a sustainable relationship with open source?&lt;/p&gt;&lt;ul data-sourcepos=&quot;23:1-28:0&quot;&gt;&lt;li data-sourcepos=&quot;23:1-24:0&quot;&gt;
&lt;p data-sourcepos=&quot;23:3-23:226&quot;&gt;&lt;b&gt;Become a Contributor:&lt;/b&gt;  The best defense is a good offense. Participate in open-source projects by reporting bugs, fixing issues, and even contributing code. This strengthens the codebase and fosters a sense of community.&lt;/p&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;25:1-26:0&quot;&gt;
&lt;p data-sourcepos=&quot;25:3-25:237&quot;&gt;&lt;b&gt;Support Open Source Foundations:&lt;/b&gt;  Many open-source projects rely on foundations for financial and logistical support. Consider donating or sponsoring these organizations to ensure the continued health of the software you depend on.&lt;/p&gt;
&lt;/li&gt;&lt;li data-sourcepos=&quot;27:1-28:0&quot;&gt;
&lt;p data-sourcepos=&quot;27:3-27:192&quot;&gt;&lt;b&gt;Embrace Open Source Security Audits:&lt;/b&gt; Regularly audit your open-source dependencies for vulnerabilities. This proactive approach can identify potential issues before they become critical.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot;&gt;By actively contributing to the open-source ecosystem, you not only safeguard your own infrastructure but also ensure the continued success of the very tools that power your business. Remember, open source isn&#39;t just free software; it&#39;s a collaborative effort.&amp;nbsp;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot;&gt;It&#39;s time for for-profit entities to step up and become responsible participants in this vital digital landscape.&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;text-align: left;&quot;&gt;PS: Here&#39;s a popular open-source project &lt;a href=&quot;https://x.com/FFmpeg/status/1774904991532056852?s=20&quot; target=&quot;_blank&quot;&gt;calling out &lt;/a&gt;a for-profit entity for freeloading off the work of volunteers (dated April 1st 2024).&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadpMGV0avUQmH0yYZbEdQ1b8umTZ7SMD0z8zB9Jsvfe_CVy9PnvwCsb72NKd4MtbsYnUy8Zz8xo_HEXd5xhjH4iMikizsSztCvCiLs9i_sia22n3QX-BhDfJQC9ndu8ksuf4cgT-lCXMdF2lfOdNZ3w4tcUzpp8-iYPb3xAh4f3anvvlqNVaI/s602/twitter.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;508&quot; data-original-width=&quot;602&quot; height=&quot;338&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadpMGV0avUQmH0yYZbEdQ1b8umTZ7SMD0z8zB9Jsvfe_CVy9PnvwCsb72NKd4MtbsYnUy8Zz8xo_HEXd5xhjH4iMikizsSztCvCiLs9i_sia22n3QX-BhDfJQC9ndu8ksuf4cgT-lCXMdF2lfOdNZ3w4tcUzpp8-iYPb3xAh4f3anvvlqNVaI/w400-h338/twitter.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p data-sourcepos=&quot;29:1-29:374&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8274456504482980317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/8274456504482980317'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/04/hidden-in-plain-sight-why-freeloading.html' title='Hidden in Plain Sight: Why Freeloading On Open Source Can Cripple Your Business'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFQWVQ8LdIndxmrl58Q9_g7EE_vnemgPI4Ebg-9TTNB6ojzrai9zad1D5dlyQUJXMcfA122jNUudns5CURaXnFQVsTNdo_-2g6zQGtfMPy30BiidTmzAsaBipeqPdtW7QjXbKkUAmDuGUoQPs7zHsdiApqG6Z8wfCIs4gZnHLP5HMg7ahHTiaN/s72-w400-h400-c/freeee.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-9735706.post-519820845791191219</id><published>2024-03-29T19:59:00.008+11:00</published><updated>2025-01-06T07:55:14.292+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="data-driven"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Tech"/><title type='text'>The Great Debate: Unveiling the Similarities and Differences Between SysAdmins and Software Engineers</title><content type='html'>&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This topic has been bubbling away in my head for a while. However, since
 it&#39;s a controversial issue and I might have my own perspective, I 
decided to take a lighter approach using humor.  So, I created two 
fictional characters, one representing each profession, to have a fun 
debate.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirO230D578PBUtw7TgFFH0W27Z9AgEKMo7hisyztGLqxJM3Cs6KUHjOMQH4pHs3KO8e6vquC_inDuDu_XDgMbMTPTVxoGK8UemeQf1m3uyp-KNCr5cAmYhaSoLXRIFap6K5km8-nWpmyfMRq-fxZQweNwcBJCEP3zhcW5MHNXWS8UcEZ-wXJOx/s1024/sys-adminvs-software-engineeer-2.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirO230D578PBUtw7TgFFH0W27Z9AgEKMo7hisyztGLqxJM3Cs6KUHjOMQH4pHs3KO8e6vquC_inDuDu_XDgMbMTPTVxoGK8UemeQf1m3uyp-KNCr5cAmYhaSoLXRIFap6K5km8-nWpmyfMRq-fxZQweNwcBJCEP3zhcW5MHNXWS8UcEZ-wXJOx/w640-h640/sys-adminvs-software-engineeer-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div data-sourcepos=&quot;3:1-3:463&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Code Warriors at War: SysAdmins vs. Software Engineers&lt;/div&gt;&lt;h2 data-sourcepos=&quot;3:1-3:463&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;&lt;h2 data-sourcepos=&quot;3:1-3:463&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Part 1 -&amp;nbsp; SysAdmins vs. Software Engineers&lt;br /&gt;&lt;/b&gt;&lt;/h2&gt;&lt;p data-sourcepos=&quot;3:1-3:463&quot;&gt;&lt;b&gt;Moderator:&lt;/b&gt; Welcome everyone! Today&#39;s debate is a hot topic in the IT world: can system administrators (SysAdmins) truly be considered software engineers? We have two esteemed professionals here to argue their cases. In the blue corner, we have Shawn, a seasoned SysAdmin with years of experience keeping the lights on. And in the red corner, we have Nadia, a brilliant software engineer who builds the applications that run on those lights. Let&#39;s get started!&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:440&quot;&gt;&lt;b&gt;Shawn (SysAdmin):&lt;/b&gt; Thanks for having me. In my view, the answer is a resounding yes! SysAdmins are constantly writing code – scripts, automation tools, configuration files. We may not be building the next Facebook, but we&#39;re the ones behind the scenes making sure it runs smoothly. We understand the infrastructure, the operating systems, the intricate dance of all the software. That kind of deep knowledge is crucial for any engineer.&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:444&quot;&gt;&lt;b&gt;Nadia (Software Engineer):&lt;/b&gt; I appreciate Shawn&#39;s point, but there&#39;s a difference between coding and software engineering.  Sure, SysAdmins write scripts, but they&#39;re typically one-off solutions for specific tasks. Software engineers design, develop, and test complex systems with scalability, maintainability, and security in mind. We follow best practices, write clean code, and collaborate with teams to build features and functionalities.&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:340&quot;&gt;&lt;b&gt;Shawn:&lt;/b&gt;  Hold on, Nadia.  Many SysAdmins today are heavily involved in cloud deployments, containerization, infrastructure as code. These tasks require a deep understanding of software development principles. And let&#39;s not forget troubleshooting!  We diagnose complex system issues, often by diving into code and finding the root cause.&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:302&quot;&gt;&lt;b&gt;Nadia:&lt;/b&gt;  Absolutely, troubleshooting skills are valuable. But SysAdmins typically work within existing frameworks and tools.  Software engineers, on the other hand,  create those frameworks and tools! We  work with algorithms, data structures, design patterns – the very building blocks of software.&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:34&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;h2 data-sourcepos=&quot;13:1-13:34&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Part 2 - The Automation &amp;amp; AI Factor&lt;/b&gt;&lt;/h2&gt;&lt;p data-sourcepos=&quot;3:1-3:444&quot;&gt;&lt;b&gt;Moderator:&lt;/b&gt; Welcome back everyone! Buckle up, because this part of the debate is a bit &lt;b&gt;spicier&lt;/b&gt;! We&#39;re tackling the hot topic: can system administrators (SysAdmins) truly be considered software engineers? And with the rise of automation and AI, is one role more at risk of being replaced than the other? In the blue corner, we have Shawn, our battle-tested SysAdmin. And in the red corner, the brilliant software engineer, Nadia. Let&#39;s get ready to rumble!&lt;/p&gt;&lt;p data-sourcepos=&quot;5:1-5:477&quot;&gt;&lt;b&gt;Shawn (SysAdmin):&lt;/b&gt; Thanks! Now, listen, I love Nadia&#39;s passion for building complex applications, but let&#39;s be honest.  Many SysAdmin tasks are ripe for automation.  Scripting, configuration management, even basic troubleshooting – AI is getting scary good at that stuff.  Software engineers, on the other hand,  deal with the creative aspects –  designing new functionalities,  solving unique problems. That kind of ingenuity  can&#39;t be easily replicated by machines... yet.&lt;/p&gt;&lt;p data-sourcepos=&quot;7:1-7:527&quot;&gt;&lt;b&gt;Nadia (Software Engineer):&lt;/b&gt;  Hold your horses, Shawn.  While some SysAdmin tasks can be automated,  AI  still struggles with the unexpected.  A  good SysAdmin  understands the intricate dance of all the systems  and can  think on their feet  to fix critical issues.  AI  isn&#39;t there yet.  Now,  software development is constantly evolving too.  New tools and frameworks  emerge all the time,  but  the core principles of  problem-solving,  algorithmic thinking – those are human skills that  AI  won&#39;t  replace anytime soon.&lt;/p&gt;&lt;p data-sourcepos=&quot;9:1-9:68&quot;&gt;&lt;b&gt;Moderator:&lt;/b&gt;  Spicy indeed!  Perhaps there&#39;s a middle ground here?&lt;/p&gt;&lt;p data-sourcepos=&quot;11:1-11:194&quot;&gt;&lt;b&gt;Shawn:&lt;/b&gt;  Absolutely.  Automation can free up SysAdmins to focus on more strategic tasks –  security automation,  cloud optimization,  even dipping their toes into some software development.&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:213&quot;&gt;&lt;b&gt;Nadia:&lt;/b&gt;  Exactly!  And as AI  evolves,  software engineers  will need to adapt too.  We&#39;ll  partner with AI  to  automate tedious testing  or  code generation,  allowing us to focus on the  cutting-edge stuff.&lt;/p&gt;&lt;p data-sourcepos=&quot;13:1-13:213&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-sourcepos=&quot;15:1-15:193&quot;&gt;&lt;b&gt;Moderator:&lt;/b&gt;  Sounds like both roles need to  embrace change to stay relevant.  So, the question isn&#39;t which role will be replaced, but rather how both can evolve alongside automation and AI?&lt;/p&gt;&lt;p data-sourcepos=&quot;15:1-15:193&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-sourcepos=&quot;15:1-15:193&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;~ The End ~&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p data-sourcepos=&quot;15:1-15:193&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/519820845791191219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9735706/posts/default/519820845791191219'/><link rel='alternate' type='text/html' href='http://www.tyrell.co/2024/03/the-great-debate-unveiling-similarities.html' title='The Great Debate: Unveiling the Similarities and Differences Between SysAdmins and Software Engineers'/><author><name>Tyrell Perera</name><uri>http://www.blogger.com/profile/15722959174948497757</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLQsy099wr_gc_0pWxyIb7G9M8Vv3TkW8OV-pN79E1z68yDmjhhU0FnZYHpR8XoqWnL770Lr_C2qht-edYZWbQi7NO211aOoJAK5BTqnS8tf1euBW-Jm4eJg_IN4LzrJYBq9d3T5NmHiSVlPjlrBrwe9YpAChX6BeNTliTT6WEVAI9jsQ/s220/tyrell-perera.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirO230D578PBUtw7TgFFH0W27Z9AgEKMo7hisyztGLqxJM3Cs6KUHjOMQH4pHs3KO8e6vquC_inDuDu_XDgMbMTPTVxoGK8UemeQf1m3uyp-KNCr5cAmYhaSoLXRIFap6K5km8-nWpmyfMRq-fxZQweNwcBJCEP3zhcW5MHNXWS8UcEZ-wXJOx/s72-w640-h640-c/sys-adminvs-software-engineeer-2.jpg" height="72" width="72"/></entry></feed>