← The Naistro work02 / NAISTRO · CONTRIBUTION

Updated audio for existing players.

Help product improvements reach existing devices.

Where this work fits

Uploaded audio still needed preparation: its format and loudness had to suit playback, and some messages needed silence around them. That work took time and depended on tools beyond the application runtime.

MY CONTRIBUTION

I worked on delivering newly processed audio through the paths older players already used. The change included refreshing cached assets and updating file information so a player would receive the prepared version without requiring every device to migrate at once.

THE IDEA, ILLUSTRATED

Move media preparation into background work

QUEUE · ASYNCHRONOUS AUDIO PREPARATION
1Processing
2Queued job
3FFmpeg
4Ready asset
SOURCE AUDIO
Variable levels · Raw input
FFmpegNormalize → AAC
PLAYBACK ASSET
Normalized levels · AAC output
Consistent levelsPlayback-ready formatBackground processing
Uploaded audio waits in a queue while a worker prepares it for playback.
THE ENGINEERING DECISION

Background work needs a visible outcome.

Moving processing into a queue let the request finish sooner, but the file was not ready yet. I handled processing and failure states and temporary-file cleanup. Compatibility work also had to refresh cached files and metadata so older players received the updated audio.

The skills behind the work

S3
Store media assets for later processing or delivery.
Caching
Reuse prepared information while making sure outdated values can be refreshed.
Media processing
Prepare or transform media into a form that playback and delivery can use.
THE WIDER RESULT

Audio preparation became an automated background operation. Content could be normalized and encoded without holding the original request open, with status available when processing failed.

READ THIS IN CONTEXTI built the processing step between an upload and playback. →
Related contributionsQueued audio normalization and encodingI built an SQS-backed audio processing flow using NestJS and FFmpeg. A worker prepared and encoded the file, stored the result in S3, and recorded processing outcomes. Temporary files were cleaned up, including after a processing failure.Package the tools the audio worker needsI worked on the application runtime needed by audio processing, including its encoding and filtering support. A worker’s code is only useful when the deployed environment actually includes the media tools it depends on.