<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>KUBA SZWAJKA</title><description>Doing Software. Based in Wrocław.</description><link>https://kubaszwajka.com/</link><item><title>Building OfferLink: The constraints that let coding agents work autonomously</title><link>https://kubaszwajka.com/blog/building-offerlink-the-constraints-that-let-coding-agents-work-autonomously/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/building-offerlink-the-constraints-that-let-coding-agents-work-autonomously/</guid><description>A walk through the architecture of OfferLink. The layer cake is boring. The interesting part is that each module has a written list of things it will not accept.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Calling SAP RFC modules from Python - what you need to remember</title><link>https://kubaszwajka.com/blog/calling-sap-rfc-modules-from-python-what-you-need-to-remember/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/calling-sap-rfc-modules-from-python-what-you-need-to-remember/</guid><description>One of the most popular ways to obtain data from SAP system is OData. To set it up, you need at least basic knowledge about ABAP and SAP. There is another way t...</description><pubDate>Fri, 23 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Build a Policy-Based Access System in Python</title><link>https://kubaszwajka.com/blog/build-a-policy-based-access-system-in-python/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/build-a-policy-based-access-system-in-python/</guid><description>Last week, I was staring at permission checks scattered across my API codebase. You know the feeling - nested if-statements everywhere, duplicated logic, and th...</description><pubDate>Sat, 07 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Building Feature Flags: What I Learned Building My Own</title><link>https://kubaszwajka.com/blog/building-feature-flags-what-i-learned-building-my-own/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/building-feature-flags-what-i-learned-building-my-own/</guid><description>So I&apos;ve been working on this project where the pace of development was much faster than our QA process. You know that feeling when you&apos;re shipping code daily, b...</description><pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Availability Archetype in Practice</title><link>https://kubaszwajka.com/blog/availability-archetype-in-practice/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/availability-archetype-in-practice/</guid><description>Today I want to write about availability software archetype. This will be not a generic description of it but rather a case study of problem I had to solve.</description><pubDate>Sun, 06 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Build your own event system in python</title><link>https://kubaszwajka.com/blog/build-your-own-event-system-in-python/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/build-your-own-event-system-in-python/</guid><description>Event system is not hard to build on your own. There are plenty of libraries ready to use, but for better understanding I want to implement it by myself.</description><pubDate>Thu, 22 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Composition Over Copy-Paste: Building Reusable Behaviors with Type Discriminators in SQLAlchemy</title><link>https://kubaszwajka.com/blog/composition-over-copy-paste/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/composition-over-copy-paste/</guid><description>You know that feeling when you need to add the same feature to multiple models in your app? Like, you want several different entities to have comments, or alerts, or notifications...</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Chat with HTMX, WebSockets and Hono</title><link>https://kubaszwajka.com/blog/chat-with-htmx-websockets-and-hono/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/chat-with-htmx-websockets-and-hono/</guid><description>Last week, I wrote about [tweaking `htmx` to display instant messages](https://kubaszwajka.com/posts/posts/instant-message-display-in-chat-apps-with-htmx). ...</description><pubDate>Tue, 06 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Creating Lucy: Developing an AI-Powered Slack Assistant with Memory</title><link>https://kubaszwajka.com/blog/creating-lucy-developing-an-ai-powered-slack-assistant-with-memory/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/creating-lucy-developing-an-ai-powered-slack-assistant-with-memory/</guid><description>The main idea was to build an AI agent named Lucy that can learn from our conversations and interact through a Slack interface. The plan was also to use no code...</description><pubDate>Thu, 23 May 2024 00:00:00 GMT</pubDate></item><item><title>Creating Lucy: Your Daily Tasks, Delivered with ChatGPT and Todoist Integration</title><link>https://kubaszwajka.com/blog/creating-lucy-your-daily-tasks-delivered-with-chatgpt-and-todoist-integration/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/creating-lucy-your-daily-tasks-delivered-with-chatgpt-and-todoist-integration/</guid><description>- iOS Shortcuts: To trigger and manage high level automation.</description><pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate></item><item><title>Django polymorphic - playing with models inheritance in Django</title><link>https://kubaszwajka.com/blog/django-polymorphic-playing-with-models-inheritance-in-django/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/django-polymorphic-playing-with-models-inheritance-in-django/</guid><description>Inspired by some Reddit question, I tried to find the most efficient way of solving model relations problem and making them useful for future extensions. While ...</description><pubDate>Tue, 20 Jul 2021 00:00:00 GMT</pubDate></item><item><title>The box and the loop - how I build small products (almost) on autopilot</title><link>https://kubaszwajka.com/blog/how-i-build-small-products-autonomously-hetzner-swarm-and-agent-loops/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/how-i-build-small-products-autonomously-hetzner-swarm-and-agent-loops/</guid><description>A diary entry about the infra I run right now - three Hetzner boxes, Docker Swarm, and an agent loop that ships to dev while I do something else.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How I Fixed My Event Bus Before It Could Lose Money</title><link>https://kubaszwajka.com/blog/how-i-fixed-my-event-bus-before-it-could-lose-money/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/how-i-fixed-my-event-bus-before-it-could-lose-money/</guid><description>Remember that time when you thought you built something clever, only to discover it had fundamental flaws? Yeah, that&apos;s exactly what happened with my async even...</description><pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate></item><item><title>I want to build a startup - how I use AI and my first ideas.</title><link>https://kubaszwajka.com/blog/i-want-to-build-a-startup-how-i-use-ai-and-my-first-ideas/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/i-want-to-build-a-startup-how-i-use-ai-and-my-first-ideas/</guid><description>Ok, I think it’s time to officially admit that I want to build something and I want to make it public! Time to go out of the basement.</description><pubDate>Sun, 02 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Ethereum ICO - Minted Crowdsale</title><link>https://kubaszwajka.com/blog/ethereum-ico-minted-crowdsale/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/ethereum-ico-minted-crowdsale/</guid><description>The previous [post](https://jakubszwajka.github.io/Ethereum-token/) was about the ERC20 token. Now let&apos;s prepare Crowdsale for this token. I&apos;ll keep this Crowds...</description><pubDate>Sat, 16 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Coding my first Ethereum token</title><link>https://kubaszwajka.com/blog/coding-my-first-ethereum-token/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/coding-my-first-ethereum-token/</guid><description>One year passed since the very first post here. And half from the last one xd. Time to get cracking!</description><pubDate>Thu, 07 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Local Development Server for AWS SAM Lambda Projects</title><link>https://kubaszwajka.com/blog/local-development-server-for-aws-sam-lambda-projects/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/local-development-server-for-aws-sam-lambda-projects/</guid><description>Right now I’m working on a project where REST API is built using AWS lambdas as request handlers. The whole thing uses [AWS SAM](https://aws.amazon.com/serverle...</description><pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Maping coordinates from video frame to technical projection</title><link>https://kubaszwajka.com/blog/maping-coordinates-from-video-frame-to-technical-projection/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/maping-coordinates-from-video-frame-to-technical-projection/</guid><description>Many google search results led me here. Hope one of yours will lead you here and this post will shorten your suffering.</description><pubDate>Wed, 07 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Mocking API in Python</title><link>https://kubaszwajka.com/blog/mocking-api-in-python/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/mocking-api-in-python/</guid><description>They said that cool guys test their code. So I have tried. You can find here some samples for quick mocking API in your project.</description><pubDate>Tue, 06 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Pydantic Query Params: Handling Comma-Separated Lists with Enum Validation</title><link>https://kubaszwajka.com/blog/pydantic-query-params-handling-comma-separated-lists-with-enum-validation/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/pydantic-query-params-handling-comma-separated-lists-with-enum-validation/</guid><description>How to handle comma-separated query parameters with proper enum validation in FastAPI using Pydantic BeforeValidator. Clean solution for converting &quot;ACTIVE,PENDING&quot; strings into typed enum lists.</description><pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Skills, Specs, Loops and AI workflows</title><link>https://kubaszwajka.com/blog/skills-specs-loops-and-ai-workflows/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/skills-specs-loops-and-ai-workflows/</guid><description>How I structure AI agent workflows using skills, PRDs, task lists, and implementation loops.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Let the agent show me the UI - screenshot galleries</title><link>https://kubaszwajka.com/blog/let-the-agent-show-me-the-ui-screenshot-galleries/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/let-the-agent-show-me-the-ui-screenshot-galleries/</guid><description>How I capture every UI state with Playwright, and the tiny HTML layer I want to add so an agent can hand me one gallery instead of a folder of PNGs.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Spiral Indexing</title><link>https://kubaszwajka.com/blog/spiral-indexing/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/spiral-indexing/</guid><description>- [https://github.com/JakubSzwajka/spiral-grid-indexing](https://github.com/JakubSzwajka/spiral-grid-indexing/blob/main/main.py)</description><pubDate>Sun, 31 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Stop Property Drilling in FastAPI: Use Request-Level Globals</title><link>https://kubaszwajka.com/blog/stop-property-drilling-in-fastapi-use-request-level-globals/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/stop-property-drilling-in-fastapi-use-request-level-globals/</guid><description>So in my application, I was very happy with the pattern I figured out. I knew it had some flaws like property drilling through the whole application and through...</description><pubDate>Sun, 21 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Streamline Your Log Monitoring with Tail Gazer: A One-Stop Solution for Tailing Multiple Service Logs</title><link>https://kubaszwajka.com/blog/streamline-your-log-monitoring-with-tail-gazer-a-one-stop-solution-for-tailing-m/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/streamline-your-log-monitoring-with-tail-gazer-a-one-stop-solution-for-tailing-m/</guid><description>## Introduction</description><pubDate>Sun, 30 Apr 2023 00:00:00 GMT</pubDate></item><item><title>One Caddy gateway for all your local Docker stacks</title><link>https://kubaszwajka.com/blog/one-caddy-gateway-for-all-your-local-docker-stacks/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/one-caddy-gateway-for-all-your-local-docker-stacks/</guid><description>How I run a bunch of isolated Docker Compose apps locally at once without fighting over port 3000 - one shared Caddy Docker Proxy gateway and project.localhost hostnames.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>AI Tooling, Skills &amp; Modular Code — March 2026 Thoughts</title><link>https://kubaszwajka.com/blog/thoughts-on-ai-march-2026/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/thoughts-on-ai-march-2026/</guid><description>Thoughts on AI tooling, skills and modular code.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Simple Yet Powerful: Building an In-Memory Async Event Bus in Python</title><link>https://kubaszwajka.com/blog/simple-yet-powerful-building-an-in-memory-async-event-bus-in-python/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/simple-yet-powerful-building-an-in-memory-async-event-bus-in-python/</guid><description>So I&apos;ve been working on this project where different parts of the system needed to talk to each other. You know, the usual stuff - user signs up, order gets upd...</description><pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Instant Message Display in Chat Apps with htmx</title><link>https://kubaszwajka.com/blog/instant-message-display-in-chat-apps-with-htmx/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/instant-message-display-in-chat-apps-with-htmx/</guid><description>While building my AI assistant, I needed a simple chat interface to test it locally. The challenge was displaying user messages instantly while waiting for API responses...</description><pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate></item><item><title>On How To Write Software</title><link>https://kubaszwajka.com/blog/on-how-to-write-software/</link><guid isPermaLink="true">https://kubaszwajka.com/blog/on-how-to-write-software/</guid><description>A working agreement for writing software with clear module boundaries, explicit facades, transactions, events, tests, and agent-friendly structure.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate></item></channel></rss>