<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Jim Zandueta</title><description>Posts about design, software architecture, AWS and AI tools, plus short field notes.</description><link>https://jimzandueta.dev</link><item><title>A Timezone Bug That Moved Dates Back a Day on Every Save</title><link>https://jimzandueta.dev/blog/a-timezone-bug-that-moved-dates-back-a-day</link><guid isPermaLink="true">https://jimzandueta.dev/blog/a-timezone-bug-that-moved-dates-back-a-day</guid><description>Stakeholders reported that saving a quote moved its date back by a day. The cause was a timezone mix-up I could never have seen from the Philippines, and the fix was one rule about how to store a date.</description><pubDate>Fri, 13 Nov 2026 00:00:00 GMT</pubDate></item><item><title>I Built a Website That Redesigns Itself Every Day</title><link>https://jimzandueta.dev/blog/i-built-a-website-that-redesigns-itself-every-day</link><guid isPermaLink="true">https://jimzandueta.dev/blog/i-built-a-website-that-redesigns-itself-every-day</guid><description>My site switches to a different design movement every day, twenty-eight of them. The hardest part was making each one look like itself and not like its neighbours.</description><pubDate>Fri, 13 Nov 2026 00:00:00 GMT</pubDate></item><item><title>I Was Paying an AI to Reread My Stack Traces, So I Built oowl</title><link>https://jimzandueta.dev/blog/i-realized-i-was-paying-an-ai-to-reread-my-stack-traces-and-what-i-did-to-fix-that</link><guid isPermaLink="true">https://jimzandueta.dev/blog/i-realized-i-was-paying-an-ai-to-reread-my-stack-traces-and-what-i-did-to-fix-that</guid><description>Thirty prompts into a feature, I noticed my AI coding agent was rereading my old stack traces and abandoned plans on every request. I built oowl, a workflow layer for OpenCode, so each role gets only the files and notes its job needs.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Adding a chart() Method to Tala</title><link>https://jimzandueta.dev/blog/building-chart-for-tala-from-raw-indicator-data-to-something-you-can-actually-inspect</link><guid isPermaLink="true">https://jimzandueta.dev/blog/building-chart-for-tala-from-raw-indicator-data-to-something-you-can-actually-inspect</guid><description>I added a chart() method to tala, my TypeScript technical analysis library, so you can see its indicators against the price. It also gained a server mode that re-runs the indicators when you edit the data in the browser.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>Stop Using Your Most Expensive AI Model to Stamp the Paperwork</title><link>https://jimzandueta.dev/blog/stop-using-your-most-expensive-ai-model-to-stamp-the-paperwork</link><guid isPermaLink="true">https://jimzandueta.dev/blog/stop-using-your-most-expensive-ai-model-to-stamp-the-paperwork</guid><description>I stopped sending every small coding task to a premium AI model and built oowl, an open-source workflow layer on OpenCode that gives each job the model it needs.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>I Built an AI App That Gives You Superpowers, Then Makes Them Useless</title><link>https://jimzandueta.dev/blog/i-built-an-ai-app-that-gives-you-superpowers-but-makes-them-useless</link><guid isPermaLink="true">https://jimzandueta.dev/blog/i-built-an-ai-app-that-gives-you-superpowers-but-makes-them-useless</guid><description>My entry for the DEV April Fools Challenge is an AI genie that grants the superpower you ask for, then adds one condition that makes it useless.</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How a .codex Folder Made Our AI Output Consistent</title><link>https://jimzandueta.dev/blog/from-ai-chaos-to-team-flow-codex-boilerplate-that-actually-worked</link><guid isPermaLink="true">https://jimzandueta.dev/blog/from-ai-chaos-to-team-flow-codex-boilerplate-that-actually-worked</guid><description>My team&apos;s AI agents wrote the same feature in a different style for every teammate. This is the .codex folder I put in a NestJS boilerplate to make Codex follow one set of rules and remember our decisions.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>How to Let Users Upload and Download S3 Files Without Direct Access, Using Pre-Signed URLs</title><link>https://jimzandueta.dev/blog/how-to-allow-users-to-upload-and-download-data-from-aws-s3-without-direct-access-using-pre-signed-urls</link><guid isPermaLink="true">https://jimzandueta.dev/blog/how-to-allow-users-to-upload-and-download-data-from-aws-s3-without-direct-access-using-pre-signed-urls</guid><description>A note on using pre-signed URLs so users can download from and upload to a private S3 bucket without ever seeing your AWS keys.</description><pubDate>Sat, 24 Dec 2022 00:00:00 GMT</pubDate></item><item><title>How to generate a secure SSH key pair</title><link>https://jimzandueta.dev/blog/generate-an-ssh-key-pair</link><guid isPermaLink="true">https://jimzandueta.dev/blog/generate-an-ssh-key-pair</guid><description>A quick note on creating a 4096-bit RSA SSH key pair with ssh-keygen, without overwriting the key you already have.</description><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate></item><item><title>How to set up your global (and local) Git profile</title><link>https://jimzandueta.dev/blog/setup-your-git-profile</link><guid isPermaLink="true">https://jimzandueta.dev/blog/setup-your-git-profile</guid><description>A quick note on setting the name, email and editor Git uses for your commits, globally or for one project.</description><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate></item><item><title>How to connect to the same host with different SSH keys</title><link>https://jimzandueta.dev/blog/setup-your-ssh-configuration-file</link><guid isPermaLink="true">https://jimzandueta.dev/blog/setup-your-ssh-configuration-file</guid><description>A quick note on using the SSH config file to give each host a short name and its own key, such as separate personal and work GitHub accounts.</description><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate></item><item><title>macOS: Moving Your Notifications to a Different Display</title><link>https://jimzandueta.dev/blog/macos-moving-your-notification-to-a-different-display</link><guid isPermaLink="true">https://jimzandueta.dev/blog/macos-moving-your-notification-to-a-different-display</guid><description>How I got macOS notifications to show on my main display instead of my MacBook screen, by moving the menu bar in Display Arrangement.</description><pubDate>Fri, 08 May 2020 00:00:00 GMT</pubDate></item></channel></rss>