ARKit, visionOS, and on-device ML
— done right.

Senior iOS consultant specializing in spatial computing, RealityKit, and Mobile MLOps. I rescue production AR apps and ship the visionOS work other teams can't.

Available for audits, fixed-scope rescues, and 3–6 month visionOS / Core ML projects. Typical engagement: $8k–60k.

Previously shipped iOS / AR work with:

The Stepstone GroupVarjoApplandeoDevinitiFORMProExe

Sound Familiar?

Performance Issues

Your app is slow, laggy, or draining battery. Users are complaining and ratings are dropping.

Production Crashes

App crashes in production. Can't reproduce locally. Deadline looming and stakeholders are worried.

Technical Debt

Previous developers left a mess. The codebase is unmaintainable and every fix creates two new bugs.

8+ Years

iOS Experience

50+ Apps

Shipped to Production

Published

CNN sign-language paper

Since Launch

visionOS + RealityKit production code

Mobile MLOps Engineer
ARKit Specialist
Published Researcher
Conference Speaker

What I'm Useful For

Production rescue

Your AR app crashes for 5% of users and you can't reproduce it. ARKit session lifecycle audit, memory profiling on real hardware, and a targeted fix — without rewriting the codebase.

visionOS launch

You have an iPad or iPhone app and need a visionOS version that doesn't look like a port. RealityKit, spatial UI, and immersive interactions built from scratch — not lifted from a UIKit screen.

On-device ML rollout

You can't send data to the cloud — RODO, HIPAA, or trade-secret constraints. Core ML pipeline, model quantization, Neural Engine targeting, and inference optimization that ships on device.

How I Actually Work

Diagnosis before code

Most ARKit and RealityKit bugs don't reproduce on the developer's machine because they aren't really bugs — they're lifecycle, memory, or session-config issues that only surface under real-world device thermals, backgrounding, and ARSession resets. A real audit starts with Instruments (Allocations, Time Profiler, Metal System Trace), os_signpost logs around session delegate transitions, and on-device profiling on the exact hardware your users are running. The diagnosis usually takes a few days. Writing the fix takes hours.

Fix, don't refactor

Scope-creep is what kills rescue engagements. I commit to a fix window with a clearly defined problem statement, deliver the fix, and leave the codebase measurably better than I found it — but I don't rewrite the architecture on your dime. If the codebase needs a deeper overhaul, that's a separate, separately-scoped engagement, and I'll tell you that upfront instead of quietly billing for it.

Knowledge transfer included

Every engagement ends with a written technical document: what was broken, why it broke, what I changed, and what your team should watch for to prevent regression. Most contractors hand back a PR and disappear. I hand back a PR plus the reasoning, so the next person on the codebase — including future you — doesn't have to re-derive it.

Latest Technical Deep Dives

ARKit

Why Your ARKit App Crashes After 5 Minutes

·8 min read

Memory management in ARKit is tricky. Learn the hidden patterns that cause delayed crashes and how to detect them before your users do.

Performance

3 Hidden Memory Leaks in RealityKit

·10 min read

RealityKit's resource management has subtle gotchas that even experienced developers miss. Here are the three most common culprits.

visionOS

visionOS Migration: What Every Developer Gets Wrong

·9 min read

Migrating to visionOS isn't just about supporting a new device. These common mistakes will cost you weeks of debugging.

Ready to Fix Your iOS App?

Book a free discovery call or download the emergency debugging guide

Engagements typically start at $8k for a scoped audit and run up to $60k for full rescues or 3-month builds.