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.
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.
Move media preparation into background work
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.
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.