← The Naistro work02 / NAISTRO · CONTRIBUTION

A venue’s day as one playback timeline.

Turn a daily plan into a coherent listening experience.

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 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.

THE IDEA, ILLUSTRATED

Turn a day into a playable timeline

THE PLAYLIST SCHEDULER · LOCAL TIME MATTERS
The AssemblyVenue · Lagos
08:00LOCAL TIME
06:0012:0018:0024:00
MorningEasy rhythm
AfternoonNew energy
EveningSlow down
TRACK 01TRACK 02STATION HANDOFF
Station slots become one ordered day of tracks, transitions, and local-time boundaries.
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

TypeScript
Make data shapes and code boundaries explicit while building product behavior.
Time-zone handling
Interpret schedules in the correct local time and handle boundaries consistently.
SQL
Query and update relational data, with clear rules about which records a result represents.
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 contributionsMusic that resumes after an interruptionI 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.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.