<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><url><loc>https://liampeters.co.uk/tags/android/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/development/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/haptics/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/hello-android-my-old-friend/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/hello-android-my-old-friend/img/hero_hu_e1e2d398ac8db55e.png</image:loc><image:title>Hello Android, My Old Friend</image:title><image:caption>Creating a Quick Settings tile to easily toggle haptics on Android, solving a noisy nighttime problem.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/tags/kotlin/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/mobile/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/pixel/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/psscriptanalyzer/part-2-a-new-rule/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/psscriptanalyzer/part-2-a-new-rule/img/hero_hu_36d89d33da74633b.png</image:loc><image:title>Creating a New PSSA Rule</image:title><image:caption>Going from Problem to solution; we walk through creating a new rule to warn when reserved words are used as function names.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/tags/new-rule/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/powershell/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/psscriptanalyzer/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/vscode/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/pester/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/psscriptanalyzer/part-1-getting-started/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/psscriptanalyzer/part-1-getting-started/img/hero_hu_aa5415519db4cfe8.png</image:loc><image:title>Setup for PSScriptAnalyzer Development</image:title><image:caption>Go through setting up a development environment for contributing to PSScriptAnalyzer and how to build and debug the code.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/tags/ast/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/extension/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/powershell-ast-inspector/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/powershell-ast-inspector/img/hero_hu_22d20b47a2305c99.png</image:loc><image:title>PowerShell AST Inspector: A VSCode Extension</image:title><image:caption>I wrote a VSCode extension for visualizing PowerShell Abstract Syntax Trees and their properties.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/tags/conference/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/psconfeu/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/psconfeu25/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/psconfeu25/hero_hu_1360db7048f66055.png</image:loc><image:title>PSConfEU 2025 Roundup</image:title><image:caption>It's that time of year again, PSConfEU (in Malmö Sweden this year) has wrapped up and the session recordings have been released. I've watched a fair few of them and there's lots of good stuff. I've put together 10 that stood out to me.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/tags/roundup/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/automation/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/best-practices/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/calculated-properties/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/powershell-priority-sorting/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/powershell-priority-sorting/hero_hu_217c234609ed766f.png</image:loc><image:title>PowerShell Priority Sorting: A Multi-Key Approach</image:title><image:caption>Explore PowerShell's calculated properties feature to create custom sorting logic with Sort-Object. This approach lets you combine multiple sorting criteria and control priority ordering beyond simple alphabetical or numerical sorting.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/tags/scripting/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/sort-object/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/sorting/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/module-development/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/textutils/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/tags/tutorial/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.4</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/posts/powershell-modules-a-practical-guide/part1/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq><image:image><image:loc>https://liampeters.co.uk/posts/powershell-modules-a-practical-guide/part1/hero_hu_680b2b25338864fe.jpg</image:loc><image:title>Your First PowerShell Function: The Essential Building Block</image:title><image:caption>The journey to building robust, shareable PowerShell modules begins with a fundamental concept: the PowerShell function. Functions are the heart of any well-structured script, allowing you to encapsulate reusable logic.</image:caption></image:image></url><url><loc>https://liampeters.co.uk/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>1</priority><changefreq>weekly</changefreq></url><url><loc>https://liampeters.co.uk/about/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.7</priority><changefreq>yearly</changefreq></url><url><loc>https://liampeters.co.uk/posts/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.8</priority><changefreq>monthly</changefreq></url><url><loc>https://liampeters.co.uk/series/powershell-modules/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.6</priority><changefreq>monthly</changefreq></url><url><loc>https://liampeters.co.uk/series/powershell-script-analyzer/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.6</priority><changefreq>monthly</changefreq></url><url><loc>https://liampeters.co.uk/series/</loc><lastmod>2026-03-30T11:17:04+01:00</lastmod><priority>0.6</priority><changefreq>monthly</changefreq></url></urlset>