I mostly write about iOS development, Swift, git, and, occasionally, other software development topics. To get notified about new posts, follow me on Twitter or subscribe to the feed.

If you enjoy my writing, consider subscribing to  iOS Code Review newsletter where I curate the best code improvement content from the community.


Fixing SwiftUI's Automatic Preview Updating Paused

Understand why SwiftUI previews keep getting paused and how to improve the situation

Read more

Debugging on iOS 15 with Xcode 12

If your app can't be upgraded to Xcode 13 right away, but still has to run on iOS 15, you're limited in debuging options with Xcode 12. This article shows how to debug apps on iOS 15 with Xcode 12.

Read more

How to build credibility online

This guide will help you create a meaningful online presence and take your career to the next level 🚀

Read more

Unit testing: the pragmatic guide on where to start

So you decided to start unit testing the code in your project. If you feel uncertain about where to start, this article is for you. I cover real questions that arise at the beginning of your testing journey, and you'll get pragmatic advice on how to get going and iterate forward more confidently, at your own pace.

Read more

Debugging on iOS 14 with Xcode 11

Every year we get a new major iOS version to test our apps on. Some apps can't be upgraded to Xcode 12 right away, but they are still expected to work well on iOS 14. With some tricks, we can not only run on iOS 14 but also debug with breakpoints and much more.

Read more

Building a Well-Rounded Website: Essentials

A collection of essential links useful for building a well-rounded website, regardless of the stack. While building my personal website, I've gathered 20+ resources that I regularly get back to, and I'm hoping this list will help others who are following a similar path.

Read more

How To Test Throwing Code In Swift

All you need to know about testing throwing functions with XCTest and keeping test code clean & robust in the process.

Read more