<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>David Hoang — Writing — software</title><description>Writing tagged “software”. For notes, use /rss/notes.xml.</description><link>https://www.davidhoang.com</link><language>en-us</language><lastBuildDate>Sat, 14 Nov 2026 15:30:09 GMT</lastBuildDate><atom:link href="https://www.davidhoang.com/rss/tag/software.xml" rel="self" type="application/rss+xml"/><item><title>The formlessness of AI agents</title><link>https://www.davidhoang.com/writing/the-formlessness-of-ai-agents</link><guid isPermaLink="true">https://www.davidhoang.com/writing/the-formlessness-of-ai-agents/</guid><description>Finding the right vessel for new capabilities</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In &lt;a href=&quot;https://marvel.fandom.com/wiki/Avengers_Vol_1_54&quot;&gt;The Avengers #54&lt;/a&gt;, a mysterious villain called the Crimson Cowl is orchestrating attacks against the team. It&apos;s not until the last page that the cowl drops and we see what&apos;s underneath: a robot. The next issue reveals him fully—Ultron-5, a living automation built by Hank Pym using his own brain patterns.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2026/img-2026-04-12-formlessness-ultron.webp&quot; alt=&quot;Ultron in Marvel comics&quot; /&gt;&lt;/p&gt;
&lt;p&gt;By the time anyone sees Ultron, he&apos;s already on version five. He was created, gained sentience, rebelled against his creator, hypnotized Pym into forgetting he ever existed, and then quietly iterated through four bodies in secret as a self-upgrade. Each time Ultron is defeated, he rebuilds to a better enclosure for the same intelligence. Like a hermit crab moving through shells, Ultron wasn&apos;t becoming something new but finding the optimal fit.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2026/img-2026-04-12-formlessness-ultron-variants.webp&quot; alt=&quot;Ultron rebuilds through successive bodies in Marvel comics&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Our AI tools are having their Ultron moment. In a few years of the scaling era of AI, capabilities have evolved rapidly and are compounding. They are breaking out of the chat boxes with tiny context windows and are now taking actions, running in the background, and using similar tools as us. It&apos;s not AGI, but it turns out serendipitous cron jobs invoke a sentient connection to many human beings.&lt;/p&gt;
&lt;p&gt;The question in the Ultron moment is, &quot;what is the right body for this intelligence?&quot;&lt;/p&gt;
&lt;h2&gt;New capabilities begin in borrowed form&lt;/h2&gt;
&lt;p&gt;Steve Jobs made this observation at the 1983 International Design Conference in Aspen. Early television shows were like radio shows with a camera pointed at them. Because the capability is new, people used existing patterns of what they already knew—a host behind a desk, reading to an audience, and filmed it. The breakthrough was you could visually tell a story of War of the Worlds instead of reading it to them.&lt;/p&gt;
&lt;p&gt;Early websites were digital brochures and mobile apps were shrunken desktop software. Early iPhone prototypes ran a cut‑down version of OS X&apos;s core, adapted to fit a phone. AI agents talking through chat interfaces are like radio shows with a camera pointed at them. Chat is frictionless not because it&apos;s the right interface but because it&apos;s a familiar one; a turn-by-turn conversational text box.&lt;/p&gt;
&lt;p&gt;In Silicon Valley, we&apos;re obsessed with pushing the edges of technology and need to be reminded of global behaviors. I recently ran rapid research comparing site-building tools for SMBs (yes I do this for fun). Compared to classic site builders such as Framer, Webflow, and Squarespace, people preferred using Lovable or Replit to build a website because of the conversational interface.&lt;/p&gt;
&lt;h2&gt;Giving agents a body&lt;/h2&gt;
&lt;p&gt;OpenClaw is an open‑source framework for controlling your computer through natural‑language agents. Its primary interaction is a chat agent: you text it on messaging platforms such as Telegram or WhatsApp. It runs tasks on your computer, manages your calendar, clears your inbox. That wasn&apos;t enough for some people.&lt;/p&gt;
&lt;p&gt;Tom saw a fundamental problem: how do you get OpenClaw to control actual motors in real time? His answer was ClawBody, a software bridge that connects OpenClaw to physical hardware so you can train agents in simulation, then deploy them to real robots. Chris asked a different question: what if robots could actually understand spatial depth? He integrated Intel RealSense cameras with OpenClaw and a vision‑language model so robots can track a person through space, maintain distance, and navigate obstacles, all driven by natural language.&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;writing-inline-video-wrap&quot;&amp;gt;
&amp;lt;video class=&quot;writing-inline-video&quot; autoplay muted loop playsinline controls preload=&quot;metadata&quot; poster=&quot;https://www.davidhoang.com/images/blog/2026/img-2026-04-12-formlessness-clawbody-still.webp&quot; width=&quot;554&quot; height=&quot;312&quot;&amp;gt;&amp;lt;source src=&quot;https://www.davidhoang.com/images/blog/2026/img-2026-04-12-formlessness-clawbody.mp4&quot; type=&quot;video/mp4&quot; /&amp;gt;&amp;lt;/video&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;Then there&apos;s ClawStage, a device built by HooRii Technology that turns OpenClaw into a companion robot — a Raspberry Pi 5 with a transparent display that creates a hologram-like effect for an animated AI persona, with a camera and microphone array that let it perceive its surroundings and respond to voice directionally. Hackster users can design custom personalities for it, download characters from a shared hub, and make the intelligence feel like someone.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2026/img-2026-04-12-formlessness-vignette.webp&quot; alt=&quot;A vignette of different shells and encapsulations for AI; some more functional than others.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A project called Dimensional integrated OpenClaw with the Unitree G1 humanoid robot and gave it Spatial Agent Memory. The agent understands physical space and temporality, knows the layout of rooms, the location of objects, where people tend to be.&lt;/p&gt;
&lt;p&gt;Many of these projects started as DIY projects because they wanted to create an enclosure for their sentient tools; like a hermit crab between shells.&lt;/p&gt;
&lt;p&gt;We know how to relate to things that have form. A hammer looks like something you swing and a doorknob affords turning. When something is formless, such as an intelligence in machine-form that sees the world in lines of code, we don&apos;t have the same intuitive relationship with it. Human and agentic behaviors are not the same. It&apos;s a miss for us to replicate ourselves in the form of a new intelligence.&lt;/p&gt;
&lt;p&gt;This is why we must explore the right enclosures and interfaces for agents. We&apos;ll soon realize all these CLI tools are not primarily for the humans—they&apos;re for people giving the formless thing a shape so they can understand what it does.&lt;/p&gt;
&lt;p&gt;The shell keeps changing.&lt;/p&gt;
&lt;h2&gt;The trust tension&lt;/h2&gt;
&lt;p&gt;Humans need visibility of agents to trust them; to understand what they are doing and where the boundaries are. Formlessness creates anxiety for humans. If one can&apos;t see the agent, how is it held accountable?&lt;/p&gt;
&lt;p&gt;The current challenge is the interfaces are designed in the borrowed form of chat, sidebar, and copilots. We&apos;re in the uncanny valley of agent design. The form is close enough to be usable but wrong enough to be limiting. A chat-based agent can answer your question but can&apos;t show you it&apos;s already working on three other things in parallel. A copilot can suggest edits but can&apos;t demonstrate that it understands the broader context of your project.&lt;/p&gt;
&lt;p&gt;The interface doesn&apos;t match the capability. As a result, humans and agents are working on the same interfaces and it&apos;s not visibly clear who is doing what.&lt;/p&gt;
&lt;p&gt;This is the enclosure problem. Not just how agents look, but what kind of container can hold something that is, by nature, without container. That&apos;s a harder design question than it sounds. Many of us haven&apos;t designed for things that can think, plan, reason, and use the same tools we do.&lt;/p&gt;
&lt;p&gt;And if you want to go somewhere uncomfortable: we haven&apos;t solved this problem for ourselves either. The relationship between consciousness and body, between the mind and the form it inhabits, is the oldest unsolved question in philosophy. We&apos;re spiritual beings who never fully made sense of our own enclosures. Now we&apos;re being asked to design one for something else.&lt;/p&gt;
&lt;h2&gt;The form is still being found&lt;/h2&gt;
&lt;p&gt;We&apos;re doing what humans always do when faced with something formless: we reach for the containers we already have. We put radio on television. We put the legal pad in the Notes app. We put intelligence in a chat box.&lt;/p&gt;
&lt;p&gt;We&apos;re the ones designing the body for the new medium. That reframes every choice. A chat interface is a claim about what kind of enclosure intelligence should have. A sidebar copilot is a claim. A robotic arm is a claim. Each enclosure shapes what the intelligence can do, how people relate to it, and what it becomes. The form isn&apos;t neutral.&lt;/p&gt;
&lt;p&gt;It&apos;s tempting to settle with the borrowed form, but that&apos;s not what we do as designers. Understanding what form formless experiences need is what we should explore. The fact that we haven&apos;t found the native form of agents yet means the field is genuinely open. This is the equivalent of being a filmmaker in 1910, a web designer in 1995, a mobile designer in 2008. The early chaotic moments that feel disorienting are what we live for as makers.&lt;/p&gt;
&lt;p&gt;We are at the beginning of thinking about different enclosures for agents. The shell keeps changing—and that&apos;s the work.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://www.proofofconcept.pub/p/the-formlessness-of-ai-agents&quot;&gt;Proof of Concept&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>writing</category><category>ai</category><category>software</category><category>agents</category></item><item><title>A new MVC is emerging</title><link>https://www.davidhoang.com/writing/a-new-mvc-is-emerging</link><guid isPermaLink="true">https://www.davidhoang.com/writing/a-new-mvc-is-emerging/</guid><description>AI is breaking the way we build (and it&apos;s exciting)</description><pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For makers of software, Model/View/Controller (MVC) is one of the first concepts you learn. MVC is a design pattern that separates an application into three parts to organize code and make it easier to maintain. The Model handles data and business logic, the View manages the user interface, and the Controller acts as a middleman that processes user input and coordinates between them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2025/img-2025-06-15-mvc.webp&quot; alt=&quot;A new MVC is emerging&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Think of it like a restaurant: the kitchen (Model) prepares the food, the dining room (View) is where customers eat, and the waiter (Controller) takes orders and communicates between the two. This separation allows developers to modify one part without breaking the others.&lt;/p&gt;
&lt;p&gt;MVC has guided software architecture for decades—but AI is about to turn it on its head.&lt;/p&gt;
&lt;p&gt;Instead of rigid relationships between data, interface, and logic, we&apos;re entering a world where intelligent agents dynamically orchestrate distributed systems. Rather than building monolithic apps with centralized databases, we now design decoupled systems where agents respond in real-time using protocols like MCP (Model Context Protocol).&lt;/p&gt;
&lt;p&gt;So what happens when Model, View, and Controller all become intelligent?&lt;/p&gt;
&lt;p&gt;Before I share my thoughts, I must acknowledge and share Ruben Verborgh&apos;s “Paradigm shifts for the decentralized Web.” Verborgh, a professor of Decentralized Web Technology, wrote this back in 2017 and laid out three critical shifts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;End users become data controllers:&lt;/strong&gt; Users store their data where they want, improving privacy and control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apps become views:&lt;/strong&gt; Apps are no longer single gateways, but interchangeable UI layers over personal data stores.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interfaces become queries:&lt;/strong&gt; Distributed data demands declarative, query-driven interfaces, not custom APIs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now, with AI in the loop, these shifts feel even more pressing—and they&apos;re converging with a reimagining of MVC. Let&apos;s explore what the new MVC looks like.&lt;/p&gt;
&lt;h2&gt;The emerging MVC&lt;/h2&gt;
&lt;p&gt;The emerging MVC forces software makers to think of system-centric product experiences instead of app-centric. Simply put, the containers are breaking and walled gardens are coming down. Let&apos;s look at the new constructs of MVC.&lt;/p&gt;
&lt;h3&gt;LLMs as Models&lt;/h3&gt;
&lt;p&gt;During a conversation with Kyle Turman at Anthropic, they said something that stuck with me: &quot;LLMs are grown, not built.&quot; That framing changed everything. Unlike traditional models you code and optimize, LLMs are trained, shaped, and continuously refined by their inputs and interactions. They behave less like deterministic engines and more like probabilistic ecosystems. This organic quality changes how we interface with them—and what we expect from &quot;the model.&quot;&lt;/p&gt;
&lt;h3&gt;Apps as Views&lt;/h3&gt;
&lt;p&gt;In this new world, the app is no longer the destination—it&apos;s the interface. Core workflows may still rely on apps, but increasingly, they&apos;re just &lt;em&gt;views&lt;/em&gt; for interacting with data and agents.&lt;/p&gt;
&lt;p&gt;One of the first apps I ever built was Carogram, an Instagram client for the web and iPad using Node.js. Even back then, the trend was clear: apps were wrappers over data that lived elsewhere. Deep linking was a start. Now, we&apos;re looking at a future where apps might not store any data at all—just render it, query it, or pass it through.&lt;/p&gt;
&lt;p&gt;That was the promise of the decentralized web and blockchain: portability, ownership, and independence from centralized services. It didn&apos;t fully land back then. But with AI and protocols like MCP, it may finally find footing.&lt;/p&gt;
&lt;h3&gt;Agents as Controllers&lt;/h3&gt;
&lt;p&gt;This is where it gets interesting. If LLMs are the new Models and apps are our Views, AI agents step into the Controller role—except they don&apos;t just relay input anymore. They interpret, decide, act, and coordinate across distributed systems. With Model Context Protocol (MCP), agents dynamically handle context switching, planning, and executing across multiple apps and data sources.&lt;/p&gt;
&lt;p&gt;They&apos;re not just smarter waiters. They&apos;re like sous-chefs, sommeliers, and maître d&apos;s rolled into one—making judgment calls in real time.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2025/img-2025-06-15-mvc-cover.webp&quot; alt=&quot;A new MVC is emerging&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Recap&lt;/h2&gt;
&lt;p&gt;I won&apos;t force a new acronym like &lt;strong&gt;LAA&lt;/strong&gt; (LLMs, Apps, Agents)—but the point is clear: MVC isn&apos;t gone, it&apos;s evolving.&lt;/p&gt;
&lt;p&gt;In this emerging architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instead of maintaining a codebase, we&apos;re managing endpoints, protocols, and interactions&lt;/li&gt;
&lt;li&gt;Vendor lock-in becomes a liability, not a moat&lt;/li&gt;
&lt;li&gt;Apps need to be interoperable by design, not by exception&lt;/li&gt;
&lt;li&gt;AI interfaces act as meta-layers, sitting above and across traditional apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Software isn&apos;t collapsing—it&apos;s decoupling. We are moving from app-centric experiences to system-centric ones. And with that comes a chance to rethink how we make, control, and interact with the systems around us.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://www.proofofconcept.pub/p/a-new-mvc-is-emerging&quot;&gt;Proof of Concept&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>writing</category><category>ai</category><category>software</category><category>architecture</category></item><item><title>The four types of software in the future</title><link>https://www.davidhoang.com/writing/the-four-types-of-software-in-the-future</link><guid isPermaLink="true">https://www.davidhoang.com/writing/the-four-types-of-software-in-the-future/</guid><description>The different classes and classifications of what we use (and make)</description><pubDate>Sun, 16 Jul 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When you think of high-end or boutique design, the fashion industry likely comes to mind before software. Take something like a T-shirt. You can find a $10 version of it on a shelf at Target or spend hundreds (if not thousands) of dollars on one at a Louis Vuitton runway show. It might feel weird to think of software at first ponder, but this is where the world is heading. Could you imagine exclusive software? It&apos;s very possible in the future. What about software that gets thrown away like a daily-use contact lens? Also possible.&lt;/p&gt;
&lt;p&gt;There are forces of nature changing the landscape of software development that are going to change how we make software. With that, the type of software created will have a different shelf life, purpose, and level of quality. Let’s reflect on the forces of nature that are impacting this before covering what I think are four types of software in the future.&lt;/p&gt;
&lt;h2&gt;Software barrier is lower&lt;/h2&gt;
&lt;p&gt;I put &quot;easier&quot; in quotes because of the subjectivity (perhaps “approachable” is a more appropriate word). Whether it&apos;s no-code or writing lines of code, these two worlds are colliding. This is one of the reasons I joined Replit. If you have an internet browser, you can build software.&lt;/p&gt;
&lt;p&gt;More people have access to creating and publishing software than ever, and that&apos;s a great thing. I believe the best ideas that will change the world might not come from &quot;the best&quot; developers, but from ambitious individuals who hack something together to take an idea and turn it into something tangible.&lt;/p&gt;
&lt;h2&gt;Accessible endpoints and models&lt;/h2&gt;
&lt;p&gt;It&apos;s not to say that nobody is ever going to have a database in their software anymore, but there are more reasons to not need one. As the world of software creation shifts with more access to endpoints, APIs, and language models, this might result in more emphasis on client-side apps. Let&apos;s take Threads, an Instagram company (a Meta company), which launched this month. There seem to be plans to integrate the Twitter clone with ActivityPub, a decentralized protocol also used by Mastodon.&lt;/p&gt;
&lt;p&gt;This essentially means you can weave federated experiences into one. There is a world where you experience the same content but through multiple apps. We are entering the Twitter clone saga with Bluesky, T2 (no relation to Terminator 2: Judgment Day, unfortunately), Posts, Substack Notes, and Threads. If all of these apps used ActivityPub, having unique client-side application experiences doesn&apos;t matter. &quot;Apps&quot; as we are accustomed to feel more like views.&lt;/p&gt;
&lt;h2&gt;Distribution is nearly immediate&lt;/h2&gt;
&lt;p&gt;In its early days, software distribution looked more like how we delivered physical goods than it does today. When a developer released software, it came in a box along with the floppy disk(s) and instruction manual for you to get started. Deploying software no longer needs to be written on a physical disk and can be nearly immediate. There will still be a world relying on platforms to distribute software (such as the Apple App Store or Google Play for iOS and Android apps) but there are now opportunities to go direct with other software built.&lt;/p&gt;
&lt;h2&gt;The four types of software&lt;/h2&gt;
&lt;p&gt;The forces of nature above will result in four types of software: Commercial, Boutique, Personal, and Disposable.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.davidhoang.com/images/blog/2023-07-16-the-four-types-of-software.webp&quot; alt=&quot;Four quadrants showing different types of software: Commercial, Boutique, Personal, and Disposable&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Commercial&lt;/h3&gt;
&lt;p&gt;This category is the majority of what we know today. It&apos;s enterprise software, CRMs, and administrative applications we interact with. It&apos;s purchased through a subscription or the elusive one-time purchase with a license. Typically, commercial software is provided to you by your employer. Another sub-category is software created by entities for administrative reasons, such as government websites. The category of this software might feel basic—enough to get a job done.&lt;/p&gt;
&lt;p&gt;I don&apos;t need amazing parallax scrolling and animations when trying to renew my driver&apos;s license. I just need to get it done. It just needs to work. This is the same with data entry in a CRM or other tasks most people need to get done at work—a humbling reminder that the majority of humanity doesn&apos;t use Figma in their day-to-day (we&apos;re a unique bunch).&lt;/p&gt;
&lt;h3&gt;Boutique&lt;/h3&gt;
&lt;p&gt;The Louis Vuitton of software is becoming more of a real thing. As software continues to get easier to build at scale, and with everyone being able to do it, the age-old question arises...what happens to the craft? In a world of 3D-printed sculptures, Gianlorenzo Bernini&apos;s work at The Vatican lives on. As time passes, there will be Bernini&apos;s of software—having a devotion to the craft with incredible attention to detail on experiences. Be not afraid of commercial software getting rid of the craft of indie apps and high-end software. I believe in this future world, people will continue to pay for high-quality software and support the people who create it.&lt;/p&gt;
&lt;h3&gt;Personal&lt;/h3&gt;
&lt;p&gt;In the instance where Commercial or Boutique software might not meet your needs, you might make your own. &lt;a href=&quot;https://andrewjdavison.com/&quot;&gt;Andrew Davison&lt;/a&gt; is an automation expert and certified Zapier partner. In June, Davison posted a tweet about how he built a &lt;a href=&quot;https://x.com/AndrewJDavison/status/1664982442690609154&quot;&gt;RSS app with Replit&lt;/a&gt;. This is a prime example of personal software. It’s DIY like the hand-knitted sweater; a product achieved through your needs, passion, and own materials.&lt;/p&gt;
&lt;h3&gt;Disposable&lt;/h3&gt;
&lt;p&gt;The concept of a disposable object is interesting and can be a great design (if done right). There are disposable cameras, contact lenses, and many others. In fact, the sourdough clam chowder bowl and tostada shell are two of the best examples of great disposable design. What about software that destroys itself when a certain job is done? I see a future where people (or AI) create certain types of software for a specific purpose and dispose of them afterward.&lt;/p&gt;
&lt;h2&gt;Software is the new material&lt;/h2&gt;
&lt;p&gt;The world is now eating up software evolving to be known as an everyday thing we interact with. I&apos;m personally excited about this future. It offers more choice and optionality in what people want. If you want to use a web browser, you can use a major player like Google Chrome, or a more boutique experience such as &lt;a href=&quot;https://thebrowser.company/&quot;&gt;Arc from The Browser Company&lt;/a&gt;, perhaps making your own to fully customize. The &lt;a href=&quot;https://skins.webamp.org/&quot;&gt;Winampification of software&lt;/a&gt; seems to be making a comeback, and that&apos;s a good thing. I for one am excited about more personal software to make your own; a world where you can create what you consume and interact with.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://www.proofofconcept.pub/p/the-four-types-of-software-in-the&quot;&gt;Proof of Concept&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>writing</category><category>software</category><category>technology</category></item></channel></rss>