<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Moisis Hadjiagathangelou</title><description>I lead the engineering team at Digital Marmalade, work on Spartacus Insights, and build ParkMyAWS. Notes on software engineering, AWS, and building products.</description><link>https://www.moisis.dev/</link><item><title>Building a Queued PDF Export Pipeline in Laravel</title><link>https://www.moisis.dev/articles/building-a-queued-pdf-export-pipeline-in-laravel/</link><guid isPermaLink="true">https://www.moisis.dev/articles/building-a-queued-pdf-export-pipeline-in-laravel/</guid><description>How we coordinate graphics preparation, cached output and queued PDF generation in Spartacus Insights, and why exporting includes more than creating the file.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>What Years of Building Long PDF Reports Taught Me</title><link>https://www.moisis.dev/articles/what-years-of-building-long-pdf-reports-taught-me/</link><guid isPermaLink="true">https://www.moisis.dev/articles/what-years-of-building-long-pdf-reports-taught-me/</guid><description>What it takes to deliver long assessment reports with user content, charts, reliable navigation and PDF metadata, using Laravel and browser-based tools.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Spartacus Insights Now Has a Public Home</title><link>https://www.moisis.dev/articles/spartacus-insights-has-a-public-home/</link><guid isPermaLink="true">https://www.moisis.dev/articles/spartacus-insights-has-a-public-home/</guid><description>One of the SaaS products I&apos;ve been building at Digital Marmalade finally has a public website. It&apos;s been running for 5 years, and anyone can now see what it does.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate></item><item><title>ParkMyAWS Is Ready for Beta</title><link>https://www.moisis.dev/articles/parkmyaws-is-ready-for-beta/</link><guid isPermaLink="true">https://www.moisis.dev/articles/parkmyaws-is-ready-for-beta/</guid><description>The product is done: scheduling works, savings dashboard works, no credentials stored. Now comes the scary bit, putting it in front of real users.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item><item><title>Eight Weeks of Building ParkMyAWS in Public</title><link>https://www.moisis.dev/articles/eight-weeks-of-building-parkmyaws/</link><guid isPermaLink="true">https://www.moisis.dev/articles/eight-weeks-of-building-parkmyaws/</guid><description>Eight weeks ago I started posting about building ParkMyAWS. Now I&apos;m running the final tests before opening it up to the first beta users.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How Much of Your AWS Runs While Nobody Is Working?</title><link>https://www.moisis.dev/articles/how-much-aws-runs-while-nobody-is-working/</link><guid isPermaLink="true">https://www.moisis.dev/articles/how-much-aws-runs-while-nobody-is-working/</guid><description>Most teams use their dev and staging environments for 8 hours a day and pay for them to run 24. The math on always-on infrastructure, and why it&apos;s so hard to fix manually.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Hidden AWS Cost You&apos;re Probably Paying</title><link>https://www.moisis.dev/articles/the-hidden-aws-cost/</link><guid isPermaLink="true">https://www.moisis.dev/articles/the-hidden-aws-cost/</guid><description>AWS quietly bills you for things while you sleep: dev servers, staging environments, forgotten test databases. None of them feel expensive alone, but together they inflate the monthly bill.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Hardest Part of Building Alone</title><link>https://www.moisis.dev/articles/the-hardest-part-of-building-alone/</link><guid isPermaLink="true">https://www.moisis.dev/articles/the-hardest-part-of-building-alone/</guid><description>Why deciding what not to build is harder than writing code, and the filter that keeps me focused while working on ParkMyAWS.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Building a SaaS After Bedtime</title><link>https://www.moisis.dev/articles/building-a-saas-after-bedtime/</link><guid isPermaLink="true">https://www.moisis.dev/articles/building-a-saas-after-bedtime/</guid><description>What it&apos;s actually like building a SaaS product in 90-minute evening sessions: the progress, the unglamorous parts, and why the coding isn&apos;t the hardest thing.</description><pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Why I&apos;m Building ParkMyAWS</title><link>https://www.moisis.dev/articles/why-i-am-building-parkmyaws/</link><guid isPermaLink="true">https://www.moisis.dev/articles/why-i-am-building-parkmyaws/</guid><description>The origin story behind ParkMyAWS: a tool we used and lost after an acquisition, and the simpler version I&apos;m building in late-night sessions.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Migrating a Legacy Laravel App with AI: From PHP 7.4 to Laravel 12</title><link>https://www.moisis.dev/articles/migrating-a-legacy-laravel-app-with-ai/</link><guid isPermaLink="true">https://www.moisis.dev/articles/migrating-a-legacy-laravel-app-with-ai/</guid><description>How I used Claude Code to modernise a neglected marketing site: fixing N+1 queries, stripping dead code, and jumping from Laravel 9 to 12 in a single day.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Why I Replaced Excel with a Web App for Payroll</title><link>https://www.moisis.dev/articles/why-i-replaced-excel-with-a-web-app-for-payroll/</link><guid isPermaLink="true">https://www.moisis.dev/articles/why-i-replaced-excel-with-a-web-app-for-payroll/</guid><description>How I turned a complex Cyprus payroll spreadsheet into a type-safe Vue 3 calculator, and what I learned about building financial software.</description><pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate></item><item><title>My Side Project Stack in 2026</title><link>https://www.moisis.dev/articles/my-side-project-stack-in-2026/</link><guid isPermaLink="true">https://www.moisis.dev/articles/my-side-project-stack-in-2026/</guid><description>The tools and frameworks I&apos;m using across my projects in 2026, what&apos;s working, what I&apos;d change, and why I picked each one.</description><pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Secure AWS Integrations: The AssumeRole Pattern</title><link>https://www.moisis.dev/articles/secure-aws-integrations-the-assumerole-pattern/</link><guid isPermaLink="true">https://www.moisis.dev/articles/secure-aws-integrations-the-assumerole-pattern/</guid><description>How to build multi-account AWS access without ever storing credentials, using IAM AssumeRole with external IDs and temporary session tokens.</description><pubDate>Fri, 10 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Action Pattern in Laravel: Why I Stopped Using Fat Controllers</title><link>https://www.moisis.dev/articles/action-pattern-in-laravel/</link><guid isPermaLink="true">https://www.moisis.dev/articles/action-pattern-in-laravel/</guid><description>How extracting business logic into single-purpose Action classes made my Laravel code easier to navigate, test, and maintain.</description><pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Allowing GitHub Actions to SSH into Your Server</title><link>https://www.moisis.dev/articles/allow-github-actions-to-ssh-into-ec2/</link><guid isPermaLink="true">https://www.moisis.dev/articles/allow-github-actions-to-ssh-into-ec2/</guid><description>A technical guide on configuring AWS to allow GitHub Actions to SSH into your server.</description><pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate></item><item><title>Impostor Syndrome: Maybe I&apos;m Not Good Enough?</title><link>https://www.moisis.dev/articles/maybe-i-am-not-good-enough/</link><guid isPermaLink="true">https://www.moisis.dev/articles/maybe-i-am-not-good-enough/</guid><description>Sometimes I feel like I&apos;m falling behind. Here&apos;s my take on impostor syndrome as a senior developer, parent, and human.</description><pubDate>Sat, 10 May 2025 00:00:00 GMT</pubDate></item><item><title>Running Multiple PHP Versions on a Single EC2 Instance</title><link>https://www.moisis.dev/articles/running-multiple-php-versions-on-a-single-ec2-instance/</link><guid isPermaLink="true">https://www.moisis.dev/articles/running-multiple-php-versions-on-a-single-ec2-instance/</guid><description>How we manage different PHP versions from 5.6 to 8.4 on a single server using Docker and volume mapping</description><pubDate>Sat, 19 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Learning Astro by converting Next.js template.</title><link>https://www.moisis.dev/articles/learning-astro/</link><guid isPermaLink="true">https://www.moisis.dev/articles/learning-astro/</guid><description>I decided to convert the React-based template into an Astro site in order to get my hands on it.</description><pubDate>Mon, 24 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Finally launching my site</title><link>https://www.moisis.dev/articles/finally-launching-my-site/</link><guid isPermaLink="true">https://www.moisis.dev/articles/finally-launching-my-site/</guid><description>I hold this domain for some years now and it was about time to launch my site.</description><pubDate>Mon, 17 Feb 2025 00:00:00 GMT</pubDate></item></channel></rss>