<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Rafał Sroka</title><description>Senior iOS Engineer · Switzerland</description><link>https://rafalsroka.com/</link><item><title>16 Years of iOS Concurrency: From Dispatch Queues to async/await</title><link>https://rafalsroka.com/posts/swift-concurrency-evolution/</link><guid isPermaLink="true">https://rafalsroka.com/posts/swift-concurrency-evolution/</guid><description>Concurrency hasn&apos;t gotten easier. The sharp edges just moved. Here&apos;s what survived from the dispatch_async era, what Combine got right, and where async/await and actors actually help — from someone who&apos;s shipped iOS apps at scale across all three.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Lighthouse Auditing a Static Blog Until the Scores Hit 100</title><link>https://rafalsroka.com/posts/lighthouse-audit-blog/</link><guid isPermaLink="true">https://rafalsroka.com/posts/lighthouse-audit-blog/</guid><description>I ran Lighthouse against my Astro blog and got a performance score of 56. Three iterations later it was 100. The tools weren&apos;t the problem — it was the dev server, the font loading, and a 629KB PNG being used as a 48×48 thumbnail.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title>How Does an LLM Know It&apos;s Done?</title><link>https://rafalsroka.com/posts/how-llms-know-when-to-stop/</link><guid isPermaLink="true">https://rafalsroka.com/posts/how-llms-know-when-to-stop/</guid><description>LLMs don&apos;t &apos;feel&apos; done. They stop because the math tells them to. Here&apos;s how.</description><pubDate>Wed, 06 May 2026 23:00:00 GMT</pubDate></item><item><title>Why Flutter Can&apos;t Easily Do Liquid Glass</title><link>https://rafalsroka.com/posts/flutter-liquid-glass/</link><guid isPermaLink="true">https://rafalsroka.com/posts/flutter-liquid-glass/</guid><description>Apple&apos;s Liquid Glass isn&apos;t just a blur — it&apos;s a physically-based, real-time glass simulation that samples the entire render tree behind it. Flutter paints onto a single texture. Those two facts are incompatible.</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate></item><item><title>LLM Token Context Windows and the Attention Architecture</title><link>https://rafalsroka.com/posts/llm-context-window-attention/</link><guid isPermaLink="true">https://rafalsroka.com/posts/llm-context-window-attention/</guid><description>A deep dive into how LLMs manage context through attention mechanisms, and the engineering tricks that push context windows past their quadratic limits.</description><pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Opaque Types in Swift: Understanding the `some` Keyword</title><link>https://rafalsroka.com/posts/swift-opaque-types/</link><guid isPermaLink="true">https://rafalsroka.com/posts/swift-opaque-types/</guid><description>`some` doesn&apos;t just hide a type behind a protocol — it preserves the underlying concrete type identity through the compiler. Here&apos;s what that means for performance and why `any` exists alongside it.</description><pubDate>Sat, 15 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Unit Testing AWS Lambda Functions Without a Framework</title><link>https://rafalsroka.com/posts/unit-testing-lambda-functions/</link><guid isPermaLink="true">https://rafalsroka.com/posts/unit-testing-lambda-functions/</guid><description>151 unit tests, no Jest — just Node&apos;s built-in runner, tsx, and sinon. The hard part wasn&apos;t the test framework, it was understanding module loading order and what the bundler does to your exports.</description><pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate></item><item><title>SwiftUI Under the Hood: Its Architecture and Relationship to UIKit</title><link>https://rafalsroka.com/posts/swiftui-architecture/</link><guid isPermaLink="true">https://rafalsroka.com/posts/swiftui-architecture/</guid><description>SwiftUI is not a black box replacement for UIKit. It&apos;s a view graph diffing engine that runs on top of UIKit and AppKit. Here&apos;s how it actually works.</description><pubDate>Wed, 05 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Understanding Copy-on-Write in Swift</title><link>https://rafalsroka.com/posts/swift-copy-on-write/</link><guid isPermaLink="true">https://rafalsroka.com/posts/swift-copy-on-write/</guid><description>Swift&apos;s value types avoid expensive copies until you actually mutate them. Here&apos;s how CoW works under the hood.</description><pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate></item><item><title>SQL-Style Triggers in NoSQL: DynamoDB Streams, CosmosDB Change Feed, and When Not to Bother</title><link>https://rafalsroka.com/posts/nosql-triggers/</link><guid isPermaLink="true">https://rafalsroka.com/posts/nosql-triggers/</guid><description>NoSQL databases don&apos;t have triggers. But their event-driven primitives — streams, change feeds, CDC — let you build the same things with better decoupling. Here&apos;s how, and where it hurts.</description><pubDate>Thu, 20 Jul 2023 00:00:00 GMT</pubDate></item><item><title>AWS Lambda, Azure Functions, and When to Reach for Step Functions Instead</title><link>https://rafalsroka.com/posts/aws-lambda-step-functions/</link><guid isPermaLink="true">https://rafalsroka.com/posts/aws-lambda-step-functions/</guid><description>Lambda and Azure Functions are the easy part. Coordinating them — handling retries, state, error paths, timeouts — is where serverless gets hard. Step Functions solves that, but it&apos;s not always the right call.</description><pubDate>Wed, 15 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Best Practices for Unit Testing iOS Apps</title><link>https://rafalsroka.com/posts/ios-testing-best-practices/</link><guid isPermaLink="true">https://rafalsroka.com/posts/ios-testing-best-practices/</guid><description>Tests are automated. Run often. Preferably on each commit or pull request to quickly catch regressions.</description><pubDate>Thu, 20 Oct 2022 21:01:00 GMT</pubDate></item><item><title>Reference Cycles in iOS</title><link>https://rafalsroka.com/posts/ios-reference-cycles/</link><guid isPermaLink="true">https://rafalsroka.com/posts/ios-reference-cycles/</guid><description>Strong reference cycles prevent instances from ever being deallocated, causing a memory leak.</description><pubDate>Tue, 20 Sep 2022 21:01:00 GMT</pubDate></item><item><title>Concurrency and Parallelism in iOS</title><link>https://rafalsroka.com/posts/ios-concurrency/</link><guid isPermaLink="true">https://rafalsroka.com/posts/ios-concurrency/</guid><description>iOS offers several ways to run tasks concurrently. This article is a short summary of them.</description><pubDate>Mon, 19 Sep 2022 21:01:00 GMT</pubDate></item><item><title>Troubleshooting Graylog Problems</title><link>https://rafalsroka.com/posts/troubleshooting-graylog-problems/</link><guid isPermaLink="true">https://rafalsroka.com/posts/troubleshooting-graylog-problems/</guid><description>Common Graylog problems and how to fix them — starting with journal backlog and ElasticSearch flood warnings.</description><pubDate>Sun, 10 Jul 2022 00:00:00 GMT</pubDate></item><item><title>How to Switch AKS Clusters</title><link>https://rafalsroka.com/posts/how-to-switch-aks-clusters/</link><guid isPermaLink="true">https://rafalsroka.com/posts/how-to-switch-aks-clusters/</guid><description>Quickly change the active Kubernetes context using the Azure CLI.</description><pubDate>Sat, 09 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Purge a Soft-Deleted Azure Key Vault</title><link>https://rafalsroka.com/posts/purge-soft-deleted-azure-key-vault/</link><guid isPermaLink="true">https://rafalsroka.com/posts/purge-soft-deleted-azure-key-vault/</guid><description>Azure Key Vault&apos;s soft-delete means a deleted vault isn&apos;t truly gone. Here&apos;s how to purge it completely.</description><pubDate>Fri, 01 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Low Memory Crash Events in iOS</title><link>https://rafalsroka.com/posts/low-memory-ios/</link><guid isPermaLink="true">https://rafalsroka.com/posts/low-memory-ios/</guid><description>How crash reporting tools work.</description><pubDate>Sun, 10 Jan 2016 21:01:00 GMT</pubDate></item><item><title>Coordinate System in SpriteKit</title><link>https://rafalsroka.com/posts/spritekit-coordinate-system/</link><guid isPermaLink="true">https://rafalsroka.com/posts/spritekit-coordinate-system/</guid><description>Differences between SKScene and SKNode when it comes to coordinate system in SpriteKit.</description><pubDate>Tue, 10 Nov 2015 21:01:00 GMT</pubDate></item><item><title>Advertising Identifier in iOS</title><link>https://rafalsroka.com/posts/idfa/</link><guid isPermaLink="true">https://rafalsroka.com/posts/idfa/</guid><description>An alphanumeric string unique to each device, used only for serving advertisements.</description><pubDate>Mon, 10 Aug 2015 21:01:00 GMT</pubDate></item><item><title>CMMotionManager Noise Reduction in iOS</title><link>https://rafalsroka.com/posts/motion-manager-noise-reduction/</link><guid isPermaLink="true">https://rafalsroka.com/posts/motion-manager-noise-reduction/</guid><description>A way to smooth the accelerometer readings using a Low Pass Filter.</description><pubDate>Tue, 14 Jul 2015 21:01:00 GMT</pubDate></item><item><title>Playing Sounds in SpriteKit using SKAction</title><link>https://rafalsroka.com/posts/sounds-in-spritekit/</link><guid isPermaLink="true">https://rafalsroka.com/posts/sounds-in-spritekit/</guid><description>A couple of tips and tricks and useful code snippets for playing sounds.</description><pubDate>Fri, 10 Apr 2015 21:01:00 GMT</pubDate></item><item><title>iOS NSRunLoop in a Nutshell</title><link>https://rafalsroka.com/posts/nsrunloop/</link><guid isPermaLink="true">https://rafalsroka.com/posts/nsrunloop/</guid><description>An event processing loop that you use to schedule work and coordinate the receipt of incoming events.</description><pubDate>Wed, 09 Apr 2014 21:01:00 GMT</pubDate></item><item><title>MVC Design Pattern in iOS</title><link>https://rafalsroka.com/posts/mvc-design-pattern-ios/</link><guid isPermaLink="true">https://rafalsroka.com/posts/mvc-design-pattern-ios/</guid><description>Model-view-controller concept in the iOS world.</description><pubDate>Sun, 25 Dec 2011 21:01:00 GMT</pubDate></item></channel></rss>