Blog

Thoughts on software development, mobile apps, and building products and sometimes nothing in particular at all

Blog post: Unstructured Task Leaks
Feb 15, 2026
6 min

Unstructured Task Leaks

Concurrency Deep Dive

You tap Cancel but the task keeps running. Your polling service outlives the view. Learn to track and cancel unstructured tasks properly.

Read more
Blog post: Safe Financial Systems with Actors
Feb 12, 2026
6 min

Safe Financial Systems with Actors

Concurrency Deep Dive

Building actor-based systems that correctly handle reentrancy. Patterns for transactions, reservations, and rollbacks.

Read more
Blog post: Actor Reentrancy: State Changes During Await
Feb 9, 2026
5 min

Actor Reentrancy: State Changes During Await

Concurrency Deep Dive

Actors protect against data races, but not against time. How state can change across await points and why your balance went negative.

Read more
Blog post: Building Responsive Search with Debouncing
Feb 6, 2026
5 min

Building Responsive Search with Debouncing

Concurrency Deep Dive

Stop firing API calls on every keystroke. Implement debounced search with proper task cancellation to prevent race conditions.

Read more
Blog post: Task Cancellation: The Cooperative Contract
Feb 3, 2026
5 min

Task Cancellation: The Cooperative Contract

Concurrency Deep Dive

You call task.cancel() but nothing happens. Swift's cancellation is cooperative—your code must check and respond.

Read more
Blog post: Lock Ordering and Circular Dependencies
Jan 31, 2026
5 min

Lock Ordering and Circular Dependencies

Concurrency Deep Dive

Two locks, two threads, wrong order. How circular dependencies cause deadlocks and patterns to prevent them.

Read more
Blog post: Deadlocks: Sync to Same Queue
Jan 28, 2026
5 min

Deadlocks: Sync to Same Queue

Concurrency Deep Dive

Your app freezes with no crash log. Learn to identify and fix the two most common deadlock patterns: queue reentry and lock ordering.

Read more
Blog post: DispatchQueue.main vs @MainActor
Jan 25, 2026
4 min

DispatchQueue.main vs @MainActor

Concurrency Deep Dive

When to use the classic GCD approach versus Swift's @MainActor annotation. Trade-offs, mixing them, and common gotchas.

Read more
Blog post: Main Thread Violations: The Silent Crasher
Jan 22, 2026
4 min

Main Thread Violations: The Silent Crasher

Concurrency Deep Dive

That purple Xcode warning about publishing changes from background threads? Here's why it matters and how to fix it.

Read more
Blog post: Thread-Safe Collections in Swift
Jan 19, 2026
4 min

Thread-Safe Collections in Swift

Concurrency Deep Dive

Swift's Dictionary and Array aren't thread-safe. Here's how to wrap them with serial queues, concurrent queues with barriers, or actors.

Read more
Blog post: Race Conditions: When Threads Collide
Jan 15, 2026
4 min

Race Conditions: When Threads Collide

Concurrency Deep Dive

A shopping cart that loses items. Why unsynchronized access to shared state causes unpredictable bugs and how to fix them with serial queues.

Read more
Blog post: Concurrency Bugs Every iOS Dev Should Know
Jan 13, 2026
3 min

Concurrency Bugs Every iOS Dev Should Know

Concurrency Deep Dive

Kicking off a series on iOS interview prep with a look at concurrency bugs, testing patterns, and SwiftUI—plus practice projects to sharpen your skills.

Read more
Blog post: Practice Projects & Setup Guide
Jan 10, 2026
3 min

Practice Projects & Setup Guide

SwiftUI Fundamentals

How to set up and explore the iOS-Practice projects. Project structure, running tests, and suggested learning order.

Read more
Blog post: Cold Starts Improved 15x When I Re-Wrote My Lambda in Go
Jan 9, 2026
5 min

Cold Starts Improved 15x When I Re-Wrote My Lambda in Go

Building Border Times

How I cut my iOS app's splash screen time by rewriting critical Lambda functions from TypeScript to Go—and the architectural patterns that made it possible.

Read more
Blog post: Mastering SF Symbols Rendering Modes in SwiftUI
Nov 23, 2025
5 min

Mastering SF Symbols Rendering Modes in SwiftUI

SwiftUI Snippets

Discover the three powerful SF Symbols rendering modes—multicolor, palette, and monochrome—and learn when to use each for beautiful, colorful icons.

Read more
Blog post: Don't Get Stuck at the Border This Thanksgiving: A Planning Guide
Nov 19, 2025
4 min

Don't Get Stuck at the Border This Thanksgiving: A Planning Guide

Border Times Tips

Avoid holiday border chaos with Border Notices, community-verified crossing times, and smart planning tips for Thanksgiving week.

Read moreRead on Medium
Blog post: Create a Pulsing "Live" Indicator in SwiftUI
Nov 16, 2025
3 min

Create a Pulsing "Live" Indicator in SwiftUI

SwiftUI Snippets

A simple, reusable animation for real-time status indicators. Perfect for showing live data updates without being distracting.

Read moreRead on Medium
Blog post: Why Your 40th App is the One That Finally Prints
Nov 13, 2025
12 min

Why Your 40th App is the One That Finally Prints

Learnings from Building in Public

After 2.5 months building Border Times, I'm starting to understand why it takes dozens of attempts to find success. It's not about luck—it's about mastering five different disciplines at once.

Read moreRead on Medium
Blog post: Border Times iOS App Now Available
Oct 18, 2025
5 min

Border Times iOS App Now Available

Building a Small-Scale Online Business

We built an app because waiting at the border really sucks. Download Border Times on iOS and join thousands of border crossers saving time and sanity.

Read moreRead on Medium
Blog post: They say the best business ideas start with solving a personal problem!
Sep 25, 2025
4 min

They say the best business ideas start with solving a personal problem!

Building a Small-Scale Online Business

From border crossing frustrations to launching border-times.com - how personal problems become business solutions.

Read moreRead on Medium
Blog post: Protection from advertisements
Sep 17, 2025
6 min

Protection from advertisements

Building a Small-Scale Online Business

The internet feels like an advertising scheme.

Read more
Blog post: Status Tracker
Nov 18, 2024
8 min

Status Tracker

Part 2

In part two we cover updating the status tracker to have updatable state. We also swap out the titles to have a description of a state, rather than the progress state.

Read more
Blog post: Status Tracker
Nov 18, 2024
8 min

Status Tracker

Part 1

Make a customizable status tracker with SwiftUI.

Read more
Blog post: How close is AI to replacing your job?
Nov 15, 2024
2 min

How close is AI to replacing your job?

Is llama3.1 ready for your job?

Read more
Blog post: Markdown files with AWS
Nov 14, 2024
2 min

Markdown files with AWS

How to avoid .md files not being served.

Read moreRead on Medium
Blog post: Collapsable Indicator
Nov 13, 2024
5 min

Collapsable Indicator

Build a collapsable indicator in pure SwiftUI.

Read moreRead on Medium

Let's work together

Professional discovery, design, and complete technical coverage for your ideas

Get in touch