<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="https://kfcampbell.com/feed.xml" rel="self" type="application/atom+xml"/><link href="https://kfcampbell.com/" rel="alternate" type="text/html" hreflang="en"/><updated>2026-04-22T02:08:47+00:00</updated><id>https://kfcampbell.com/feed.xml</id><title type="html">kfcampbell</title><subtitle>This is the personal site of Keegan Campbell. </subtitle><entry><title type="html">ismtsiout.com</title><link href="https://kfcampbell.com/blog/2026/ismtsiout/" rel="alternate" type="text/html" title="ismtsiout.com"/><published>2026-04-21T00:00:00+00:00</published><updated>2026-04-21T00:00:00+00:00</updated><id>https://kfcampbell.com/blog/2026/ismtsiout</id><content type="html" xml:base="https://kfcampbell.com/blog/2026/ismtsiout/"><![CDATA[<p>I recently put together <a href="https://www.ismtsiout.com">ismtsiout.com</a>, a small site inspired by <a href="https://ismtrainierout.com">ismtrainierout.com</a>. It scrapes a webcam (provided by <a href="https://www.northbendweather.com/">northbendweather.com</a>, which is an awesome site) that answers one very specific question: is Mt. Si visible?</p> <p>Stack information: an Azure Function written in Go scrapes <a href="https://www.northbendweather.com/">northbendweather.com</a> on the hour during most daylight hours, then hands the image to a cheap Azure OpenAI vision model (at the time of writing, <code class="language-plaintext highlighter-rouge">gpt-4.1-mini</code>) to decide whether the mountain’s silhouette is visible. The Function pulls current conditions from the US National Weather Service (no API key necessary), and writes both the photo and the status in a small JSON file to Azure Blob Storage. A vanilla HTML/CSS/JS frontend using Azure Static Web Apps reads <code class="language-plaintext highlighter-rouge">status.json</code> and renders the latest image with a bit of clever CSS for the weather-dependent background.</p> <p><a href="https://www.ismtsiout.com">Live, as of right now</a> (scroll within the frame, or click the link to open the full site):</p> <iframe src="https://www.ismtsiout.com" title="ismtsiout.com" loading="lazy" style="width: 100%; height: 80vh; border: 1px solid #ccc; border-radius: 4px;"></iframe>]]></content><author><name></name></author><category term="projects"/><category term="programming"/><summary type="html"><![CDATA[Shows whether Mt. Si is visible in a responsive interface.]]></summary></entry><entry><title type="html">Software Entrepreneurship Final Pitch</title><link href="https://kfcampbell.com/blog/2025/software-entrepreneurship-final-pitch/" rel="alternate" type="text/html" title="Software Entrepreneurship Final Pitch"/><published>2025-03-13T00:00:00+00:00</published><updated>2025-03-13T00:00:00+00:00</updated><id>https://kfcampbell.com/blog/2025/software-entrepreneurship-final-pitch</id><content type="html" xml:base="https://kfcampbell.com/blog/2025/software-entrepreneurship-final-pitch/"><![CDATA[<p>I recently completed <a href="https://en.wikipedia.org/wiki/Ed_Lazowska">Ed Lazowska</a> and <a href="https://www.linkedin.com/in/greggottesman/">Greg Gottesman’s</a> Software Entrepreneurship course at the University of Washington. The course was practical, with students forming groups and pitching to venture capitalists each week. We built a “startup” along the way: not just the product, but marketing, press releases, business plans, etc. My team was “Stimma”, an consumer-focused AI to help users negotiate bills with notoriously difficult customer service providers, such as ISPs. Right now, our landing page is at <a href="https://www.stimma.us/">stimma.us</a>.</p> <p>You can read about the pitches and the class on <a href="https://www.geekwire.com/2025/college-students-get-a-taste-of-startup-life-inside-dynamic-uw-entrepreneurship-class/">Geekwire here</a>.</p> <p>Our final pitch was at Pioneer Square Labs. At the time of writing, the recording of my team’s pitch is hosted on <a href="https://drive.google.com/file/d/1enXfwV_VkcufMqz7lpvRyY4fmF-xYPU9/view">Google Drive here</a> (I’m on the far right in the GitHub hoodie).</p> <div class="embed-container"> <iframe src="https://drive.google.com/file/d/1enXfwV_VkcufMqz7lpvRyY4fmF-xYPU9/preview" width="700" height="480" frameborder="0" allowfullscreen="" loading="lazy"> </iframe> </div> <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container iframe,.embed-container object,.embed-container embed{position:absolute;top:0;left:0;width:100%;height:100%}</style>]]></content><author><name></name></author><category term="speaking"/><category term="programming"/><category term="entrepreneurship"/><category term="startups"/><category term="business"/><summary type="html"><![CDATA[My group's final pitch for the University of Washington's Software Entrepreneurship course.]]></summary></entry><entry><title type="html">Open Source Friday Recording</title><link href="https://kfcampbell.com/blog/2024/open-source-friday-recording/" rel="alternate" type="text/html" title="Open Source Friday Recording"/><published>2024-04-19T00:00:00+00:00</published><updated>2024-04-19T00:00:00+00:00</updated><id>https://kfcampbell.com/blog/2024/open-source-friday-recording</id><content type="html" xml:base="https://kfcampbell.com/blog/2024/open-source-friday-recording/"><![CDATA[<p>On April 19th, <a href="https://github.com/ladykerr">Kedasha Kerr</a> interviewed <a href="https://github.com/nickfloyd">Nick Floyd</a> and I for GitHub’s Open Source Fridays program. It was simulcast (which is a weird word) on GitHub’s Twitch, YouTube, and LinkedIn streams.</p> <p>If you’d like to watch the recording, you can do so <a href="https://www.twitch.tv/videos/2124016379">on Twitch</a> or <a href="https://www.youtube.com/watch?v=qP4h7GP5kfM">YouTube</a> or via the embedded video below.</p> <div class="embed-container"> <iframe src="https://www.youtube.com/embed/qP4h7GP5kfM" width="700" height="480" frameborder="0" allowfullscreen="" loading="lazy"> </iframe> </div> <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container iframe,.embed-container object,.embed-container embed{position:absolute;top:0;left:0;width:100%;height:100%}</style>]]></content><author><name></name></author><category term="speaking"/><category term="opensource"/><category term="programming"/><summary type="html"><![CDATA[Video of an interview I did with my teammate Nick Floyd on GitHub's Open Source Friday program.]]></summary></entry><entry><title type="html">Open Source 101 Talk Recording</title><link href="https://kfcampbell.com/blog/2023/open-source-101-talk-recording/" rel="alternate" type="text/html" title="Open Source 101 Talk Recording"/><published>2023-04-11T00:00:00+00:00</published><updated>2023-04-11T00:00:00+00:00</updated><id>https://kfcampbell.com/blog/2023/open-source-101-talk-recording</id><content type="html" xml:base="https://kfcampbell.com/blog/2023/open-source-101-talk-recording/"><![CDATA[<p>On March 23rd, I did a <a href="https://opensource101.com/sessions/zero-to-open-source-contributor/">talk/workshop</a> during an extended session at <a href="https://opensource101.com/">Open Source 101</a>.</p> <p>If you’d like to watch the recording, you can do so <a href="https://www.youtube.com/watch?v=hFsWNKsWd68">on YouTube</a> or via the embedded video below. If you’d like to view the annotated slides, you can do so <a href="https://www.slideshare.net/AllThingsOpen/zero-to-open-source-contributor">here</a>.</p> <div class="embed-container"> <iframe src="https://www.youtube.com/embed/hFsWNKsWd68" width="700" height="480" frameborder="0" allowfullscreen="" loading="lazy"> </iframe> </div> <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container iframe,.embed-container object,.embed-container embed{position:absolute;top:0;left:0;width:100%;height:100%}</style>]]></content><author><name></name></author><category term="speaking"/><category term="opensource"/><category term="programming"/><summary type="html"><![CDATA[Video of a talk/workshop I did during Open Source 101 in March 2023.]]></summary></entry></feed>