Weekly note ✏️
The Amazon outage this Monday was a stark reminder of how dependent we’ve become on a single cloud provider. From bookstores and flower shops to hosting platforms, payment systems, and even IoT companies—many services went dark in an instant. The incident also unintentionally revealed who isn’t relying on AWS.
While such large-scale failures are rare, their impact is massive. Delayed airline systems, missed connections, and thousands of disrupted travel plans are no small matter. Having a backup cloud provider sounds like an easy fix in theory, but in reality, it’s far more complex. Migrating or syncing massive volumes of data across two separate infrastructures—and paying for both—isn’t always feasible.
So what can we do? The answer lies in resilience, not redundancy. Designing systems with graceful degradation, proper offline handling, clear user messaging, and smaller independent service layers can make a huge difference. Even partial functionality during downtime is better than a complete blackout. For smaller teams, this might mean using multi-region setups, decoupled APIs, and reliable monitoring alerts to react faster.
Events like this remind us: even the biggest clouds can storm. Building systems that can stand a little rain is the best investment you can make.
Connect with the "Those Who Swift" team - Justas Markus & Anton Gubarenko 👋
Sponsor 🤝
Unlock more sales with multiple payment methods
Give your users the freedom to pay their way with Apple Pay, Google Pay, PayPal, Alipay, and more—no extra setup required.
With Paddle’s hosted checkout, you can add a secure, optimized purchase flow to your app in minutes.
Hand off the heavy lifting so you can focus on building, not billing.
Swift Around the Web 🌐
Singletons and Swift Concurrency: Rethinking Global Mutable State
Matt Massicotte explores how the traditional singleton pattern clashes with Swift 6’s concurrency model — pointing out risks like global mutable state and data races, and recommending alternatives like actor-isolation or using @MainActor for shared instances.
Task Cancellation Handlers in Swift
Max Seelmann explores how Swift’s withTaskCancellationHandler allows you to attach cleanup logic when a task is cancelled, explaining why simply discarding a task reference doesn’t stop it and how you should explicitly handle cancellation to avoid resource leaks.
Handle Out-of-Scope Expertise Collaboration
This guide by our team member Anton Gubarenko helps indie developers collaborate effectively with specialists to fill skill gaps like design or marketing. It shares practical strategies for finding partners and maintaining project momentum when working with external contributors. Subscribe to Indie App Devs!
Coding 👨💻
SwiftUI Custom Progress Bar With Masking
Artem Mirzabekian shows how to build a custom progress bar with GeometryReader and masking so the fill controls both the bar and text color, with extensions to pattern-based masks and reusable components.
Crafting Interactive Tiles in SwiftUI
Uladzislau Volchyk demonstrates how to build an interactive gradient tile grid in SwiftUI—combining gesture-driven corner radius changes, MeshGradient, and a Metal-based grain effect for texture and depth.
Stickers 🗒️
TecTalk - IT Slang and Phrases
Ever struggled to explain an IT moment? TecTalk is the sticker pack that speaks your language — turning developer slang and tech frustrations into fun, relatable stickers for your chats.
Design 🎨
Transforming Glass Views with glassEffectID in SwiftUI
Gabriel Theodoropoulos outlines how to use the glassEffectID(_:in:) modifier along with GlassEffectContainer to enable smooth morphing and transitions between “Liquid Glass” UI elements in SwiftUI—allowing separate views to blend or animate into one another.
Other cool stuff 🧰
Adding dSYMs from a Closed-Source Swift SDK to an App
Daniel Saidi explains how missing dSYMs from third-party SDKs can cripple crash-reporting and shows step-by-step how to generate and include those symbol files to ensure proper symbolicating of crashes originating in closed-source frameworks.
Combine Subjects vs AsyncStream in Swift
This discussion explores the differences between Combine’s Subject types (which support multiple subscribers and rich operators) and Swift Concurrency’s AsyncStream (which offers a simpler async/await-friendly stream but lacks multicasting and some reactive features).
The Fast Engineer Trap
The article by Aryaman Sharda cautions that prioritizing speed above all in engineering teams often leads to fragile code, neglected tests, and burnout—reminding us that being trusted matters more than just being quick.
AI 🤖
Generative AI for Beginners – Microsoft GitHub Course
Microsoft’s open-source GitHub repo offers 21 lessons covering generative AI fundamentals, complete with Python and TypeScript code examples and guided exercises for beginners.
Introducing ChatGPT Atlas
OpenAI unveils ChatGPT Atlas, a new AI-powered browser beginning with macOS and expanding to Windows, iOS, and Android—designed to integrate its agentic capabilities directly into how you surf the web.
StackOverflow.ai — AI-Powered Labs
StackOverflow is reviewing the interest to the platform by adding Ai-drive educational service where you can ask what would you like to learn and it will give a detailed explanation.
Tutorials 📒
Getting Started With Multipeer Connectivity in Swift
Letizia Granata guides you through using the Multipeer Connectivity framework to set up peer discovery, invite sessions, exchange messages, and handle disconnections—providing a foundation for peer-to-peer features like wireless gaming or file sharing.
Video 🎥
Don’t Make This Mistake With a TaskGroup
Vincent Pradeilles highlights a common pitfall when using TaskGroup in Swift.
Thanks for reading Those Who Swift! Subscribe for free to receive new posts.

Couldn't agree more. This really echoes your insights on building robust, distributed sistems. Resilience over redundancy, spot on.