§ 02 - The problem

The problem

Migros runs large supply chains. When a port strike, weather event, or geopolitical issue disrupts a shipping route, the delays and costs ripple through the rest of the network. Their challenge to HackZurich teams was open-ended: build something that helps Migros think about alternatives when the default routes break.

They provided their shipping route data along with pointers to weather and geopolitical news feeds, and left the output to interpretation. We named our project Supply Chain Resilience and built a web tool that recommended alternative routes given a disruption, with the data presented in a way that a non-technical Migros operator could read at a glance.

§ 03 - The approach

The approach

The team split into two halves by skill set. The data-analytics members worked in Jupyter against Migros's route data and the supplemental weather and news feeds, building the logic that decided which alternate routes to recommend given a disruption. The UI side, where I worked with another teammate, built the React frontend that surfaced those recommendations: route maps with the disruption flagged, alternative paths laid out, and the relevant trade-offs visible at a glance.

The route view: original Migros routes mapped, disruption flagged, alternative paths surfaced.
FIG. 02 - The route view: original Migros routes mapped, disruption flagged, alternative paths surfaced.

A small Python backend connected the two halves, serving the analysts' route logic to the frontend through a simple API. The architecture was deliberately simple. A hackathon weekend doesn't reward over-engineering, and the value of the project was in showing Migros what their data could look like in an operator's hands.

§ 04 - My role

My role

Five-person team, found through the HackZurich participant Discord in the days before the event. Wide range of experience across the group: data analytics, frontend, and full-stack/backend. We delegated roles by fit, with one teammate taking team lead.

Specifically:

  • UI / frontend co-development. Worked with another teammate on the React frontend, building out the views that surfaced the analysts' route recommendations.

  • Team record keeping. Documented decisions, progress, and open questions through the 36 hours, so the team could pick up after sleep breaks without re-deriving where we'd left off.

  • Sponsor liaison. Primary point of contact with the Migros sponsor representative, surfacing clarifying questions about the data and the prompt as they came up.

  • Demo video. Wrote, filmed, and edited the 2-minute finalist demo video that played at the final round of judging.

  • Time keeping. Tracked the clock against the team's plan; flagged when scope decisions had to be made to ship by the deadline.

The data-analytics work and the route-recommendation logic were owned by two teammates with that background; my contribution to the data side was making the analysts' work legible in the UI.

§ 05 - Outcome

Outcome

We made the finalist round, which is where the demo video plays for the room before the live presentation. Judging was a mix of HackZurich panelists and Migros representatives. The team presented in English for consistency, walked through the route-recommendation flow, and answered questions about the data choices.

We won 1st place in the Migros challenge. The judges had positive things to say about the routing logic, but what set the project apart was the presentation craft: a UI clean enough to read at a glance, data laid out so the project's logic was legible to non-technical observers, and a demo that flowed cleanly under time pressure.

The prize was 200 Swiss francs and Migros merchandise. There was an employment-track recognition associated with the win, but it required EU residency, which I don't have. The other teammates did.

What I actually took away from the weekend was less about the win itself and more about working alongside people from completely different backgrounds toward a single goal in 36 hours. Different working styles, different default assumptions, the occasional language gap. We made it work. It was a great time, and one of the more memorable experiences I've had.