Build the mobile capture experience that turns real-world spaces into interactive 3D environments. The product uses phones, 360° cameras, and drones to capture physical environments for documentation, measurements, progress tracking, and collaboration.
Responsibilities:
- Build ARCore-based workflows for scanning real-world environments and own core parts of Android capture and spatial tracking.
- Collect and synchronize camera frames, IMU measurements, location updates, and ARCore poses for 3D reconstruction.
- Handle tracking loss, relocalization, interruptions, motion blur, low light, and device variability.
- Design capture guidance for non-technical users and optimize long capture sessions for performance, battery, and thermal constraints.
- Manage media files, background processing, uploads, retries, and synchronization; debug device-specific issues and shape architecture for new capture modes.
Requirements:
- Have shipped at least one ARCore-based product used by real users.
- Strong production Android development experience and excellent Kotlin skills.
- Deep understanding of ARCore sessions, tracking, camera poses and transforms, coordinate systems, anchors, camera intrinsics, and device orientation.
- Experience collecting phone sensor data and synchronizing streams with different timestamps, sampling rates, latencies, and dropped samples.
- Production experience with Camera2, ARCore Shared Camera API, MediaCodec, and hardware video encoding.
- Strong understanding of concurrency, memory management, application lifecycle, and performance optimization.
Useful additional experience: visual-inertial odometry (VIO), SLAM, C++/Android NDK, ARCore Depth API, ARCore Recording & Playback API, and on-device ML—especially depth estimation or mesh generation without LiDAR.
Benefits: Substantial ownership and influence over Android architecture, product experience, and spatial capture technology as part of a small team.