<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://philjohnstonii.com/blog</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-06-29</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/the-best-software-i-use-has-one-user</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-06-29</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/a0a2d343-c217-48e5-a402-5419460c8632/Shotcast+Screen+Flow</image:loc>
      <image:title>Blog - The Best Software I Use Has One User - A couple of weeks ago I built the tool I had been wishing for. It took two days. It is called Shotcast, it is live, and anyone can use it: https://shotcast.phils.pics. It pulls the position and timing of the sun so I know when golden hour actually happens where I am standing, not in some generic city nearby. It pulls the weather data that matters for light, like how much cloud cover to expect. It shows me the few things I need to decide one thing: is it worth the drive. It has a button to switch between Celsius and Fahrenheit, because I wanted one and there was no product committee to argue with about it. The point of Shotcast is not that it is polished. The point is that it answers my question, the one no company was ever going to build for.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/i-built-a-throwaway-tool-to-cram-python-in-two-days-the-lesson-wasnt-about-python</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-05-01</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/insights-report</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-04-16</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/00317f6b-4534-42dc-982e-2c8725ce18d5/graph+of+my+sessions</image:loc>
      <image:title>Blog - /insights report - Make it stand out</image:title>
      <image:caption>Whatever it is, the way you tell your story online can make all the difference.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/stop-letting-your-ai-agents-be-generalists</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-04-16</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/fresh-eyes-how-i-got-past-my-agents-quality-ceiling</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-04-12</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/d4946f2d-22ed-472f-a1f6-034d5e25194f/IMG_8654.jpg</image:loc>
      <image:title>Blog - Fresh Eyes: How I Got Past My Agent's Quality Ceiling - The learning</image:title>
      <image:caption>The correct model requires two constraints, not one. Your operating frequency must be below the foF2 ceiling and above the D-layer absorption floor. The fresh agent proposed what it called a "sandwich representation," where both boundaries are shown together so the user can see when a band fits in the operating window between them. That was the educational insight the widget needed to deliver.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/my-agentic-coding-stack-how-i-ship-software-with-ai-agents</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/hb3sdhgq74qbq63nhp90s6h4gf5cpa</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-29</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/wc9s23btpmv673x8k9ihp15w2b668e</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-27</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/pua6p9xgs4r03fjb8570vkp17cabzm</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-25</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/building-gopros-developer-program-from-zero-to-330-partners</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-24</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/standards-are-the-new-moats</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-23</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/the-last-saas-youll-ever-subscribe-to</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-21</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/what-running-devrel-at-1password-taught-me-about-open-source-and-developer-trust</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/your-developer-tool-is-invisible-to-ai-thats-a-problem</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/iuqdpdkpo11dzgygsoz7j7cbiwq9zx</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/how-i-help-api-first-companies-build-developer-programs-that-actually-work</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/phil-johnston-linkedin-leaving-linkedin-and-choosing-independence</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/future-of-micro-niche-ai-tools</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/cc52426d-a66e-4dac-bca2-a322016547f1/L1005851.jpg</image:loc>
      <image:title>Blog - The Future of Micro-Niche AI Tools - Make it stand out</image:title>
      <image:caption>Sandcastles at Cannon Beach, Oregon</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/encouraging-developers-to-share-their-stories</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/3e07e404-71af-489f-83fe-f2baf59cfecd/Sandcastle+on+Canon+Beach%2C+Oregon</image:loc>
      <image:title>Blog - Encouraging Developers to Share Their Stories in Their Own Words - Make it stand out</image:title>
      <image:caption>Whatever it is, the way you tell your story online can make all the difference.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/blog/micro-niche-vibe-coding</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
    <lastmod>2026-03-20</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/1756576625629-VAXJQ0S0II8WD04II360/Haystack+Rock+-+Canon+Beach%2C+Oregon</image:loc>
      <image:title>Blog - Micro-niche vibe coding? - Make it stand out</image:title>
      <image:caption>Whatever it is, the way you tell your story online can make all the difference.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/c1e7fca5-0d5a-4ac3-a600-676e8bf5f9ba/k1l3gpjzhcsyj8uzkrkr.jpg</image:loc>
      <image:title>Blog - Micro-niche vibe coding? - Make it stand out</image:title>
      <image:caption>TUI Reader that helps me in my day job.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/home</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <lastmod>2026-04-08</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/resume</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-04-02</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/6bb24cd6-c2cb-4c89-9280-a18ee386f8f9/_DSF8218.jpeg</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/llms</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-03-19</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/consulting</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-04-02</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/6bb24cd6-c2cb-4c89-9280-a18ee386f8f9/_DSF8218.jpeg</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/apps</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-04-14</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/0fa460cb-468f-4c67-8d16-bdb18cf898c1/Skywave+App</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/skywave</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-04-14</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/0fa460cb-468f-4c67-8d16-bdb18cf898c1/SkyWave.png</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://philjohnstonii.com/terms-skywave</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/privacy-skywave</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://philjohnstonii.com/photography</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-05-17</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/1773959482120-S9VGVR8WU25WQDMWNMEJ/L1005808.jpeg</image:loc>
      <image:title>Photography</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/1770321528458-NF5MJKK36UIXFPNIOI0F/Wooden+City.jpeg</image:loc>
      <image:title>Photography</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/7c62e66f-7926-42ad-89f8-9333d8cae53a/L1005899-Edit.jpg</image:loc>
      <image:title>Photography</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/65a6c29a-ad49-4c3d-86d1-73af5b00807b/L1005876.jpg</image:loc>
      <image:title>Photography</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/cc52426d-a66e-4dac-bca2-a322016547f1/L1005851.jpg</image:loc>
      <image:title>Photography</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/4fd7d8c5-daaf-40f6-8575-e7b907e8fed2/L1005741.jpg</image:loc>
      <image:title>Photography</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/68ad12f770e01a38c01bf7a0/0c465825-1e09-444a-acac-76f3a17ee939/profile.jpg</image:loc>
    </image:image>
  </url>
</urlset>

