Back to Projects
October 2021 - April 2026

Working At Under Armour

A brief overview of my time at Under Armour and what I learned and accomplished while there.

FrontendSoftware EngineerCMSAmplienceCoreMediaTealiumReactGraphQLWorkRelease Management
120+
Tickets Delivered
5
Repos Contributed To

I worked at Under Armour as a Frontend Software Engineer for just over 4.5 years. During my time there I spanned a number of teams, starting with the datalayer and tag governance team (working in Tealium and JS for tagging and analytics), worked on the frontend team contributing to an ecommerce replatform to a Next.js and React based website, to working on the content team tasked with integrating, fixing and updating CMS components that came from CoreMedia and later Amplience. I worked on 120+ tickets that spanned 5 different repositories, all with very different contexts to learn.

Datalayer and Tag Management

This was a new domain for me coming over from my last job where we leveraged Google Tag Manager as our main source of analytics and tagging management rather than Under Armour where Tealium was the main source. Tealium was a much more robust product that had years of setup already behind it, so I was coming in to learn an entirely new territory. I won't go into the details since it's already been a number of years since I was in that space, but I definitely learned a lot about the sequencing of tags and transforming and calculating data values for specific vendor tags.

Under Armour Ecommerce Replatform

I joined into the replatform project at Under Armour about a year after the PoC was created and work was rapidly ramping up to migrate everything to the new Next.js and react platform. Within the platform I worked on elements ranging from the add to cart button state management, analytics actions for buy online-pickup in store modal, and various UI/visual updates across saved items, order history, navigation item display. The add to cart button in particular taught me a great deal about the state management required for something as simple as it since it was necessary to take into account: the button's local state (idle, loading, success, failure), the server state (product availability always shifting and being asynchronously fetched), and the button's derived state (label, appearance, enabled/disabled).

Under Armour Content Team

A large majority of my time at Under Armour was on the content team, where we worked on integrating and updating components in relation to our CMS (CoreMedia, and later Amplience). This was new to me since this was a much more focused range of work compared to working on anything and everything that was needed for the replatform. I found myself instead being able to really drill down into how the individual components were setup and trying to get them to as-pixel-perfect as possible to what we were given by our UX team, which is something I've always enjoyed doing. I gained a deeper amount of experience in how to work with GraphQL as well as how the headless CMS even worked as I took over some our CI/CD with CoreMedia where I managed the releases from week to week. I played a pivotal role in re-enabling our ability to use video assets in several of our content components where I had to handle 4 different potential video player entry points, as well as loading and file size optimizations to ensure that we weren't bringing down our page loading speed by working closely with DAM (dynamic asset management) partners.

Another large part of my role was the re-implementation of proper analytics tracking for content modules on site. We had a very old setup that relied on just grabbing attributes off of clicks and HTML objects that wasn't giving a clear picture of what the customer was interacting with and if that even led to a conversion. I created and implemented the analytics tracking infrastructure in our codebase to utilize a structured object of all relevant data for the content that would simply work as long as a simple hook was added to it's relevant locations.

The last thing I want to highlight was a new component I added shortly before parting with Under Armour. I can't be specific since it isn't live on Under Armour's site yet, but I got to implement a component from start to end working through Amplience to our GraphQL layer (with me handling all the GQL transformations myself) to building the whole frontend component with the main content coming from another API. I'll post images and videos of it as soon as available.