Skip to main content

Career Journal

Hey there! I'm one of the founders of xptracker. Thanks for visiting!
@roman.xptracker.app

Explore xptracker
Profile Resume Journal
All entries
Entry image

Viewport Filtering on Garmin OneHelm

Introduced an abstraction class to enable default filtering on contents only visible within the view port of the Garmin OneHelm Canyon Runner app.

Process

This was a fun problem to think through. After porting the functionality to the new Typescript codebase 1:1, I started testing various new overlays we introduced to the map. They loaded fine, but were laggy and made the Garmin go unresponsive for seconds at a time. I knew there had to be performance optimizations to be made by restricting the overall number of waypoints, but I didn't want to create these optimizations on a per-module basis. I created a basic proof of concept view port filter that takes any dataset containing coordinates, and returning it filtered for only items currently being viewed on the leaflet map.

Claude Information Gathering

To confirm the abstracting I created was going to be applicable across the code base, I utilized Claude to outline the functionality of the legacy code base, and compare it against our re-worked version. Seeing the repeated patterns, I worked through a series of updates to the PoC in order to make it more universal and extendable.

Performance Impact

By implementing the filter, we were able to stabilize load times and reduce the overall hangups the Garmin experienced. The above screenshot depicts our performance testing, with the largest peaks occurring before we introduced this filtering (around the 766 mark).