This role will involve contributing to the development of new core features of the set-top box in C/C++, integration of open source and proprietary components, porting of existing components, and system debugging. The primary focus of this work will be embedded Linux, core Set-Top-Box & Multimedia components. The work will principally involve Linux user space component development; however, kernel space debugging work may be required.
This is a good opportunity to work across the whole middleware stack of a set-top box.
The role includes supporting other YouView teams and STB manufacturers.
The successful candidate will have related skills in embedded software development and Set-Top-Box technologies.
Skills and Experience
- embedded software development in C/C++
- embedded Linux development
- knowledge of Set-Top-Box architecture (hardware and software)
- hands-on experience with STB technologies (DVB, DVR/PVR, IPTV)
- experience with platform and software validation
- experience with multi-threaded software development for real-time systems
- complex software debugging skills
- hands-on experience with toolchains, compilers, debuggers, build systems
- hands-on experience with industry STB SoCs and their driver stacks (i.e. Broadcom, etc.)
- familiarity with inter-process communication (IPC) mechanisms
- familiarity with Linux systems, GNU tools
- good communication and organisational skills
- strong problem solving skills
- structured approach to work, analysis and reporting
Additional desirable Skills and Experience
- Set-Top-Box, DVD/Blu-ray, Media Player or similar software stacks and relevant standards experience
- Digital TV / DVB
- Platform & Content Security - CA / DRM / Cryptography
- Media streaming: IPTV & adaptive bitrate like Apple HLS, MPEG-DASH, Microsoft SmoothStreaming, etc.
- Digital Audio/Video media formats: MPEG, AVC/H.264, HEVC/H.265, Dolby, etc.
- Linux APIs: Linux DVB, V4L2, Media Controller, DirectFB, OpenGL, OpenMAX, etc.
- Open Source Software: GStreamer, D-Bus, Glib, Wayland, Web Browsers, etc.
- Linux Kernel knowledge: memory management, drivers, file systems, etc.
- Network protocols: TCP/IP, UDP, DHCP, DNS, HTTP, etc
- SoC core architectures: ARM, MIPS, etc.
- scripting (i.e. Bash, Python)
- git, svn, JIRA, Stash