← The Naistro work02 / NAISTRO · CONTRIBUTION

Package the tools the audio worker needs.

Keep media processing reproducible across environments.

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

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

Docker
Package an application with the runtime tools it needs to execute consistently.
FFmpeg
Prepare audio through encoding, filtering, and loudness-processing capabilities.
Node.js
Build backend operations and integrations for account and product workflows.
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.Updated audio for existing playersI 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.