Available for remote work

I build iOS apps where the camera is the hard part.

Senior iOS engineer, 6+ years. I work below the UI layer on capture pipelines, live streaming and spatial media — the parts of an app that are difficult to get right and expensive to get wrong.

Swift · SwiftUI · UIKit AVFoundation · MV-HEVC WebRTC · LiveKit Remote · International teams

About

Most iOS work is CRUD. Mine isn't.

Plenty of engineers can wire a REST API to a table view. Far fewer have shipped an app where AVCaptureSession has to survive a backgrounded app, a rotated device, a dropped network and a user tapping record at the wrong moment.

That's the work I've spent the last several years on: custom camera experiences, spatial photo and video capture, high frame-rate modes, and real-time streaming built on WebRTC and LiveKit. It's the layer where Apple's documentation runs out and you're reading capture-device capability tables to work out why one iPhone model behaves differently to another.

I've delivered this inside production apps with existing users, which means the constraint is never just "make it work" — it's "add this without breaking the camera that already ships." I'm comfortable owning that risk, writing the migration path, and being the person who explains the trade-off to a founder in plain language.

I work remotely with teams across the US, UK, EU and Australia, as an independent contractor or through platforms like Deel and Remote.

Role
Senior iOS Engineer
Experience
6+ years
Focus
Camera · Real-time video
Primary stack
Swift · AVFoundation
Availability
Contract / Full-time
Working hours
Overlaps US & EU
Engagement
Direct or via Deel

Technical skills

A native-first stack, weighted toward media.

Languages & UI

  • Swift
  • SwiftUI
  • UIKit
  • Objective-C

Camera & media

  • AVFoundation
  • AVCaptureSession
  • MV-HEVC / spatial video
  • Core Image
  • High frame-rate capture

Real-time

  • WebRTC
  • LiveKit
  • Twilio
  • Live streaming pipelines

Architecture

  • Clean Architecture
  • MVVM
  • VIPER
  • SOLID principles
  • Modularisation

Data & backend

  • Core Data
  • Realm
  • Firebase
  • REST / JSON

Graphics & vision

  • ARKit
  • Vision
  • Core Image filters

Cross-platform

  • React Native
  • Native modules (iOS)
  • Bridging Swift ↔ JS

Delivery

  • Git · SPM · CocoaPods
  • TestFlight
  • App Store submission
  • Code review · Mentoring

Experience

Built for production, not demos.

[[ START – PRESENT ]]

Senior iOS Engineer

[[ COMPANY NAME ]] · Remote

  • Own the camera and media layer of a production iOS app, covering capture-session lifecycle, spatial photo and video, and multiple capture modes across device generations.
  • Built real-time streaming features on LiveKit and WebRTC, including capture, orientation handling and video-quality tuning.
  • [[ ADD ONE QUANTIFIED OUTCOME — e.g. crash rate, users, launch scope, review-time reduction ]]
  • Review code and mentor engineers on AVFoundation and iOS architecture.
[[ START – END ]]

iOS Engineer

[[ COMPANY NAME ]] · [[ LOCATION / REMOTE ]]

  • Delivered native iOS features inside React Native products, writing native modules where platform APIs were required.
  • Integrated third-party SDKs and shipped releases through TestFlight and App Store review.
  • [[ ADD ONE QUANTIFIED OUTCOME ]]
[[ START – END ]]

iOS Developer

[[ COMPANY NAME ]] · [[ LOCATION / REMOTE ]]

  • [[ RESPONSIBILITY FROM CV ]]
  • [[ RESPONSIBILITY FROM CV ]]

Selected work

Four problems worth a closer look.

Camera systems

OPIC3D — Spatial Camera

Spatial photo and video capture on iPhone, covering capture-session lifecycle, camera modes, and the media workflow from capture through to playback and sharing.

Swift · AVFoundation
MV-HEVC · Spatial video
Shipped to App Store
View on the App Store ↗

Real-time media

Live Streaming Pipeline

Real-time video built on LiveKit and WebRTC alongside AVFoundation capture — covering orientation, audio engine behaviour, frame processing and video quality under variable network conditions.

LiveKit · WebRTC
AVFoundation
Adaptive quality

Capture pipeline

Advanced Camera Modes

Photo, video, spatial and slow-motion modes in one capture architecture, with device-capability checks and safe session transitions between modes.

AVCaptureSession
120 / 240 FPS
Device capability gating

Education · Cross-platform

Sibme

Video coaching platform for educators — recording, uploading and annotating classroom video, with the iOS capture and playback layer built natively.

Swift · React Native
Video capture & upload
Shipped to App Store
View on the App Store ↗

Case study 01

