<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Technology Should Work For Us]]></title><description><![CDATA[On systems, technology, and building healthier ways of working]]></description><link>https://www.christophermowers.com</link><image><url>https://www.christophermowers.com/img/substack.png</url><title>Technology Should Work For Us</title><link>https://www.christophermowers.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 06 May 2026 11:30:50 GMT</lastBuildDate><atom:link href="https://www.christophermowers.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Christopher Mowers]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[christophermowers@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[christophermowers@substack.com]]></itunes:email><itunes:name><![CDATA[Christopher Mowers]]></itunes:name></itunes:owner><itunes:author><![CDATA[Christopher Mowers]]></itunes:author><googleplay:owner><![CDATA[christophermowers@substack.com]]></googleplay:owner><googleplay:email><![CDATA[christophermowers@substack.com]]></googleplay:email><googleplay:author><![CDATA[Christopher Mowers]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[When Should Systems Replace Human Interaction?]]></title><description><![CDATA[People record intent. Automation records reality. Good systems know the difference.]]></description><link>https://www.christophermowers.com/p/when-should-systems-replace-human</link><guid isPermaLink="false">https://www.christophermowers.com/p/when-should-systems-replace-human</guid><dc:creator><![CDATA[Christopher Mowers]]></dc:creator><pubDate>Thu, 12 Mar 2026 22:28:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/556c1ca6-dfe1-45da-8fab-bf90d9f5b0ce_1200x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You&#8217;ve probably been in this meeting.</p><p>Someone spends ten minutes explaining numbers that already exist in three different systems. Someone shares their screen. People ask clarifying questions.</p><p>Eventually the meeting actually begins.</p><p>We point to situations such as this one as examples of poor organizational communication. In many cases, though, the problem isn&#8217;t communication at all.</p><p>It&#8217;s a systems design problem.</p><p>Organizations often talk about systems replacing meetings and human interaction. Sometimes they should. Sometimes they shouldn&#8217;t. And sometimes the system shouldn&#8217;t replace interaction at all; it should simply record what actually happens in the real world.</p><p>The real design question isn&#8217;t whether systems eliminate human interaction. It&#8217;s <strong>which interaction should exist in the first place.</strong></p><p>Some interaction is necessary because people are reasoning together. Other interaction exists only because information hasn&#8217;t been made visible yet.</p><p>Good systems eliminate the second kind.</p><p>Too many systems get this wrong.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.christophermowers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.christophermowers.com/subscribe?"><span>Subscribe now</span></a></p><h2>When a System Should Replace Human Interaction</h2><p>Some conversations and meetings happen only to transfer information.</p><p>Consider a hypothetical team that runs a weekly service health review.</p><p>Before a shared monitoring dashboard existed, engineers gathered information from Slack threads, incident tickets, and deployment logs. Someone assembled a summary of outages and errors before the meeting and presented it to the group.</p><p>The first part of the meeting was always spent reviewing what had happened.</p><p>Which services went down?<br>How long were they unavailable?<br>What was the severity?</p><p>Although people were talking, most of the meeting involved transmitting information that already existed somewhere.</p><p>After the team implemented a shared incident dashboard, the structure of the meeting changed. Incidents appeared automatically in one place. Severity levels were visible. Resolution times were tracked. Anyone could review the data before the meeting began.</p><p>The meeting itself didn&#8217;t disappear, but its purpose shifted. Instead of recounting incidents, the team discussed patterns. Why were certain failures recurring? Were there architectural weaknesses behind them? Which services needed deeper attention?</p><p>The system didn&#8217;t eliminate the meeting, but it eliminated the need to explain the same information repeatedly.</p><p>When interaction exists only to convey information, a system should usually replace it.</p><h2>When a System Should Support Human Interaction</h2><p>Not all interaction is informational.</p><p>Some interaction exists because people need to interpret situations, apply judgment, or make decisions under uncertainty.</p><p>In those cases, replacing the interaction would be a mistake.</p><p>What the system should do instead is support the interaction by giving people a shared view of the situation. When everyone enters a discussion already looking at the same information, the interaction improves immediately. Participants arrive prepared. Assumptions get challenged earlier. The discussion can move directly to reasoning.</p><p>In this role, the system isn&#8217;t replacing human interaction. It&#8217;s enabling better interaction.</p><h2>When Systems Drift From Reality</h2><p>There is a third situation that appears frequently in operational systems: the system attempts to represent reality but slowly drifts away from it.</p><p>Consider a conference room reservation system.</p><p>On paper it solves a simple coordination problem. Employees reserve rooms through a calendar, and the system tells everyone which rooms are available.</p><p>In practice, the real world rarely aligns perfectly with the system. People reserve rooms and never show up. Meetings run long. Teams use empty rooms that were technically booked by someone else.</p><p>The calendar might say the room is reserved until two o&#8217;clock, but when someone walks past the room it is empty.</p><p>At that point people stop trusting the system. Instead of checking the calendar, they ask each other whether the room is actually free.</p><p>The system still exists, but it is no longer authoritative. Interaction returns because the system no longer reflects reality.</p><p>This pattern appears across many operational systems. Whenever a system drifts away from reality, people fall back to human interaction.</p><h2>A Better Mental Model</h2><p>One useful way to think about systems is to separate <strong>intent</strong> from <strong>reality</strong>.</p><p>People are good at describing what they intend to do. Systems coordinate processes. Automation is good at recording what actually happens.</p><p>A simple mental model is this:</p><p>People record intent.<br>Automation records reality.</p><p>Consider a delivery company.</p><p>A dispatcher schedules a route and assigns deliveries to a truck. That step records intent; it describes what the organization plans to do.</p><p>Reality is recorded automatically. The driver scans the package when it arrives. GPS records the truck&#8217;s location. The system logs the delivery time.</p><p>Now the system can show both things clearly: what was supposed to happen and what actually happened.</p><p>When reality is captured automatically, the system stays trustworthy.</p><p>When systems rely on people to manually report reality after the fact, accuracy tends to decline.</p><h2>Why Systems Often Fail</h2><p>Many enterprise systems quietly assume that people will faithfully maintain data about the real world.</p><p>In practice, they rarely do.</p><p>Sales activity tracking provides a common example. A company might require salespeople to log every call and email in a CRM in order to create visibility into sales activity.</p><p>But the actual work happens elsewhere. Calls happen on the phone. Conversations occur in email threads and messaging apps.</p><p>Logging the activity becomes a separate task.</p><p>At first people try to keep the system accurate. Over time entries become rushed or incomplete. Some activities are never recorded at all.</p><p>Eventually the system stops reflecting what actually happened. Once that happens, people stop trusting it.</p><p>The system was designed for reporting rather than for the work itself.</p><h2>Replace Interaction Only When the Process Is Clear</h2><p>Systems should replace human interaction when the interaction exists only to transfer information and the process itself is well understood.</p><p>If the rules are clear and the outcomes can be modeled in the system, automation works well.</p><p>But much of real work does not fit that pattern.</p><p>When processes are new, complicated, or ambiguous, human interaction matters. When decisions depend on judgment or intuition, discussion is essential.</p><p>In those situations the system should record the outcome of the interaction rather than attempt to eliminate it.</p><h2>The Problem With &#8220;Single Source of Truth&#8221;</h2><p>Enterprise architecture discussions often revolve around the phrase &#8220;single source of truth.&#8221;</p><p>In practice, that phrase often implies that other systems contain incorrect or outdated information. One system is considered authoritative while others may drift.</p><p>We should aim for something better.</p><p>The goal should not be a single location where truth resides. The goal should be systems designed so that the truth stays consistent everywhere.</p><p>Achieving that requires thoughtful synchronization and discipline about how many platforms hold critical data. When done well, systems reinforce each other instead of contradicting each other.</p><h2>Designing Systems That Stay Close to Reality</h2><p>Systems that support good decisions tend to follow a few simple principles.</p><p>Real-world actions should connect directly to system actions. Work should not happen in one place and then be reported somewhere else later.</p><p>Whenever possible, systems should observe events automatically rather than relying on manual updates.</p><p>Exceptions should surface quickly. When reality diverges from expectations, the system should make that visible.</p><p>And perhaps most importantly, systems should avoid asking people to maintain data that the system could capture on its own.</p><h2>The Real Question</h2><p>The question isn&#8217;t whether systems should replace human interaction.</p><p>The question is whether the interaction exists for <strong>information or reasoning</strong>.</p><p>If it&#8217;s information, systems should replace it.</p><p>If it&#8217;s reasoning, systems should support it.</p><p>And when reality changes, automation should record it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.christophermowers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Technology Should Work For Us! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Zoho Catalyst for the Zoho Developer]]></title><description><![CDATA[An overview to help Zoho developers take their first steps into Catalyst]]></description><link>https://www.christophermowers.com/p/zoho-catalyst-for-the-zoho-developer</link><guid isPermaLink="false">https://www.christophermowers.com/p/zoho-catalyst-for-the-zoho-developer</guid><dc:creator><![CDATA[Christopher Mowers]]></dc:creator><pubDate>Tue, 01 Apr 2025 09:53:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b86e4434-6970-4e28-b90c-1e1428937df3_840x560.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This post is based on a presentation I gave for the Zoho Developer Community. Watch it <a href="https://www.youtube.com/watch?v=_184g5Kqw9I">here</a>.</p><p>As a long-time Zoho developer, I&#8217;ve spent years working in Deluge&#8212;writing scripts, automating workflows, integrating APIs, and sometimes even pushing the platform to its limits. Deluge is powerful, but if you've ever bumped into its constraints or tried to build something a bit more complex, you&#8217;ve probably felt that itch for something <em>more</em>. That&#8217;s where Catalyst comes in.</p><p>Catalyst is Zoho&#8217;s full-stack serverless platform. And while it&#8217;s incredibly powerful, much of the content out there focuses on individual use cases. What&#8217;s missing is a bridge&#8212;a way for seasoned Zoho developers to comfortably step into Catalyst and see how familiar principles apply in this broader, more capable environment.</p><p>That&#8217;s the gap I want to help close.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.christophermowers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.christophermowers.com/subscribe?"><span>Subscribe now</span></a></p><h2>Why Move from Deluge to Catalyst?</h2><p>If you're like me, you probably started your Zoho development journey trying to solve every problem in Deluge. And for a long time, I saw that as a badge of honor. But I've shifted my mindset: <strong>I don&#8217;t have to live like Catalyst doesn&#8217;t exist</strong>.</p><p>Here&#8217;s the thing&#8212;Deluge is meant to extend the functionality of Zoho apps. It&#8217;s great for automating actions within CRM, Creator, Books, and so on. But it has limits. Catalyst lifts many of those limits while keeping you in the Zoho ecosystem.</p><p>Instead of struggling with long, complex Deluge functions, or awkward workarounds for limits like execution time or external libraries, you can just use Catalyst. And in doing so, you&#8217;re still operating in Zoho&#8217;s privacy-centric cloud, still close to your CRM data, still in the world your clients trust.</p><h2>What&#8217;s the Same?</h2><p>You&#8217;re already serverless.</p><p>That may sound odd, but it&#8217;s true&#8212;writing Deluge in CRM or Creator is a serverless act. You don&#8217;t manage infrastructure; you just write logic and it runs. That same mindset applies in Catalyst. You&#8217;ll find yourself more at home than you might expect.</p><p>Catalyst, like Deluge, is event-driven. You respond to triggers (like a field update) and execute a function. The difference? You now have full access to modern languages (Python, Node.js, Java), scalable architecture, and far better observability and testability.</p><h2>What&#8217;s Better in Catalyst?</h2><p>Here&#8217;s where things get exciting:</p><ul><li><p><strong>Scalability without limits:</strong> Execution limits like those in Deluge? Gone.</p></li><li><p><strong>External libraries:</strong> Need a date recurrence engine? Pull in a Python package and get it done in five lines.</p></li><li><p><strong>True parallel environments:</strong> Develop and test in dev, push to production when ready.</p></li><li><p><strong>Observability:</strong> Logs that actually tell you what happened.</p></li><li><p><strong>Cost:</strong> It&#8217;s pay-per-use and <em>very</em> cheap. Most of my production Catalyst setups cost under $10/month.</p></li></ul><p>And then there&#8217;s <strong>complexity</strong>. You can build layered, asynchronous logic that would be nightmarish in Deluge but elegant in Catalyst.</p><h2>Catalyst Architecture 101</h2><p>Catalyst uses a <strong>microservice, event-driven architecture</strong>. This means:</p><ul><li><p>Each function is single-purpose and disposable.</p></li><li><p>Functions communicate via <strong>events</strong> (like a record being edited or a value being cached).</p></li><li><p>The <strong>state</strong> of your app exists across various services&#8212;caching, file storage, databases&#8212;not necessarily in one place.</p></li><li><p>You should lean into the <strong>tools Catalyst gives you</strong>, rather than rebuilding everything in code.</p></li></ul><p>Here&#8217;s the mindset shift: <strong>In Catalyst, the cloud </strong><em><strong>is</strong></em><strong> the application.</strong></p><h2>How to Trigger Things</h2><p>You have a lot of options to start your logic in Catalyst:</p><ul><li><p><strong>API Gateway:</strong> Build APIs to call from CRM, Creator, or anything else. This is my go-to.</p></li><li><p><strong>Event Listeners:</strong> Listen to changes in CRM or internal Catalyst events.</p></li><li><p><strong>Job Scheduler:</strong> Schedule logic to run later or repeatedly.</p></li><li><p><strong>Signals:</strong> Use template-based data transformation and external API interaction with minimal code.</p></li><li><p><strong>Direct Function URLs:</strong> I recommend avoiding these&#8212;API Gateway gives you more control and security.</p></li></ul><h2>Writing and Organizing Code</h2><p>You&#8217;ll write functions in Python, Node, or Java. I prefer Python&#8212;it&#8217;s fast, readable, and Catalyst supports it well.</p><p>There are two function types to know:</p><ul><li><p><strong>Basic functions:</strong> Ideal for most workflows.</p></li><li><p><strong>Advanced functions:</strong> Use these if you need direct HTTP control (e.g., return a 404, redirect, etc.).</p></li></ul><p>For orchestrating multiple steps, Catalyst offers <strong>Circuits</strong>. Think of these like flowcharts for your backend logic: wait, branch, retry, batch, and so on.</p><p>&#128161; <em>Pro tip:</em> If you're polling an API every 30 seconds, don&#8217;t write a loop in code. Use a Circuit with wait steps. Lean into the platform.</p><h2>Managing State and Data</h2><p>Serverless apps struggle with state, but Catalyst gives you tools:</p><ul><li><p><strong>Cache:</strong> For short-lived, small data. Lightning fast and great for coordination between functions.</p></li><li><p><strong>Relational DB:</strong> Best for app settings or persistent metadata.</p></li><li><p><strong>NoSQL DB:</strong> Fast, flexible, and surprisingly powerful once you get it.</p></li><li><p><strong>File Storage:</strong> Great for holding large blobs of data temporarily (e.g., JSON results from another API).</p></li><li><p><strong>Environment Variables:</strong> Per-function, so use them sparingly. I recommend encrypted storage in the DB for secrets instead.</p></li></ul><h2>Designing for Concurrency</h2><p>Serverless is inherently concurrent. That&#8217;s a strength&#8212;but it&#8217;s also a challenge.</p><p>To avoid issues:</p><ul><li><p><strong>Design idempotent logic</strong>: Hitting an endpoint twice shouldn't break anything.</p></li><li><p><strong>Pull fresh data right before final writes</strong>, if there's a time gap.</p></li><li><p><strong>Use queuing structures like Job Scheduler or Event Listeners</strong> if things must run in order.</p></li></ul><h2>Conclusion</h2><p>Zoho Catalyst isn&#8217;t just an alternative to Deluge&#8212;it&#8217;s the natural next step when your automation needs outgrow the scripting layer. And the good news? You already have the mindset to succeed.</p><p>If you&#8217;re a Zoho developer looking to level up your automation, embrace complexity, and build apps with modern tooling&#8212;all while staying inside Zoho&#8217;s ecosystem&#8212;Catalyst is worth learning.</p><p>Start with one thing. One script. One function. Then build from there.</p><p>Got questions or want to dig deeper? Reach out&#8212;I&#8217;d love to hear how you&#8217;re using Catalyst.</p>]]></content:encoded></item><item><title><![CDATA[Bridging the Gap: Why Low‑Code and Serverless Are Better Together]]></title><description><![CDATA[Together, they are one of the most compelling stacks available for application development.]]></description><link>https://www.christophermowers.com/p/bridging-the-gap-why-lowcode-and</link><guid isPermaLink="false">https://www.christophermowers.com/p/bridging-the-gap-why-lowcode-and</guid><dc:creator><![CDATA[Christopher Mowers]]></dc:creator><pubDate>Tue, 04 Mar 2025 11:55:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/25dfd943-269e-4b07-8615-007c31ecce4a_5700x3206.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the world of creating apps and software, change is our norm. To say that application development is constantly changing is cliche at this point. The whole world is constantly looking to do things quicker, more efficiently, and digitally. It's the McDonaldization of software to some degree. Like with fast food, we all would love to order an application on our phones and pick it up on the way home from work (except we all work remotely now).</p><p>To meet this demand, vendors have developed two seemingly competing solutions: low-code and serverless computing.</p><p>Low-code is all about making app-building accessible to business users. You don't need to write thousands of lines of boilerplate code to create something useful. Instead, you pick and place the pieces you need, and you can build something great in much less time.</p><p>Serverless computing attempts to solve technical overhead and therefore speed and cost by solving a different problem. Serverless platforms provide a series of web services that take the place of a server, so the application owner does not have to maintain it. Instead of building an application from the ground up, serverless-oriented engineers cleverly bridge together various web services into their own microservices. They layer custom code on top of this robust platform for application development. For all this, the owner of the application pays according to the usage of the platform.</p><p>These may seem like two different strategies, catering to two different audiences. But my professional experience over the past few years has shown me that the two, when leveraged together, form one of the most compelling application development stacks available today. Mark Troester had this idea a few years ago as well and wrote a compelling argument about why they should be leveraged together <a href="https://www.techtarget.com/iotagenda/blog/IoT-Agenda/Low-code-and-serverless-like-fire-and-ice#:~:text=Opposites%20attract%3A%20Combining%20ice%20and,fire">here</a>.</p><p>By looking at these two ideas, we're not just talking about new tools. It's more about thinking differently on how we make apps. It's about making it easier for anyone to bring their ideas to life and not get bogged down by the technical bits. So, let's dive in and see how these two can change the game together.</p><p><strong>The rise of Low-Code</strong></p><p>The popularity of low-code platforms is soaring, reshaping how we think about building apps. Gartner, a well-known market research firm, has spotted this trend too. They predicted that by 2024, <a href="https://www.gartner.com/en/newsroom/press-releases/2020-05-29-gartner-forecasts-worldwide-low-code-development-technologies-market-to-grow-23-percent-in-2021">almost 65% of all app development will happen on these user-friendly platforms</a>. I'm hopeful that we get a retrospective on this soon to see where the industry is at today in 2025 relative to this prediction. Certainly the rise of LLMs has eaten up much of the conversation. Nevertheless, low-code applications are used on a daily basis in many organizations.</p><p>Low-code platforms make creating apps much easier. They use simple, drag-and-drop interfaces that don't require you to write a lot of complex code. This opens up app development to everyone, not just the people with technical skills. They're called citizen developers, and they're changing the game because now anyone with a good idea can build an app.</p><p>This ease of use does more than just lower the barrier to entry; it sparks innovation. When more people can develop their ideas quickly, there&#8217;s more room for creativity and new solutions. Organizations can adapt faster and come up with unique answers to problems, which is a huge advantage in today&#8217;s fast-moving digital world.</p><p><strong>My Journey with Low-Code and Serverless</strong></p><p>I have been working professionally as a developer, building custom extensions and applications on the Zoho platform, since 2020. In that time, I've come to realize that most of what Zoho offers is essentially a platform for low-code development. In fact, many other software tools could be looked at as low-code development tools, not only applications that are explcitly labeled as such. If you can customize a layout, present and store data, and build in a custom application layer using scripts, webhooks, drag and drop workflows, or anything like that, you are definitely in the realm of low code.</p><p>Around the same time I started working in Zoho, I earned an AWS Solutions Architect Associate certification. I did so because I had an interest in cloud computing and I knew that the career prospects were good. At first, I did very little with this, but as I build more and more complex applications using Zoho tools, I saw a gap that could be filled by AWS. The environments for code execution in low-code applications are not very robust. You tend to write code in more of a scripting style that can be very difficult to maintain. You also face various limitations to the execution such as time and number of lines executed. You typically cannot import libraries and are limited to the operations availabe to you in that environment. Therefore, as more complicated needs would arise, I would look to a serverless back end over which I had more control, with integration by HTTP calls to custom APIs of my own design. Since 2022, my platform of choice for this work has been Zoho Catalyst.</p><p><strong>Low-Code Meets Serverless</strong></p><p>There is great power in the fusion of low-code with serverless. A developer or small team can rapidly build an application on a low-code platform, leveraging a serverless full-code back end when facing limitations of the low-code platform. Low-code makes the application development easy and accessible. You don&#8217;t have to be a coding expert to create something useful, and many complete applications can be built on these platforms only. The serverless computing layer will give the application additional horsepower when necessary, and much like most low-code platforms you don&#8217;t want to worry about keeping computers running all the time just for your app to work. Serverless computing automatically adjusts resources for your app as usage fluctuates.</p><p><strong>Zoho is my Platform of Choice</strong></p><p>Now, even though I'm open to chatting about all sorts of platforms, Zoho is my main ingredient. I work with it professionally, so when we talk about making apps, I'll often talk about how it&#8217;s done using Zoho's tools. It's like my go-to toolbox. And just so you know, I also have a secondary toolset; I can work with AWS (which is another big, powerful set of tools for building and running apps).</p><p>Zoho is really stepping up its game by mixing serverless development with its low-code offerings in Catalyst. Zoho's move means if you have some serious coding chops, you can dive in and do even more complex, powerful things, while still enjoying the simplicity of Zoho's take on the serverless experience.</p><p><strong>Please Subscribe for More</strong></p><p>As we wrap up, I want to extend an invitation to all of you to continue this conversation on our Substack. Your experiences, insights, and contributions are the keys to evolving our standards and practices in the world of app development. So, don't hold back! Share your journey, tips, and thoughts with me. Together, let's pave the way for an even brighter future in application development.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.christophermowers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.christophermowers.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>