<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dave Andrea&apos;s Blog</title><description>Engineering notes on web development, DevOps, and pedagogy</description><link>https://daveandrea.com/</link><item><title>Clean Architecture on the Frontend: Beyond Smart and Dumb Components</title><link>https://daveandrea.com/blog/clean-frontend-react</link><guid isPermaLink="true">https://daveandrea.com/blog/clean-frontend-react</guid><description>A practical look at separating business meaning from UI mechanics in React, using a real invoice app refactor as the example</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How I Planned My Full-Stack Invoice App (and What I&apos;d Do Differently)</title><link>https://daveandrea.com/blog/how-i-planned-my-full-stack-invoice-app</link><guid isPermaLink="true">https://daveandrea.com/blog/how-i-planned-my-full-stack-invoice-app</guid><description>A reflective look at how a Frontend Mentor UI challenge grew into a full-stack GraphQL/PostgreSQL app, the trade-offs I made, and what I&apos;d change next time.</description><pubDate>Mon, 27 Oct 2025 00:00:00 GMT</pubDate><summary>What began as a Frontend Mentor challenge became a deep dive into full-stack architecture. This post unpacks my design decisions, lessons learned, and why overengineering can be a powerful way to learn simplicity.</summary></item><item><title>How Machines Learn</title><link>https://daveandrea.com/blog/how-machines-learn</link><guid isPermaLink="true">https://daveandrea.com/blog/how-machines-learn</guid><description>Demystifying AI training: learn how machine learning works through the simple process of guess, check, adjust - no mysticism required.</description><pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate><summary>A grounded explanation of how AI systems learn—and why it&apos;s often misunderstood.</summary></item><item><title>Why is Java so dumb?</title><link>https://daveandrea.com/blog/whyisjavasodumb</link><guid isPermaLink="true">https://daveandrea.com/blog/whyisjavasodumb</guid><description>A playful tour through Java’s quirks that explains why the language can feel overcomplicated.</description><pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate><summary>Java’s data types, wrapper classes, and concurrency helpers look excessive until you see the trade-offs they unlock.</summary></item><item><title>Why is Java so dumb? (Part 2)</title><link>https://daveandrea.com/blog/whyisjavasodumbpart2</link><guid isPermaLink="true">https://daveandrea.com/blog/whyisjavasodumbpart2</guid><description>Java’s boilerplate exists for a reason—here’s why the main method and rigid file structure actually help.</description><pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate><summary>A playful look at Java’s entry point, file conventions, and curly-brace culture, and why the verbosity pays off in large systems.</summary></item><item><title>Why JavaScript is so hard for beginners</title><link>https://daveandrea.com/blog/whyjavascriptissohardforbeginners</link><guid isPermaLink="true">https://daveandrea.com/blog/whyjavascriptissohardforbeginners</guid><description>Three reasons JavaScript overwhelms newcomers and why that struggle is normal.</description><pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate><summary>Legacy syntax, paradigm overload, and a forgiving runtime make JavaScript tough on newcomers, but understanding those quirks helps.</summary></item><item><title>AI and Tacit Knowledge</title><link>https://daveandrea.com/blog/ai-and-tacit-knowledge</link><guid isPermaLink="true">https://daveandrea.com/blog/ai-and-tacit-knowledge</guid><description>How ML aligns with tacit, skill-like learning rather than conscious understanding.</description><pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate><summary>Reflecting on why machine learning feels more like tacit, embodied expertise than conscious reasoning—and what that means for AI hype.</summary></item><item><title>Welcome to my blog</title><link>https://daveandrea.com/blog/welcome</link><guid isPermaLink="true">https://daveandrea.com/blog/welcome</guid><description>Kicking off a new space for engineering notes and web performance tips.</description><pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate><summary>Kickstarting this blog with a few thoughts on what will land here and why it exists.</summary></item><item><title>How coding is like playing sports</title><link>https://daveandrea.com/blog/how-coding-is-like-playing-sports</link><guid isPermaLink="true">https://daveandrea.com/blog/how-coding-is-like-playing-sports</guid><description>An analogy comparing learning to code with practicing a sport as a bundle of skills.</description><pubDate>Sun, 15 Sep 2024 00:00:00 GMT</pubDate><summary>Why treating programming as a bundle of practiced skills—rather than pure theory—helps developers escape plateaus.</summary></item><item><title>Docker Compose: Production Patterns and Best Practices</title><link>https://daveandrea.com/blog/docker-compose-part-4</link><guid isPermaLink="true">https://daveandrea.com/blog/docker-compose-part-4</guid><description>Learn production-ready Docker Compose patterns including environment management, custom images, and multi-service architectures</description><pubDate>Mon, 05 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Docker Compose: Building a Real Application</title><link>https://daveandrea.com/blog/docker-compose-part-3</link><guid isPermaLink="true">https://daveandrea.com/blog/docker-compose-part-3</guid><description>Create a Node.js application that connects to PostgreSQL and understand how Docker Compose services communicate</description><pubDate>Mon, 29 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Docker Compose: Your First Application in 10 Minutes</title><link>https://daveandrea.com/blog/docker-compose-part-2</link><guid isPermaLink="true">https://daveandrea.com/blog/docker-compose-part-2</guid><description>Install Docker Desktop and run a complete web application with database using Docker Compose</description><pubDate>Mon, 22 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Docker Compose: Running Applications Without the Hassle</title><link>https://daveandrea.com/blog/docker-compose-part-1</link><guid isPermaLink="true">https://daveandrea.com/blog/docker-compose-part-1</guid><description>Learn how Docker Compose solves the &apos;it works on my machine&apos; problem by letting you run entire applications with one command</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate></item></channel></rss>