NPR is a thriving, mission-driven multimedia organization producing award-winning news and information. They are seeking an experienced Java Software Engineer to develop and maintain their content distribution platform and tools, collaborating with cross-functional teams to enhance public media content distribution.
Responsibilities:
- Responsible for design, development and maintenance of our Content Distribution System. Work closely with the Product Owner and peers from the development team
- Follow software development procedures and report directly to the Sr. Manager of Software Development
- Write, edit, and debug software in Java
- Respond promptly and professionally to bugs reported by QA
- Ability to conduct system analysis independently to keep our systems current with changing technologies
- Analyze system specifications and break down requirements to well defined development tasks
- Test new code thoroughly to ensure logic is correct, and that program results are accurate
- Document code consistently throughout the development process
- Provide assistance to testers and support personnel as needed to determine system problems
- Participate in code deployments to QA and production systems
- Identify and respond appropriately to production problems
- Join the developer “on-call” rotation after approximately 3 months
- Participate in disaster recovery site readiness and testing
- Participate in daily stand-ups and other scrum activities (e.g. backlog grooming, planning, demos and retrospectives)
Requirements:
- Three to five years experience with building and consuming API's as well as familiarity with various programming languages and frameworks
- Very comfortable using standard software development tools such as IDE's, Open Source Java/C development frameworks, profilers, SQL explorer, and issue/bug tracking tools
- Experience with designing and building tiered software systems using a major relational database
- Experience with Agile / Scrum software development practices
- Fluent in Java
- Fluent in relational databases, such as PosgreSQL
- Experience in front-end web application development
- Experience working with a version control system (Git preferred)
- Experience with unit testing, CI/CD pipelines, and production system deployment
- Experience working in Linux/Unix platform
- Experience with Spring application framework
- Excellent problem solving, analysis and troubleshooting skills
- Exceptional oral and written communication skills
- Strong organizational skills and the ability to work under tight deadlines
- Experience with Vaadin UI framework
- Familiarity with orchestration and automated workflows with tools like Nomad and Consul
- Experience with CI/CD pipelines (Teamcity or equivalent)
- Knowledge of C, C++
- Knowledge Audio over IP systems (e.g. AES67, Livewire, WheatNet, etc)
- Experience with real-time audio processing and low-latency systems
- Knowledge of various network protocols including SRT, RIST, RTP, UDP
- Knowledge of various codecs/formats including MP2, MP3, MPEG-TS, FLAC, Opus, Ogg, AAC
- Experience with audio tools/libraries ffmpeg, libav, gstreamer, ALSA, etc
- Experience with Docker/containers, and major cloud platforms