Alex Ozun
@alexozun.com
Staff iOS Engineer | https://swiftology.io
Based in 🇬🇧 Born in 🇺🇦 All opinions are my own
Based in 🇬🇧 Born in 🇺🇦 All opinions are my own
Pinned
Alex Ozun
@alexozun.com
· Nov 17
Type-Driven Design with Swift - Alex Ozun - SwiftCraft 2024
YouTube video by Swift Craft
youtu.be
I'm new to #bluesky, and since I'll likely never meet most of my new connections here IRL, to put a face to a name I thought I'd share a video of this talk I gave recently. It's the highest fidelity representation of myself I currently have online.
#swiftlang #xcode #functionalprogramming
#swiftlang #xcode #functionalprogramming
Hey friend, I've got a new article on Swift Testing for you! 📝
I share my insights on avoiding common pitfalls of Parameterized Tests, gained from overseeing the migration of tens of thousands of tests from XCTest to Swift Testing.
swiftology.io/articles/pit...
#swiftlang #swift
I share my insights on avoiding common pitfalls of Parameterized Tests, gained from overseeing the migration of tens of thousands of tests from XCTest to Swift Testing.
swiftology.io/articles/pit...
#swiftlang #swift
Pitfalls of Parameterized Tests | Swiftology
In this article, I share my experience adopting Swift Testing at scale and the lessons I learned about **Parameterized Tests**, including five common pitfalls teams may encounter. I also recommend bes...
swiftology.io
November 11, 2025 at 3:33 PM
Hey friend, I've got a new article on Swift Testing for you! 📝
I share my insights on avoiding common pitfalls of Parameterized Tests, gained from overseeing the migration of tens of thousands of tests from XCTest to Swift Testing.
swiftology.io/articles/pit...
#swiftlang #swift
I share my insights on avoiding common pitfalls of Parameterized Tests, gained from overseeing the migration of tens of thousands of tests from XCTest to Swift Testing.
swiftology.io/articles/pit...
#swiftlang #swift
Hey look what just dropped! A recording of my recent talk from iOSKonf25!
The recording didn't capture the stage camera's feed, but that's totally fine because I have a radio face anyway 🫥
youtu.be/AnUS_zmSnVg
#swiftlang #swiftui #ios
The recording didn't capture the stage camera's feed, but that's totally fine because I have a radio face anyway 🫥
youtu.be/AnUS_zmSnVg
#swiftlang #swiftui #ios
Make Invalid States Impossible in Your App | iOSKonf25 | Alex Ozun
YouTube video by iOSKonf
youtu.be
October 22, 2025 at 2:24 PM
Hey look what just dropped! A recording of my recent talk from iOSKonf25!
The recording didn't capture the stage camera's feed, but that's totally fine because I have a radio face anyway 🫥
youtu.be/AnUS_zmSnVg
#swiftlang #swiftui #ios
The recording didn't capture the stage camera's feed, but that's totally fine because I have a radio face anyway 🫥
youtu.be/AnUS_zmSnVg
#swiftlang #swiftui #ios
Reposted by Alex Ozun
Finally got around to watching @alexozun.com‘s talk here. Truly fascinating stuff, and I learned something about non-Copyable types too!
youtu.be/qPHjDlqHsUQ?...
youtu.be/qPHjDlqHsUQ?...
Typestate - the new Design Pattern in Swift 5.9 | Swift Heroes 2024 Talk
YouTube video by Swift Heroes
youtu.be
June 13, 2025 at 10:54 PM
Finally got around to watching @alexozun.com‘s talk here. Truly fascinating stuff, and I learned something about non-Copyable types too!
youtu.be/qPHjDlqHsUQ?...
youtu.be/qPHjDlqHsUQ?...
Reposted by Alex Ozun
This is the second time I’ve seen @alexozun.com’s talk on making invalid state impossible and it’s a really cool approach to improved software safety!
May 20, 2025 at 3:33 PM
This is the second time I’ve seen @alexozun.com’s talk on making invalid state impossible and it’s a really cool approach to improved software safety!
Doug Gregor takes the stage of @swiftcraft.bsky.social with a keynote talk On Progressive Disclosure in #swiftlang
May 20, 2025 at 1:45 PM
Doug Gregor takes the stage of @swiftcraft.bsky.social with a keynote talk On Progressive Disclosure in #swiftlang
I had a blast presenting at #iOSKonf25 this week! I heard great things about this conference and I now can say that the praise was well-deserved!
It was pretty scary to be on the lineup with so many accomplished engineers and speakers, but the vibe was really good and everyone was easy to be around.
It was pretty scary to be on the lineup with so many accomplished engineers and speakers, but the vibe was really good and everyone was easy to be around.
May 16, 2025 at 12:26 PM
I had a blast presenting at #iOSKonf25 this week! I heard great things about this conference and I now can say that the praise was well-deserved!
It was pretty scary to be on the lineup with so many accomplished engineers and speakers, but the vibe was really good and everyone was easy to be around.
It was pretty scary to be on the lineup with so many accomplished engineers and speakers, but the vibe was really good and everyone was easy to be around.
Reposted by Alex Ozun
Next up: @alexozun.com on how to make invalid states impossible in your app.
May 14, 2025 at 7:50 AM
Next up: @alexozun.com on how to make invalid states impossible in your app.
The secret to introducing people to scary-sounding concepts like Free Monads in #swiftlang is in never mentioning these two words until the very end of the presentation.
April 10, 2025 at 6:07 AM
The secret to introducing people to scary-sounding concepts like Free Monads in #swiftlang is in never mentioning these two words until the very end of the presentation.
Tiers of Swift development sins by Pietro Messineo at @swiftheroes.bsky.social
April 8, 2025 at 3:57 PM
Tiers of Swift development sins by Pietro Messineo at @swiftheroes.bsky.social
Good software design is about adding the necessary amount of indirection without compromising performance too much.
Good performance optimization is about removing unnecessary indirection without compromising software design too much.
March 27, 2025 at 10:37 AM
Good software design is about adding the necessary amount of indirection without compromising performance too much.
Good performance optimization is about removing unnecessary indirection without compromising software design too much.
Now, that it's official, I'm sharing my 2025 #swiftlang conference schedule, so far:
1. Swift Heroes (April 8-9): Controlling Side Effects with Swift.
2. iOSKonf (May 13-15): Make invalid state impossible in your apps.
3. Swift Craft (May 20-21): Swift Abstractions Demystified.
1. Swift Heroes (April 8-9): Controlling Side Effects with Swift.
2. iOSKonf (May 13-15): Make invalid state impossible in your apps.
3. Swift Craft (May 20-21): Swift Abstractions Demystified.
March 26, 2025 at 9:53 PM
Now, that it's official, I'm sharing my 2025 #swiftlang conference schedule, so far:
1. Swift Heroes (April 8-9): Controlling Side Effects with Swift.
2. iOSKonf (May 13-15): Make invalid state impossible in your apps.
3. Swift Craft (May 20-21): Swift Abstractions Demystified.
1. Swift Heroes (April 8-9): Controlling Side Effects with Swift.
2. iOSKonf (May 13-15): Make invalid state impossible in your apps.
3. Swift Craft (May 20-21): Swift Abstractions Demystified.
Feedback like this is what keeps me going (even at my snail's pace 😅)
The most impactful Swift content I’ve ever consumed is authored by @alexozun.com Please visit his site, swiftology.io and read/watch everything. It has completely changed the way I approach writing Swift. You too will be better off after learning from Alex!
Welcome to Swiftology! | Swiftology
Advanced Swift | Functional Programming | Software Design written by Alex Ozun
swiftology.io
March 13, 2025 at 10:08 PM
Feedback like this is what keeps me going (even at my snail's pace 😅)
My 2025 #swiftlang conference schedule is shaping up 🗓️
This year, I'm bringing not one, not two, but *three* brand new talks to the community! So far, these are confirmed:
1. Controlling side effects with Swift
2. Make invalid states impossible in your app
3. Swift abstractions demystified
This year, I'm bringing not one, not two, but *three* brand new talks to the community! So far, these are confirmed:
1. Controlling side effects with Swift
2. Make invalid states impossible in your app
3. Swift abstractions demystified
February 17, 2025 at 11:27 AM
My 2025 #swiftlang conference schedule is shaping up 🗓️
This year, I'm bringing not one, not two, but *three* brand new talks to the community! So far, these are confirmed:
1. Controlling side effects with Swift
2. Make invalid states impossible in your app
3. Swift abstractions demystified
This year, I'm bringing not one, not two, but *three* brand new talks to the community! So far, these are confirmed:
1. Controlling side effects with Swift
2. Make invalid states impossible in your app
3. Swift abstractions demystified
Caffeinated and ready to learn how to build fast and efficient apps from #Apple engineers at the new Dev Center in Battersea Power Plant.
February 12, 2025 at 9:35 AM
Caffeinated and ready to learn how to build fast and efficient apps from #Apple engineers at the new Dev Center in Battersea Power Plant.
I've been putting off reading #brandonsanderson books for a few years, but finally got to them. Now that I've finished the Mistborn trilogy and started the Stormlight Archive, he's quickly becoming my favourite modern fantasy author - on par with Sapkowski (while having a more pleasant personality).
February 2, 2025 at 8:10 PM
I've been putting off reading #brandonsanderson books for a few years, but finally got to them. Now that I've finished the Mistborn trilogy and started the Stormlight Archive, he's quickly becoming my favourite modern fantasy author - on par with Sapkowski (while having a more pleasant personality).
It's great to see #Apple bringing these in-person sessions to local dev centers around the world.
I look forward to hearing about "Building faster and more efficient apps" in two weeks.
I look forward to hearing about "Building faster and more efficient apps" in two weeks.
January 29, 2025 at 1:00 PM
It's great to see #Apple bringing these in-person sessions to local dev centers around the world.
I look forward to hearing about "Building faster and more efficient apps" in two weeks.
I look forward to hearing about "Building faster and more efficient apps" in two weeks.
My talk from Swift Heroes 2024 has just been published. If you're interested in Noncopyable types, type-level programming, and State Machines, check it out.
I had a lot of fun researching Typestate programming in #swiftlang, and I'm happy with how this talk turned out.
youtu.be/qPHjDlqHsUQ
I had a lot of fun researching Typestate programming in #swiftlang, and I'm happy with how this talk turned out.
youtu.be/qPHjDlqHsUQ
Typestate - the new Design Pattern in Swift 5.9 | Swift Heroes 2024 Talk
YouTube video by Swift Heroes
youtu.be
January 28, 2025 at 4:41 PM
My talk from Swift Heroes 2024 has just been published. If you're interested in Noncopyable types, type-level programming, and State Machines, check it out.
I had a lot of fun researching Typestate programming in #swiftlang, and I'm happy with how this talk turned out.
youtu.be/qPHjDlqHsUQ
I had a lot of fun researching Typestate programming in #swiftlang, and I'm happy with how this talk turned out.
youtu.be/qPHjDlqHsUQ
I'm a weird type of an application developer because when it comes to customer support I absolutely hate any sort of automation or self-service like chat bots or phone robots. If I'm performing a BAU operation, like changing a PIN number, I just want a button that's directly hooked up to API.
January 25, 2025 at 5:18 AM
I'm a weird type of an application developer because when it comes to customer support I absolutely hate any sort of automation or self-service like chat bots or phone robots. If I'm performing a BAU operation, like changing a PIN number, I just want a button that's directly hooked up to API.
Yes, they really flew me all the way from London to Singapore just so I could show a photo of an elephant to #iosconfsg audience.
January 16, 2025 at 5:15 AM
Yes, they really flew me all the way from London to Singapore just so I could show a photo of an elephant to #iosconfsg audience.
Heading out to my first conference of the year at #iOSConfSG
If you happen to be around, drop me a message and let's have a coffee ☕️
P.S. I prefer to travel light and only pack essentials.
If you happen to be around, drop me a message and let's have a coffee ☕️
P.S. I prefer to travel light and only pack essentials.
January 13, 2025 at 11:12 AM
Heading out to my first conference of the year at #iOSConfSG
If you happen to be around, drop me a message and let's have a coffee ☕️
P.S. I prefer to travel light and only pack essentials.
If you happen to be around, drop me a message and let's have a coffee ☕️
P.S. I prefer to travel light and only pack essentials.
Holy smokes🤯! I think I was just able to create a proof-of-concept of #swiftlang effect system that allows to write direct style imperative code and then test it WITHOUT mocks by stepping through each suspension point and directly feeding input arguments to effects (e.g. readline).
December 22, 2024 at 11:43 PM
Holy smokes🤯! I think I was just able to create a proof-of-concept of #swiftlang effect system that allows to write direct style imperative code and then test it WITHOUT mocks by stepping through each suspension point and directly feeding input arguments to effects (e.g. readline).
I'm having a "do I even know Swift?" moment. I understand that #swiftlang generics are invariant, i.e. F is not a subtype of F, even though Dog is a subtype of Animal. But some stdlib generic types like Optional and Array do track subtyping (see pic), while others, like Result, don't.
December 22, 2024 at 4:16 PM
I'm having a "do I even know Swift?" moment. I understand that #swiftlang generics are invariant, i.e. F is not a subtype of F, even though Dog is a subtype of Animal. But some stdlib generic types like Optional and Array do track subtyping (see pic), while others, like Result, don't.