← The Naistro work02 / NAISTRO · CONTRIBUTION

Music that resumes after an interruption.

Keep playback coherent when schedules overlap.

Where this work fits

A song can still be playing when an advert or prayer is due. The player needs to know what takes priority, where to stop, and where to resume. Station changes and the venue’s local time add more boundaries to that same day.

MY CONTRIBUTION

I implemented ordering for music, adverts, and prayer interruptions. I preserved the amount of a track already played so it could resume afterward, and handled conflicts between interruptions rather than allowing them to compete for the same moment.

THE IDEA, ILLUSTRATED

Interrupt, then resume in the right place

ONE TIMELINE · THREE PRIORITIES
3 / Prayer2 / Advert1 / Music
0s30s60s90s120s150s
Track A
Resume 35s
Resume 55s
Prayer
Playback offset is retained across the interruption.
Prayer takes priority. Music resumes after the interruptions.

Watch the music lane split around the scheduled interruptions. The second music segment continues from the saved position rather than starting the song again.

THE ENGINEERING DECISION

Start on time without losing the song.

Giving an interruption priority solves only half the problem. I also had to preserve how much of the track had played, resolve conflicts between interruptions, and align what came next. Time-zone handling kept those decisions tied to the venue’s day.

The skills behind the work

Queues & concurrency
Control when work runs and how much runs at once, keeping expensive operations manageable.
Time-zone handling
Interpret schedules in the correct local time and handle boundaries consistently.
State management
Represent what is happening now and define which changes are valid next.
THE WIDER RESULT

Scheduling errors fell, and interrupted tracks could continue from their saved position. Operators gained more control over when content played and how it fit into the rest of the schedule.

Scheduling errors
−80%After moving playlist and interruption logic from the frontend into backend services.
READ THIS IN CONTEXTI moved the scheduling decisions into the backend. →
Related contributionsA venue’s day as one playback timelineI extended the backend scheduler to assemble a day in the venue’s local time. The work handled adjacent stations, tracks crossing schedule boundaries, and the end of the day, so the returned sequence reflected the whole plan rather than isolated slots.Finding and rearranging scheduled tracksI built tempo filtering and tools for placing tracks in a schedule. Filters could accept values and ranges. When two track positions were swapped, transactional updates kept the exchange together while preserving the surrounding schedule positions.Scheduling messages across venuesI built campaign-message operations for date ranges, days, rotation, and specific times. That let an operator configure where and when a message belonged; the scheduling work then determined its place among the other audio events.