OPIC3D · iOS · Spatial capture App Store ↗

Adding spatial capture without breaking the camera that already shipped.

Overview

OPIC3D captures spatial photos and video on iPhone and turns them into shareable 3D reels. The camera is not a feature of the product — it is the product, so any regression in capture is a regression in the whole app.

My role

iOS engineer on the capture layer. Responsible for the capture-session architecture, spatial photo and video capture, camera mode transitions, and keeping existing capture behaviour stable while new modes were added.

The challenge

Spatial capture needed to sit alongside the modes users already relied on, on a device fleet where capability differs by model. A naive implementation reconfigures the session on every mode change — which produces visible preview stalls, dropped frames at the moment of capture, and inconsistent behaviour between devices that support spatial capture and those that don't.

Technical approach

  • Built mode switching around a single long-lived AVCaptureSession, batching input and output changes inside beginConfiguration() / commitConfiguration() so the preview never tears down between modes.
  • Gated spatial capture behind runtime capability checks on AVCaptureDevice formats rather than device-model strings, so the feature degrades cleanly on hardware that can't support it.
  • Handled the MV-HEVC output path for spatial media, including the metadata required for correct playback.
  • Made session interruption and lifecycle handling explicit — backgrounding, incoming calls, and route changes — so returning to the app resumes a valid session rather than a black preview.

Key engineering decisions

  • Capability detection at runtime, not by device list — new hardware works without a code change.
  • One session, reconfigured, rather than a session per mode — avoids teardown latency at the exact moment users expect the camera to be ready.
  • Capture logic kept out of view controllers so it could be reasoned about and tested independently of the UI.

Technologies

SwiftAVFoundation AVCaptureSessionMV-HEVC Spatial videoUIKit

Results

[[ ADD REAL OUTCOME — e.g. shipped to the App Store on [date]; spatial capture available across [N] modes; crash-free sessions at [X]%; capture-related support tickets down [Y]%. Use one number you can defend in an interview. ]]

What I took from it

On camera work, the expensive bugs are almost never in the capture call itself — they're in state transitions. Mode switches, interruptions, and orientation changes are where a capture pipeline actually fails, so that's where the architecture has to be deliberate.

Case study 02

Sibme · iOS · Video capture & upload App Store ↗

Reliable classroom video capture on unreliable school networks.

Overview

Sibme is a video coaching platform for educators: teachers record classroom sessions, upload them, and coaches annotate the footage with time-stamped feedback. The recording is often long-form and captured somewhere with poor connectivity.

My role

[[ CONFIRM YOUR SCOPE — e.g. iOS engineer responsible for capture, upload and playback; or feature-level ownership of X. Be specific about what you personally built. ]]

The challenge

[[ DESCRIBE THE REAL PROBLEM YOU HIT. A strong version names the failure: e.g. "long recordings were failing to upload over school Wi-Fi, and a failed upload lost the recording entirely." ]]

Technical approach

  • [[ WHAT YOU BUILT — e.g. background upload via URLSession background sessions, chunked/resumable transfer, local persistence of recordings until upload confirmed ]]
  • [[ WHAT ELSE — e.g. playback with time-stamped annotation sync ]]
  • [[ WHAT BROKE AND HOW YOU FIXED IT — this is the most valuable line on the page ]]

Key engineering decisions

  • [[ A TRADE-OFF YOU MADE AND WHY ]]
  • [[ AN ALTERNATIVE YOU REJECTED AND WHY ]]

Technologies

SwiftAVFoundation React NativeURLSession [[ ADD / REMOVE ]]

Results

[[ ADD REAL OUTCOME ]]

What I took from it

[[ ONE HONEST LESSON ]]

Working together

What you get when you hire me.

Depth where it's scarce

Camera pipelines, spatial media and real-time video are narrow specialisms. If that's where your product's difficulty lives, you're hiring someone who has already made these mistakes on a shipping app.

I ship through review

Apple rejects for things Google never checks — privacy labels, account deletion, guideline 4.2. I handle submission end-to-end rather than handing you a build and disappearing.

Care for the existing product

Most of my work has been adding capability to apps that already have users. I plan for the regression risk before writing the feature, not after the crash reports arrive.

Written, not just verbal

Async by default. You get scope in writing, trade-offs explained in plain language, and progress you can read without booking a call across time zones.

Contact

Building something difficult on iOS?

I'm open to senior remote roles and contract work — particularly anything involving camera capture, live video or spatial media. Send me the problem and I'll tell you honestly whether I'm the right person for it.

Available now Remote · Worldwide Contract or full-time Replies within 24h
© 2026 Bazil Hassan — Senior iOS Engineer Back to top ↑