Whistle
needed a coaching layer that could do more than display workouts on a calendar. The Coach
project explored how an AI assistant could understand intent, remember training context,
and turn progress data into guidance that feels timely, personal, and easy to act on.
Coach opening placeholder showing the first conversational entry point.
Coach data analysis placeholder showing training context being reviewed.
To create a truly personalized coaching experience, we needed to design a system that felt
less like an app and more like a human partner. We focused on long-term memory as a core
design pillar, allowing the coach to build a dynamic model of the user's goals and
conversation history. This ensures every interaction feels continuous, relevant, and
naturally guided toward their fitness journey.
We designed the daily and post-workout summaries to deliver high-level insights the moment
a user opens the app. By generating these progressively throughout the day, we eliminated
loading friction. Key data points are surfaced using a structured chip system, allowing
users to instantly understand their progress without reading dense text.
To keep the experience engaging, the coach delivers playful, contextual notifications that
celebrate accomplishments by anchoring current workouts against past performance, making
every milestone feel meaningful.
Summary load animation placeholder showing a generated daily coaching summary.
Workout anchors placeholder showing current performance compared with previous work.
I took ownership of this project from design through development and release. The work was
end to end: running user interviews, designing the system, implementing it, and shipping it.
By combining long-term memory with progressive, low-friction summaries, we transformed the
coaching experience from a static data dashboard into a dynamic, human-like partnership.
The result is an intelligent system that grows with the user, making their fitness journey
feel continuously supported and uniquely their own.
Weather
Outdoor workouts depend on conditions that change by the hour, but most weather interfaces
ask athletes to interpret raw forecasts themselves. Weather for
Whistle
reframed the forecast around the actual training decision: when conditions are right, risky,
or worth adjusting for.
When designing the weather experience for outdoor workouts, our goal was to reduce cognitive
load by surfacing only the most actionable data. Instead of overwhelming users with raw
meteorological data, we designed a high-density weather chart that allows athletes to assess
conditions at a glance.
Weather detail animation placeholder showing hourly conditions in the app.
Weather in workout detail placeholder showing forecast context next to a workout.
To make this data immediately relevant, we process hourly forecasts into clear,
workout-specific summaries such as "Perfect Conditions," "High Wind," or "High UV." This
allows users to instantly understand how the weather impacts their specific exercise without
having to decipher raw numbers.
To further streamline the decision-making process, we introduced Best Times. By analyzing
complex weather parameters against ideal workout conditions, we automatically rank and
surface the optimal windows for exercise throughout the day. This shifts the user experience
from passive data consumption to proactive, guided planning.
Chart scrubber placeholder showing interactive forecast exploration.
Best times placeholder showing ranked workout windows.
I took ownership of this project from design through development and release. The work was
end to end: running user interviews, designing the system, implementing it, and shipping it.
Ultimately, the weather feature shifts the user experience from passive data consumption
to proactive, guided planning. By translating raw meteorological data into
workout-specific insights, we empower athletes to make quick, confident decisions about
their training, letting them focus on the workout, not the forecast.
Rewind
Rewind was a hackathon prototype for Meta smart glasses that explored a provocative
question: what if wearable capture could become a searchable memory layer? The project
tested continuous visual indexing and multimodal recall while making the privacy tension
impossible to ignore.
During the Start Hack Hackathon, we developed an application for Meta smart glasses that
continuously captures the wearer's visual environment, utilizing an embedding model to
seamlessly index and organize the data.
The application also features a live mode designed for next-generation augmented reality
displays. By continuously processing real-time audio and video feeds, the system
intelligently distinguishes between moments the user wants to save and active search
queries. Users can simply ask, "Where did I leave my keys?" to instantly retrieve the
relevant visual memory, or point at an object and verbally confirm they want to remember it.
Capturing animation placeholder showing real-time memory capture.
Search animation placeholder showing a memory query resolving into a result.
I worked together with Riccardo Bussetti on this hackathon project. He took over the backend
and I designed and built the iOS app. The project won the community award.
Community award win photo placeholder showing the hackathon result.
Rewind prototype demo placeholder showing the working smart glasses app.
Ultimately, Rewind transforms passive wearable capture into an active, intelligent memory
assistant. By combining continuous background indexing with intuitive, multimodal
interactions, we created a seamless way for users to offload cognitive load and recall
daily experiences. As a technology demonstration, it also highlights significant privacy
concerns and suggests that a tool of this nature should not exist in an unrestricted form.
Training Load
Training load can help athletes progress safely, but the raw metrics are hard to translate
into everyday decisions. This Whistle project turned exertion, workout history, and near-term
predictions into an interface that helps users understand when to push, adapt, or recover.
Designing the training load feature was centered on translating complex physiological data
into actionable, user-friendly insights. The goal was to create an intuitive interface that
empowers athletes to balance their exertion and progress safely, removing the guesswork from
their daily training decisions.
Training load detail placeholder showing the main load interface.
Training load prediction chart placeholder showing the next seven days.
To make the data truly valuable, we designed a predictive model that forecasts the next
seven days of training load based on individual workout metrics like distance, time,
calories, and effort. This shifts the user experience from simply reviewing past performance
to actively planning a safe, sustainable progression.
Workout predictions placeholder showing forecasted strain from upcoming workouts.
Training load planning placeholder showing how predictions guide schedule changes.
I worked closely with my cofounder Clemens Scholz on this project. Clemens kicked off the
project and did the initial research and backend implementation. After that, I took over to
create the final interface.
Ultimately, the Training Load feature bridges the gap between raw data and human
intuition. By focusing on clarity and proactive planning, we transformed a potentially
overwhelming set of metrics into a trusted companion for athletes, empowering them to
train smarter, avoid injury, and achieve their goals with confidence.
Insights
Peaks Insights turned sleep, recovery, and overnight health signals into a clearer picture
of day-to-day wellbeing. The project focused on making complex personal data understandable
enough to guide behavior, not just report what happened while the user was asleep.
The Insights feature in Peaks was designed to transform abstract sleep data into a
meaningful, holistic overview of the user's well-being. Rather than just displaying numbers,
the interface focuses on actionable intelligence that helps users understand the interplay
between rest, recovery, and daily life.
When designing a composite score, we always start with the core user goal: shifting behavior.
For sleep, the objective was to help users build a stable circadian rhythm. We carefully
weighted the underlying metrics to prioritize consistency, ensuring the interface naturally
guides users toward healthier habits.
Sleep detail animation placeholder showing the composite sleep score.
Recovery score animation placeholder showing rest in relation to exertion.
The Recovery Score visualizes how well-rested a user is in relation to their physical
exertion. By connecting rest directly to exercise, the design helps athletes intuitively
understand when to push harder and when to pull back.
Vitals provide a baseline for general wellness by tracking overnight physiological signals.
The design focuses on subtle, early indicators, allowing users to spot potential illness
before it fully manifests.
As a key driver of circadian health, regularity needed a prominent place in the app. We
intentionally placed more weight on the wake-up time, the one variable users have the most
direct control over, empowering them to take charge of their rhythm.
Regularity detail placeholder showing wake-time consistency.
Smart wake up placeholder showing rhythm-aware wake timing.
I worked closely with my cofounder Clemens on this project. He created the backend for
vitals and the recovery score while I worked out the interface and the sleep and regularity
scores. The work was designed on paper, then built using Swift and SwiftUI.
The Peaks Insights are more than statistics; they are a behavioral tool. By carefully
curating which metrics to highlight and how they are weighted, we created an experience
that does not just inform the user, but actively supports their journey toward better
health and self-awareness.
FeatherKit
FeatherKit is the design system behind Vogelhaus apps. Version 5 focused on the shared
foundations, component logic, surface styling, navigation, and shader effects that let
multiple products feel consistent while still adapting to their own context.
At Vogelhaus we build multiple apps that share the same technologies. This includes
RevenueKit for purchases, InsightsKit for tracking and A/B testing, and ServerKit for the
backend. The kit we have been working on the longest is FeatherKit, the design system that
powers our apps.
The most fundamental parts of FeatherKit are the colors and text styles. They integrate well
into the system, and custom modifiers coordinate accent colors for components as well as
color styles for surfaces. The context a component is shown in is passed by modifiers that
change its appearance.
Surface style placeholder showing contextual color and surface treatment.
FeatherKit tint placeholder showing accent color coordination across components.
Components have their style and logic split. This makes it easy to validate the logic while
creating multiple styles for the same component. A picker can come in various shapes and
forms, including simple lists, cards, or circles for icon pickers. The logic is always the
same; only the presentation changes.
Components are aware of each other. Lists in groups render differently, as do lists in
buttons. Groups understand their nesting level and padding so the correct corner radius can
be set automatically.
Picker placeholder showing one logic model across multiple visual treatments.
Slider placeholder showing a reusable control style.
Since the introduction of shaders in SwiftUI, we are building a library that is used to add
life into our apps in various ways. Shaders allow for more expressive effects, and you can
find them throughout our apps.
The navigation stack coordinates sheets, banners, and alerts that sit higher in the view
hierarchy.
FeatherKit navigation sheet placeholder showing coordinated modal presentation.
FeatherKit banner placeholder showing a global transient message.
FeatherKit 5 turns shared design work into product infrastructure. By separating behavior
from presentation and letting components respond to context, the system gives every
Vogelhaus app a consistent foundation without forcing every interface to look identical.
Peaks
Peaks centers on circadian rhythm: an ambient model of how energy changes across the day.
This project translated that biological pattern into glanceable guidance across the app,
widgets, and watch surfaces so users could plan around their rhythm without constantly
opening the app.
The circadian rhythm serves as the foundational element of Peaks. It visualizes the user's
daily energy fluctuations, transforming abstract biological data into actionable, glanceable
guidance.
To make the data meaningful, the design surfaces Influences, the external factors like
exercise, caffeine, or melatonin that shift the user's natural rhythm. By visualizing the
cause-and-effect relationship of these actions, the interface empowers users to consciously
shape their daily behavior. Optimal Times further contextualizes this data by highlighting
ideal windows for focus, exercise, or winding down, allowing users to align their schedule
with their biology.
New rhythm design placeholder showing the main circadian visualization.
Optimal times placeholder showing ideal windows for focus, exercise, and rest.
Because the circadian rhythm is inherently passive and slow to shift, the core UX challenge
was building awareness without creating friction. The design utilizes glanceable,
low-footprint widgets across iOS and watchOS, including the Smart Stack, to normalize the
user's biological states such as the afternoon dip, reframing them as natural rather than
unproductive. By leveraging relevance APIs, the interface intelligently surfaces these
widgets at the most impactful moments throughout the day, ensuring the rhythm remains a
helpful, ambient guide without requiring active engagement.
Widget presentations placeholder showing iOS and watchOS rhythm surfaces.
Smart Stack placeholder showing rhythm guidance surfaced at the right moment.
I worked closely with my cofounder Clemens on this project. We ran many interviews to find
the direction and designed the interface together. He created the backend for the rhythm
calculations while I implemented the interface. The work was designed in Figma and built
using Swift, SwiftUI, and WidgetKit.
Ultimately, the design of Peaks shifts the focus from rigid productivity tracking to
biological awareness. By translating complex physiological data into intuitive, glanceable
interfaces, the experience fosters a healthier and more sustainable relationship with how
users manage their daily energy.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vitae
arcu sed risus facilisis cursus. Mauris dignissim, nibh at posuere
malesuada, mi erat faucibus massa, vitae vulputate libero neque in
erat. Sed vitae tortor at sapien tempor gravida. Donec ac neque eu
tortor fermentum gravida.
Praesent tincidunt ligula nec mi consequat, at dictum lorem porta.
Nullam a tellus in turpis suscipit interdum. Curabitur volutpat, sem
in tristique tincidunt, nunc urna placerat lectus, vitae dapibus risus
ipsum sit amet nibh. Suspendisse potenti.
Vivamus gravida velit ut lacus ullamcorper, non commodo nisi luctus.
Etiam sit amet turpis vel ligula lacinia porttitor. Aliquam erat
volutpat. Morbi tempor massa at eros gravida, nec sagittis justo
finibus. Donec pretium, justo non tristique ultricies, risus erat
sagittis lacus, at lacinia mi arcu vel augue.