Mobile apps
Native iOS and Flutter, held to a security bar most internal tools never reach.
A customer's name cannot end up in a log file. Not should not. Cannot.

A new-hire onboarding app on Clean Architecture, with module boundaries enforced by SPM rather than by convention: Domain compiles against Foundation alone and the tests run against it in isolation. Entra ID sign-in through the Microsoft broker. An AI concierge on Apple's on-device Foundation Models, so nothing leaves the phone. Secure Enclave biometric ACLs on the keychain, SPKI certificate pinning with a backup pin, and a sealed log taxonomy that makes writing an unmasked name or ID into a log impossible rather than discouraged. OWASP MASVS L2 and Swift 6 strict concurrency throughout. Separately, a tournament companion driving Lock Screen Live Activities and all three Dynamic Island states over APNs, with 104 fixtures, 16 host-city guides, and no analytics SDK of any kind.
- Swift 6
- SwiftUI
- ActivityKit
- WidgetKit
- MSAL / Entra ID
- Foundation Models
- Flutter
