Carv

The Carv system helps skiers improve their technique by providing real time audio feedback while they’re on the slopes, statistical data analysis and other training tools and content. Using pressure and motion sensors which are are placed inside the ski boots, in addition to the sensors contained in the users’ mobile phones, Carv collects a variety of different data about the user’s movements as they ski. That data is passed into a shared module written in Rust, embedded in the Carv mobile app, which then crunches it through various models which have been trained on millions of ski turns that have been collected over the years. The engine then drives real-time audio feedback, delivered by the iOS and Android mobile apps, and provides access to the statistical data and training content for consumption by the user in app after when not actively skiing. The skier’s technique is broke down into a variety of metrics, belonging to 4 categories: Balance, Edging, Rotary, Pressure. For each of the metrics (things like ‘Outside Ski Pressure’ or ‘Max Edge Angle’) the user is given a score for each turn, and segment, of skiing. Their scores in the various metrics are aggregated into an overall summary score, and the app enables the user to look at their performance at varying levels of details – from the turn and segment level, up to day-by-day progress analysis charts.

Since joining Carv the product has seen huge growth, both in terms of its feature set and users (which have more than doubled). During this time, as well as delivering features on the product roadmap, I’ve worked on a variety of infrastructure projects:

• Implemented an MVVM-C architecture across the app
• Contributed to Rust cross-platform modules
• Added Unit and UI testing (where there was previously none)
• Incrementally migrated to SwiftUI for the predominantly UIKit frontend
• Incrementally migrated to Combine (and Async/Await) from RxSwift for managing concurrency
• Added support for Universal links (to allow deep linking from various of sources)
• Push notifications