<?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"><channel><title><![CDATA[Thomas Doan - Inklings]]></title><description><![CDATA[Thomas Doan is a senior full-stack engineer focused on building reliable, user-centered digital products.]]></description><link>https://www.tms-doan.com</link><generator>GatsbyJS</generator><lastBuildDate>Tue, 08 Sep 2026 15:04:13 GMT</lastBuildDate><item><title><![CDATA[The Review Layer Is the Bottleneck in Agentic Coding]]></title><description><![CDATA[I trust AI to write more code now. The harder question is how to build a review system that earns the right to ship it.]]></description><link>https://www.tms-doan.com/blog/review-is-the-bottleneck-in-agentic-coding</link><guid isPermaLink="false">https://www.tms-doan.com/blog/review-is-the-bottleneck-in-agentic-coding</guid><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[The CTO Who Left to Stay Ready]]></title><description><![CDATA[A conversation about AI-native change, a six-million-line pull request, and how I am trying to stay useful]]></description><link>https://www.tms-doan.com/blog/the-cto-who-left-to-stay-ready</link><guid isPermaLink="false">https://www.tms-doan.com/blog/the-cto-who-left-to-stay-ready</guid><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Building My Own Agent Sandbox]]></title><description><![CDATA[How I am building a persistent sandbox environment for AI coding agents, with a human escalation path when they get stuck]]></description><link>https://www.tms-doan.com/blog/building-my-own-agent-sandbox</link><guid isPermaLink="false">https://www.tms-doan.com/blog/building-my-own-agent-sandbox</guid><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Agents Can Write Code. You Still Own The System.]]></title><description><![CDATA[A story about AI coding agents, product direction, and why the human still needs to lead]]></description><link>https://www.tms-doan.com/blog/agents-can-write-code-you-still-own-the-system</link><guid isPermaLink="false">https://www.tms-doan.com/blog/agents-can-write-code-you-still-own-the-system</guid><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[GEO/AEO Is Not A Metadata Trick]]></title><description><![CDATA[How to improve GEO and AEO visibility with clear content, credible citations, technical foundations, and proof that answer engines can trust.]]></description><link>https://www.tms-doan.com/blog/geo-aeo-is-not-a-metadata-trick</link><guid isPermaLink="false">https://www.tms-doan.com/blog/geo-aeo-is-not-a-metadata-trick</guid><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Money Does Not Buy Happiness, But It Buys Freedom]]></title><description><![CDATA[A small conversation made me think harder about what money really gives us]]></description><link>https://www.tms-doan.com/blog/money-doesnt-buy-happiness-freedom-does</link><guid isPermaLink="false">https://www.tms-doan.com/blog/money-doesnt-buy-happiness-freedom-does</guid><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[When Agentic Coding Meets Startup Reality]]></title><description><![CDATA[A founder story that showed me what AI can accelerate and what it cannot replace]]></description><link>https://www.tms-doan.com/blog/agentic-coding-meets-startup-reality</link><guid isPermaLink="false">https://www.tms-doan.com/blog/agentic-coding-meets-startup-reality</guid><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[TDD In The Age Of AI Agents]]></title><description><![CDATA[Why tests matter even more when code is generated faster than ever]]></description><link>https://www.tms-doan.com/blog/tdd-in-the-age-of-ai-agents</link><guid isPermaLink="false">https://www.tms-doan.com/blog/tdd-in-the-age-of-ai-agents</guid><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[SaaS Is Not Dead. But the Easy Version Might Be.]]></title><description><![CDATA[AI is changing software, but it is not killing production-grade SaaS]]></description><link>https://www.tms-doan.com/blog/saas-is-not-dead</link><guid isPermaLink="false">https://www.tms-doan.com/blog/saas-is-not-dead</guid><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[WATERFALL -> AGILE -> AGENTIC]]></title><description><![CDATA[What I learned running multi-agent coding workflows at Crossfill]]></description><link>https://www.tms-doan.com/blog/waterfall-agile-agentic</link><guid isPermaLink="false">https://www.tms-doan.com/blog/waterfall-agile-agentic</guid><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[How I Taught Vibe Coding To Non-Technical Designers]]></title><description><![CDATA[What worked when I taught vibe coding at Crossfill]]></description><link>https://www.tms-doan.com/blog/teaching-vibe-coding-to-designers</link><guid isPermaLink="false">https://www.tms-doan.com/blog/teaching-vibe-coding-to-designers</guid><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[My First Hiring Experience - Learning That Hiring Is Human]]></title><description><![CDATA[I got asked to do something I had never done]]></description><link>https://www.tms-doan.com/blog/hiring-is-human</link><guid isPermaLink="false">https://www.tms-doan.com/blog/hiring-is-human</guid><pubDate>Wed, 30 Apr 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[What "Customer-Facing" Really Means To Me]]></title><description><![CDATA[A lot of people think "custoner-facing" just]]></description><link>https://www.tms-doan.com/blog/into-their-world</link><guid isPermaLink="false">https://www.tms-doan.com/blog/into-their-world</guid><pubDate>Mon, 17 Mar 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[Thomas And The Startup Culture]]></title><description><![CDATA[I worked for 3 startups, as a full-time employee]]></description><link>https://www.tms-doan.com/blog/thomas-and-startup-culture</link><guid isPermaLink="false">https://www.tms-doan.com/blog/thomas-and-startup-culture</guid><pubDate>Wed, 30 Nov 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[A Journey into Mental Healthcare Innovation]]></title><description><![CDATA[In August 2022, I embarked on a new adventure]]></description><link>https://www.tms-doan.com/blog/thomas-and-therify</link><guid isPermaLink="false">https://www.tms-doan.com/blog/thomas-and-therify</guid><pubDate>Fri, 11 Mar 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[Accessible Clickable Cards]]></title><description><![CDATA[Clickable cards with multiple child links]]></description><link>https://www.tms-doan.com/blog/clickable-cards</link><guid isPermaLink="false">https://www.tms-doan.com/blog/clickable-cards</guid><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Dark Mode Toggle]]></title><description><![CDATA[Dark mode without the flash of default theme]]></description><link>https://www.tms-doan.com/blog/dark-mode-toggle</link><guid isPermaLink="false">https://www.tms-doan.com/blog/dark-mode-toggle</guid><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Writing Is Hard]]></title><description><![CDATA[I have the hardest time with creative writing]]></description><link>https://www.tms-doan.com/blog/writing-is-hard</link><guid isPermaLink="false">https://www.tms-doan.com/blog/writing-is-hard</guid><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[SOLID Principles Checklist (in Python)]]></title><description><![CDATA[With so many soliloquies of SOLID Principles online]]></description><link>https://www.tms-doan.com/blog/solid-principles-checklist</link><guid isPermaLink="false">https://www.tms-doan.com/blog/solid-principles-checklist</guid><pubDate>Sun, 20 Sep 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Documenting Database Design]]></title><description><![CDATA[Documenting database design just seems to be one of]]></description><link>https://www.tms-doan.com/blog/documentating-database-design</link><guid isPermaLink="false">https://www.tms-doan.com/blog/documentating-database-design</guid><pubDate>Thu, 30 Jul 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[BEM and SASS in ReactJS Applications]]></title><description><![CDATA[Unless you are using Styled-components for]]></description><link>https://www.tms-doan.com/blog/bem-sass-react</link><guid isPermaLink="false">https://www.tms-doan.com/blog/bem-sass-react</guid><pubDate>Tue, 19 May 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Developer's Dilemma - Folder Structure and Component Naming]]></title><description><![CDATA[I bet, for many developers or for me at least, there’s]]></description><link>https://www.tms-doan.com/blog/folder-structure-n-component-naming</link><guid isPermaLink="false">https://www.tms-doan.com/blog/folder-structure-n-component-naming</guid><pubDate>Thu, 14 May 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[React Native - Native or Hybrid?]]></title><description><![CDATA[React Native is dominating the mobile app development]]></description><link>https://www.tms-doan.com/blog/react-native-not-hybrid</link><guid isPermaLink="false">https://www.tms-doan.com/blog/react-native-not-hybrid</guid><pubDate>Sun, 12 Apr 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Challenge & Solution (Highcharts)]]></title><description><![CDATA[While working at Sigsense Technologies, I was]]></description><link>https://www.tms-doan.com/blog/challenge-and-solution</link><guid isPermaLink="false">https://www.tms-doan.com/blog/challenge-and-solution</guid><pubDate>Thu, 09 Apr 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Docker Compose Error]]></title><description><![CDATA[docker-compose version discrepancies]]></description><link>https://www.tms-doan.com/blog/docker-error</link><guid isPermaLink="false">https://www.tms-doan.com/blog/docker-error</guid><pubDate>Fri, 13 Dec 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[WordPress Publishing Error]]></title><description><![CDATA[Trying to create a simple post in WordPress]]></description><link>https://www.tms-doan.com/blog/wordpress-publish-error</link><guid isPermaLink="false">https://www.tms-doan.com/blog/wordpress-publish-error</guid><pubDate>Tue, 03 Dec 2019 00:00:00 GMT</pubDate></item></channel></rss>