I've been building iOS software since 2010: Objective-C first, with deployment targets going back to iOS 3 under manual memory management, and Swift since version 1.0.
Most of my work has been on the parts other engineers build on. I built an Objective-C library pairing a PIN Entry Device with a bank's payment APIs over Bluetooth, through a proprietary binary protocol. At ASOS I worked on the app's API framework, a separate module with its own test suite, consumed across an app past ten million downloads. At Boppl I rewrote an inherited Objective-C app in Swift as sole author, starting when Swift was three months old, and split it into frameworks to ship white-label builds for 32 venue clients with per-client signing and CI.
My last role was iOS technical lead at IRL, a US company, fully remote, the final eighteen months from Italy. I joined as the third iOS engineer and left leading five, still hands-on and reviewing nearly every pull request. Most of that work was extracting a monolithic app into modular Swift packages while it kept shipping: I authored six of the eight, including the design system every feature team built on, and moved the app from CocoaPods onto Swift Package Manager.
Before that I led a two-engineer team building MoneySuperMarket's Credit Monitor from scratch in six months, a credit-file and identity-verification product, winner of The Drum Mobile Awards 2019. I designed it around a unidirectional state machine with a pure reducer, an architecture I presented at Equal Experts' mobile practice eleven months before SwiftUI shipped.
After a career break (a sabbatical, then full-time care for my son) I came back through a personal project: a Swift 6 and SwiftUI game built largely through AI agents under my direction. I set the architecture, standards and review bar; several agents run at once, each isolated in its own git worktree and converging through a reviewed pull request. Its packages are separated by concern, with a SwiftUI app and a terminal UI over the same engine, so the rules stay testable without a view.
What I care about shows up throughout: type systems that make wrong code fail to compile, tests written as part of delivering a change rather than after it, and API surfaces designed for the people who have to live with them. I've been arguing about those things publicly in the Swift Evolution forums since the language went open source in December 2015, in pitches and proposal reviews on generics, existentials, typed throws and concurrency, under the handle DeFrenZ.
I'm near Rome, work fully remote, and am fine with quarterly travel. I'm looking for senior individual-contributor work (tech lead or staff is fine, people management isn't what I want) with a particular interest in SDKs, developer-facing libraries and platform teams. Open to employment or B2B contract.
