Nike: store-server upgrades from 6-8 hours to about 3, eight at a time

600+ engineering hours a year saved with self-service CI/CD and release automation

Client
Nike, retail engineering
Scale
900+ stores
Stack
Jenkins, AWS, Azure, Python, Groovy, Ansible, Bash, Ruby, Jamf
Role
Platform engineer
Duration
3.5 years, across several projects

The situation

Nike's retail engineering teams ship software that has to work across 900+ stores. Store-server upgrades ran by hand across five teams: 6 to 8 hours per server, and only 2 servers could be upgraded safely at the same time. Releases depended on hand-offs, manual checks and one-off scripts, which slowed delivery and caused avoidable incidents.

Before and after

Before After
Store-server upgrade, per server 6 to 8 hours about 3 hours
Servers upgraded safely at the same time 2 8
Teams involved in an upgrade 5, by hand 1 self-service pipeline
Mobile app and bot provisioning 45 minutes of hands-on work about 3 minutes
Quarterly test-driver update about 2 hours under a minute
Recurring device-profile repair, several times a week by hand one click
Engineering time on this work 600+ hours a year back
Illustration: one status message from the store-server upgrade pipeline, every stage passed.

Self-service deployments to staging devices

Before After
Test build to staging devices 5 to 10 minutes by a release engineer about 1.5 minutes, started by the developer
Hand-offs per deployment 1, and the wait for it none
Corporate app to UAT 10 to 15 minutes by hand about 3 minutes
Before and after diagram of a test build going to staging devices at Nike. Before: the developer hands it to a release engineer, who uploads the build, creates the device group, assigns the app and removes older versions by hand, 5 to 10 minutes plus the wait. After: the developer starts one self-service job that does the same steps in about 1.5 minutes, with no hand-off. Before Developer Release engineer 5 to 10 minutes by hand, plus the wait Upload the build Create the device group Assign the app Remove older versions After Developer One self-service job about 1.5 minutes no hand-off Upload the build Create the device group Assign the app Remove older versions

The decision they faced

Keep upgrading 900+ store servers with a manual checklist passed between five teams, or automate the upgrade into one pipeline.

What was built

One self-service upgrade pipeline for Windows store servers, replacing a manual process spread over five teams.
A self-service continuous delivery pipeline that removed manual release steps.
Jamf integration with file-agnostic macOS signing and notarization, for reliable mobile delivery.
One-click or scheduled automation for recurring chores.
Training for the other release engineers on the tooling, so the knowledge didn't sit with one person.

Also delivered: Multiple high-priority vulnerabilities in Azure and AWS mitigated, and the Slack-to-Teams migration enabled, which cut annual license costs.

What it took from their team

Time from managers and engineers across QA, database, Windows, release and SRE: their existing scripts and know-how, reviews, and sign-off before each change reached production.

“Mateusz has made several key contributions that significantly reduced cost, complexity, and manual effort. His work consistently reflects a deep understanding of systems and a focus on automation and efficiency.”

Nike Jon V. Mobile Release Engineer Lead

At your numbers

What would this be worth for your releases? The calculator shows the price and payback for your release flows.

Calculate your price

Same problem on your team?

Start with the free Release Check: 11 questions about your last release, with the cost and three fixes on screen. Or book 30 minutes and bring your last release.

Talk to the engineer

“As an engineer, I’ve seen how manual delivery work quietly drains time and reliability. I built Expeditious Software to remove bottlenecks, reduce operational toil, and deliver measurable improvements in speed and stability.”

Mateusz Ulas, founder of Expeditious Software

Mateusz Ulas

Founder and platform engineer