Paul Samuels's Avatar

Paul Samuels

@paulio87

31
Followers
146
Following
23
Posts
14.12.2024
Joined
Posts Following

Latest posts by Paul Samuels @paulio87

Hacking with Ktor · paul-samuels.com

I built a tiny Ktor reverse proxy that forwards Snowplow events and pushes real-time updates over WebSockets to a debug UI.
All the best side projects start with “this should be easy… right?” 😅

paul-samuels.com/blog/2026/02...

#kotlin #ktor

03.02.2026 00:20 👍 0 🔁 0 💬 0 📌 0
Call Once · paul-samuels.com

Exploring a Call Once property wrapper in Swift using parameter packs.

paul-samuels.com/blog/2026/01...

#swift #propertyWrapper #parameterPacks

30.01.2026 02:18 👍 3 🔁 3 💬 0 📌 0
Make nice tools · paul-samuels.com

Finally wrote up the story of a local dev tool I’ve been poking at for ~4.5 years. Lots of lessons about DX, removing friction, support pain and why “just works” matters more than features.

paul-samuels.com/blog/2026/01...

#compose #kotlin #docker #swift #swiftui

16.01.2026 01:54 👍 2 🔁 0 💬 1 📌 0
From Runtime Explosions to Compiler Checked Simplicity · paul-samuels.com

Sometimes solving a problem isn't about more code, it's about asking the right question.
Step back, reframe and you might find a simpler solution.

Here's a recent example exploring KSP generated Kotlin code and Kotlinx.Serialization: paul-samuels.com/blog/2025/12...

#kotlin #ksp

22.12.2025 00:59 👍 2 🔁 0 💬 0 📌 0
Kotlin Gotchas: Why Your ?.let Sometimes Fails to Compile · paul-samuels.com

💡 Kotlin devs: ever had `?.let` mysteriously fail to compile?

I dug into a subtle Kotlin mistake I commonly see in pull requests, explain the issue and how best to fix it.

📝 New post: Kotlin Gotchas: Why Your ?.let Sometimes Fails to Compile

🔗 paul-samuels.com/blog/2025/11...

#Kotlin

09.11.2025 00:04 👍 2 🔁 0 💬 0 📌 0
Generic Algorithms Without Constraints · paul-samuels.com

We often reach for interfaces or base classes when we see duplicated code.

But what if you can’t change the types?

You can still make the algorithm generic - just teach it how to read and build data.

📝 Generic Algorithms Without Constraints

🔗 paul-samuels.com/blog/2025/11...

#swift #kotlin

07.11.2025 02:21 👍 1 🔁 0 💬 0 📌 0
Do Ya Still Need It · paul-samuels.com

🧹 DYSNI — Do Ya Still Need It?

We deleted >800 lines of old Objective-C by asking one simple question: Do Ya Still Need It?

Simpler code. Less confusion. More clarity.

👉 paul-samuels.com/blog/2025/10...

#CleanCode #Refactoring #DYSNI #Swift #ObjC

29.10.2025 23:23 👍 1 🔁 0 💬 0 📌 0
Git Rebase Tips and Tricks · paul-samuels.com

New post: Git Rebase Tips and Tricks

Habits and commands that make rebasing smoother - from keeping merge bubbles to verifying results and fixing mistakes.

paul-samuels.com/blog/2025/10...

#git #rebase #devtools #programming

29.10.2025 01:26 👍 2 🔁 0 💬 0 📌 0
Sometimes a Great DX Is Just a Horrible Pop Up · paul-samuels.com

Great DX isn’t always a slick UI - sometimes it’s a horrible popup that saves you hours.

I built a pop up that yells when local OAuth tokens expire and I love it.

paul-samuels.com/blog/2025/10...

#DevExperience #Kotlin

28.10.2025 00:57 👍 0 🔁 0 💬 0 📌 0
Chill Out with the Defaults · paul-samuels.com

Default arguments in Swift and Kotlin can make code cleaner - but at what cost? I explore how overusing them can weaken compiler checks, obscure intent, and blur boundaries between layers. Sometimes, being explicit is better.

