Sign in

Alex Ozun

@alexozun.com
932 followers 877 following 182 posts

Staff iOS Engineer | swiftology.io
 Based in 🇬🇧 Born in 🇺🇦
All opinions are my own

PostsRepliesMedia
Alex Ozun @alexozun.com · 03/10/2026
#caturday
171
Alex Ozun @alexozun.com · 28/07/2026
Why does this sound like a threat? 😅 #WWDC26
050
Alex Ozun @alexozun.com · 30/01/2026
Today at #fosdem #swiftlang in Brussels. Greeted with a perfect swag for a nippy winter day.
0203
Alex Ozun @alexozun.com · 18/12/2025
Dijkstra predicted in 1978 how people would feel about #Swift Strict Concurrency checking in 2025.
Text in the image: some people found error messages they couldn't ignore more annoying than wrong results, and, when judging the relative merits of programming languages, some still seem to equate "the ease of programming" with the ease of making undetected mistakes.
1111
Alex Ozun @alexozun.com · 20/05/2025
How smooth is your learning curve?
040
Alex Ozun @alexozun.com · 20/05/2025
Doug Gregor takes the stage of @swiftcraft.bsky.social with a keynote talk On Progressive Disclosure in #swiftlang
120
Alex Ozun @alexozun.com · 16/05/2025
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.
031
Alex Ozun @alexozun.com · 10/04/2025
I think I managed to successfully trick the audience into thinking we were simply describing effects with enums, until finally revealing that we’d actually learned something that *supposedly* requires a PhD in Computer Science to understand (spoiler: it really doesn’t!).
140
Alex Ozun @alexozun.com · 10/04/2025
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.
3241
Alex Ozun @alexozun.com · 08/04/2025
Tiers of Swift development sins by Pietro Messineo at @swiftheroes.bsky.social
020
Alex Ozun @alexozun.com · 12/02/2025
Caffeinated and ready to learn how to build fast and efficient apps from #Apple engineers at the new Dev Center in Battersea Power Plant.
060
Alex Ozun @alexozun.com · 29/01/2025
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.
040
Alex Ozun @alexozun.com · 21/01/2025
It was nice visiting #apple developer center in Singapore the other day
0120
Alex Ozun @alexozun.com · 16/01/2025
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.
170
Alex Ozun @alexozun.com · 15/01/2025
010
Alex Ozun @alexozun.com · 13/01/2025
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.
080
Alex Ozun @alexozun.com · 22/12/2024
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).
171
Alex Ozun @alexozun.com · 22/12/2024
To clarify why Swift generics must be invariant. If they weren't we could create containers that allow to indirectly assign Cat value to Dog variable. See the left pic that shows this. And the right pic shows a pseudo-Kotlin syntax with "out" keyword that forbids generic types as input params.
000
Alex Ozun @alexozun.com · 22/12/2024
I'm having a "do I even know Swift?" moment. I understand that #swiftlang generics are invariant, i.e. F<Dog> is not a subtype of F<Animal>, 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.
3151
Alex Ozun @alexozun.com · 19/12/2024
I like this Onboarding UX from Mozi where each step reveals a new tab on the tab bar #ios #ux
040
Alex Ozun @alexozun.com · 13/12/2024
A procrastinating conference speaker's equivalent of an indie dev "spending an entire day designing the app icon before writing a single line of code" is "spending an entire day designing the title slide before adding any content." And I'll redo the title slide 15 mins before the talk anyhow. Twice
040
Alex Ozun @alexozun.com · 11/12/2024
Yes, when passing references to class methods in a point-free style. There's a risk of accidentally capturing self which could lead to retain cycles in some cases.
110
Alex Ozun @alexozun.com · 11/12/2024
That said, Typed Throws are not fully released with Swift 6, and part of functionality is still behind FullTypedThrows feature flag. Specifically, the compiler can't infer error types inside code blocks that aren't explicitly annotated with error types (see pic) 3/4
140
Alex Ozun @alexozun.com · 07/12/2024
Loving this "unlock, generously" paywall option 😁
030
Alex Ozun @alexozun.com · 07/12/2024
Honestly, craftinginterpreters.com is the funniest technical book I read in a while. @munificent.bsky.social writing style is 😙🤌
1120
Alex Ozun @alexozun.com · 06/12/2024
But wait, there's more! For Optional Noncopyable types, the "unwrap-then-nullify" requires more ceremony b/c if-let consumes the optional var, and you must prove to the compiler that you've reassigned the optional var in all branches. This isn't needed with take() which reassigns to nil internally.
000
Alex Ozun @alexozun.com · 06/12/2024
A problematic little #swiftlang pattern I often see is "unwrap-then-nullify" for optional values that hold some temp state. This oft comes up when dealing with local caches or scrollOffsets or in-flight tasks, etc. Forgetting to nullify a value to "reset" state is a common mistake. Use take method.
3272
Alex Ozun @alexozun.com · 05/12/2024
This might be my favorite new warning in #Xcode 16! I totally missed SE-0364, so it was a pleasant surprise to see that #swiftlang compiler nows warn about potentially conflicting protocol conformances. This is super helpful for any highly-modularized project (aka freaking all of them these days!).
170
Alex Ozun @alexozun.com · 03/12/2024
Coincidentally (or not?) it's a #️⃣2️⃣ most gifted book on Amazon in its category 😀
210
Alex Ozun @alexozun.com · 30/11/2024
010
Alex Ozun @alexozun.com · 28/11/2024
Last week, our #iOS engineering team at #amex in London had the privilege of hosting a #SwiftUI Workshop by the highly regarded objc.io team, @chriseidhof.bsky.social and Florian Kugler.
3242
Alex Ozun @alexozun.com · 24/11/2024
Dunno how this information evaded me this long, but I learned from @chriseidhof.bsky.social the other day that you can interact with backgrounded apps without bringing them to foreground by CMD-clicking. My life will never be the same. #macOS #mac
55010
Alex Ozun @alexozun.com · 22/11/2024
Had a great time at @nslondon.com event at #Apple shiny new office at Battersea Power Station. The first photo is mine, but the second is from the internet, the security people looked way too intimidating for me to break the no-photo rule 👮‍♂️ Great talks by @oliverbinns.co.uk and @beccais.online
1181
Alex Ozun @alexozun.com · 18/11/2024
Maybe a nitpick, but I dislike that Swift Testing snippet defaults to `async throws` test. I prefer starting with the most restrictive type and extend it as needed. I only noticed half my tests were needlessly async throwing hours later, bc the compiler was silent. #swiftlang #swifttesting #xcode
4140