<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mike Lopez</title><link>https://mikelopez.com</link><description>WordPress, PHP, Product Development, and Remote Engineering leadership</description><item><title>My AI-Assisted Blogging Workflow: From Idea to GitHub Issue to Pull Request</title><link>https://mikelopez.com/blog/1713/</link><guid>https://mikelopez.com/blog/1713/</guid><pubDate>Thu, 08 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[My AI blogging workflow turns an approved idea into a GitHub issue, a tested draft pull request, human review, and a separately scheduled publication.]]></description></item><item><title>Project Documentation: Keep Decisions From Disappearing</title><link>https://mikelopez.com/blog/1744/</link><guid>https://mikelopez.com/blog/1744/</guid><pubDate>Wed, 07 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[Build project documentation that keeps requirements and decisions easy to find. Use a small project index, clear ownership, and timely updates to prevent knowledge from disappearing into chat.]]></description></item><item><title>How to Test a WordPress Plugin Across PHP Versions With Lando</title><link>https://mikelopez.com/blog/1726/</link><guid>https://mikelopez.com/blog/1726/</guid><pubDate>Tue, 06 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[Test a WordPress plugin across PHP versions with Lando using repeatable rebuilds, activation checks, WP-CLI smoke tests, data-safe resets, and CI.]]></description></item><item><title>Code Reviews Across Time Zones: Stop the Overnight Wait</title><link>https://mikelopez.com/blog/1741/</link><guid>https://mikelopez.com/blog/1741/</guid><pubDate>Mon, 05 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[Improve code reviews across time zones with clear handoffs, test evidence, reviewer coverage, and escalation rules. Reduce overnight delays without expecting developers to stay online.]]></description></item><item><title>How to Build a Paginated PHP REST API With PDO</title><link>https://mikelopez.com/blog/1725/</link><guid>https://mikelopez.com/blog/1725/</guid><pubDate>Sat, 03 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[Build a paginated PHP REST API with PDO, validated inputs, stable ordering, useful metadata and links, consistent errors, and secure defaults.]]></description></item><item><title>How to Get Developers to Raise Blockers Early</title><link>https://mikelopez.com/blog/1746/</link><guid>https://mikelopez.com/blog/1746/</guid><pubDate>Fri, 02 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[Help developers raise blockers early with clear triggers, useful requests, and reliable responses. Build accountability and trust while resolving the workflow problems behind repeated delays.]]></description></item><item><title>How to Fix WP_Query Pagination in a Custom WordPress Loop</title><link>https://mikelopez.com/blog/1724/</link><guid>https://mikelopez.com/blog/1724/</guid><pubDate>Thu, 01 Oct 2026 01:00:00 +0000</pubDate><description><![CDATA[Fix WP_Query pagination in a custom WordPress loop with the correct paged value, paginate_links configuration, accessible markup, and query reset.]]></description></item><item><title>Sprint Capacity Planning: Account for the Hidden Work</title><link>https://mikelopez.com/blog/1740/</link><guid>https://mikelopez.com/blog/1740/</guid><pubDate>Wed, 30 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Improve sprint capacity planning by accounting for reviews, support, mentoring, and release work. Find hidden demand and plan around the responsibilities your team actually carries.]]></description></item><item><title>How to Build Secure Dynamic Filters in PHP and MySQL With PDO</title><link>https://mikelopez.com/blog/1723/</link><guid>https://mikelopez.com/blog/1723/</guid><pubDate>Tue, 29 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Build secure dynamic filters in PHP and MySQL with PDO using bound values, allowlisted identifiers, reusable predicates, stable sorting, and safe pagination.]]></description></item><item><title>Urgent Requests During a Sprint: Make the Tradeoff Explicit</title><link>https://mikelopez.com/blog/1739/</link><guid>https://mikelopez.com/blog/1739/</guid><pubDate>Mon, 28 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Handle urgent requests during a sprint with explicit scope and deadline tradeoffs. Use a simple change record to protect delivery commitments and make priority decisions visible.]]></description></item><item><title>What a Legacy PHP Code Audit Should Deliver</title><link>https://mikelopez.com/blog/1722/</link><guid>https://mikelopez.com/blog/1722/</guid><pubDate>Sat, 26 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[A legacy PHP code audit should deliver evidence, prioritized risks, reproducible findings, and a modernization roadmap tied to business outcomes.]]></description></item><item><title>Async Decision-Making for Remote Development Teams</title><link>https://mikelopez.com/blog/1743/</link><guid>https://mikelopez.com/blog/1743/</guid><pubDate>Fri, 25 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Make async decision-making work for remote development teams with clear owners, proposals, response windows, and final records. Resolve decisions without endless comment threads.]]></description></item><item><title>Why I Switched mikelopez.com From WordPress to a Static Site</title><link>https://mikelopez.com/blog/1712/</link><guid>https://mikelopez.com/blog/1712/</guid><pubDate>Thu, 24 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[My WordPress to static site move gave mikelopez.com a $0 hosting bill, simpler maintenance, a smaller attack surface, and fast Cloudflare Pages delivery, with AI remaining optional.]]></description></item><item><title>Software Delivery Estimates: Plan Beyond Coding Time</title><link>https://mikelopez.com/blog/1738/</link><guid>https://mikelopez.com/blog/1738/</guid><pubDate>Wed, 23 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Build software delivery estimates that include reviews, testing, dependencies, and release work. Use a practical worksheet to separate effort, waiting, assumptions, and forecast changes.]]></description></item><item><title>Legacy PHP Modernization: Refactor, Replatform, or Rewrite?</title><link>https://mikelopez.com/blog/1721/</link><guid>https://mikelopez.com/blog/1721/</guid><pubDate>Tue, 22 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Choose a legacy PHP modernization strategy with a practical decision matrix for incremental refactoring, replatforming, and full rewrites.]]></description></item><item><title>How to Spot a Slipping Software Deadline Early</title><link>https://mikelopez.com/blog/1737/</link><guid>https://mikelopez.com/blog/1737/</guid><pubDate>Mon, 21 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Spot a slipping software deadline through aging work, missed evidence, and unresolved dependencies. Use a practical risk review to make scope and date decisions while options remain.]]></description></item><item><title>How to Upgrade Legacy PHP With Rector One Version at a Time</title><link>https://mikelopez.com/blog/1720/</link><guid>https://mikelopez.com/blog/1720/</guid><pubDate>Sat, 19 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Upgrade legacy PHP with Rector in controlled version steps, using dry runs, tests, static analysis, small commits, and a clear rollback path.]]></description></item><item><title>Remote Team Status Meetings: Cut Updates, Keep Connection</title><link>https://mikelopez.com/blog/1742/</link><guid>https://mikelopez.com/blog/1742/</guid><pubDate>Fri, 18 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Redesign remote team status meetings around decisions, useful updates, and human connection. Test a lighter meeting rhythm that protects focus without leaving colleagues isolated.]]></description></item><item><title>How to Add PHPStan to a Legacy PHP Codebase</title><link>https://mikelopez.com/blog/1719/</link><guid>https://mikelopez.com/blog/1719/</guid><pubDate>Thu, 17 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Add PHPStan to a legacy PHP codebase without blocking delivery by choosing a useful starting level, creating a baseline, and reducing it in CI.]]></description></item><item><title>Track Remote Development Progress Without Micromanaging</title><link>https://mikelopez.com/blog/1736/</link><guid>https://mikelopez.com/blog/1736/</guid><pubDate>Wed, 16 Sep 2026 01:00:00 +0000</pubDate><description><![CDATA[Track remote development progress with accepted outcomes, visible blockers, and useful forecasts. Build a lightweight weekly report that helps managers act without monitoring every developer.]]></description></item></channel></rss>