paul-samuels.com/blog/2025/10...

#Swift #Kotlin

26.10.2025 02:00 👍 0 🔁 0 💬 0 📌 0
Self-hosting a Vapor app on a Raspberry Pi · paul-samuels.com

Might be more server side adjacent but I wrote this paul-samuels.com/blog/2025/08...

30.09.2025 12:45 👍 1 🔁 0 💬 1 📌 0
Explaining Regex Locally with Xcode · paul-samuels.com

The only Xcode refactoring tool I actually use? Explaining regex - no sketchy web tools required.

paul-samuels.com/blog/2025/09...

28.09.2025 17:16 👍 0 🔁 0 💬 0 📌 0

I had a similar issue years ago - if I used AirPods Max when developing the audio bitrate was as if it was a cheap Bluetooth headset for phone calls. Got no help when reached out to Apple (disappointing as it was a brand new M1 and their flagship headphones). Solution was just use phone for music

21.09.2025 07:18 👍 0 🔁 0 💬 0 📌 0
Turning CI Logs into Actions · paul-samuels.com

I wrote a post on turning CI logs into actions

The general idea is to wrap your existing build scripts with a tool that can parse the logs for specific JSON payloads and then perform actions like comment on GitHub PRs, ping slack channels etc.

paul-samuels.com/blog/2025/09...

#swift

07.09.2025 22:51 👍 1 🔁 0 💬 0 📌 0
Self-hosting a Vapor app on a Raspberry Pi · paul-samuels.com

I wrote a post on self hosting a Vapor app on a Raspberry Pi

paul-samuels.com/blog/2025/08...

#swift #vapor

19.08.2025 22:38 👍 4 🔁 1 💬 0 📌 0
Subtle retain cycle is subtle · paul-samuels.com

I wrote a post on a crafty little retain cycle in Swift, finding it and breaking it

paul-samuels.com/blog/2025/06...

#swift

19.06.2025 22:18 👍 2 🔁 0 💬 0 📌 0
KSP and Me · paul-samuels.com

I wrote a post on my experience of using Kotlin Symbol Processing in various ways over multiple years.
I cover how I like to structure my code and give example use cases for how we utilise KSP in our projects.

paul-samuels.com/blog/2025/06...

#kotlin #ksp

16.06.2025 22:56 👍 2 🔁 0 💬 0 📌 0

This is the current sweet spot we use it for. We have several bits of sharing like backend code generated for JVM and JS so we can run in webviews on the clients and native JVM in the backend. We also share types/serialisation between backend, Android and iOS to create a compile time contract

28.04.2025 06:44 👍 2 🔁 0 💬 0 📌 0

It’s situational but I work on a team ~10 iOS ~10 Android and we all work on our core platform and backends so tooling keep things consistent and avoiding pointless discussions on PRs or people causing churn reformatting stuff constantly is worth not having my own personal style

09.04.2025 20:05 👍 2 🔁 0 💬 0 📌 0
CustomTestStringConvertible · paul-samuels.com

Here's a post on making sure your SwiftTesting parameterised tests show up in the test navigator with nice names using `CustomTestStringConvertible`

paul-samuels.com/blog/2025/03...

#swifttesting #swift

25.03.2025 00:52 👍 1 🔁 0 💬 0 📌 0
Building Complex Things · paul-samuels.com

I wrote a post on "Building Complex Things" talking about virtualising macOS machines for iOS CI paul-samuels.com/blog/2025/03...
#iOS #macOS

03.03.2025 01:40 👍 1 🔁 0 💬 0 📌 0

It generates library files with ObjC interfaces that you can import into Swift. They are currently working towards native swift interop I believe. There are also libraries that help bridge things like coroutines to async/await and flows to AsyncSequences etc

26.02.2025 19:39 👍 0 🔁 0 💬 1 📌 0

“Best” is very situational in what you need and how your team is structured. We have had really good success with Kotlin Multiplatform - all our Android devs obviously know Kotlin and Swift/Kotlin are syntactically pretty similar and have fairly equal language features.

26.02.2025 01:40 👍 3 🔁 0 💬 2 📌 0