Required skills:
- At least 4-5 years experience in software engineering. 3+ years of commercial experience with C/C++ (GCC, embedded Linux), 2+ successful commercial projects (core development) in the tech domain below, strong problem-solving skills
- Excellent knowledge of C (a must) and C++ and their allied programming environments, build systems, source code control systems (gcc, make, CVS etc)
- Excellent knowledge/experience of object-oriented design, development methodology and techniques. Design patterns application
- Technologies: good knowledge of Linux internals /APIs, familiarity with eCos, ucLinux, and Linux in an embedded context, multimedia (A/V streaming/playback level, manipulations with A/V streams), networking (TCP/IP, UDP, HTTP), system programming, multithreading - a must, COM-like development (proprietary component model). Performance profiling/optimization experience
- Excellent teamwork, communication and documentation writing ability
- Ability to supervise/teach junior staff
- Good command of English (reading / writing is an absolute min, intermediate spoken English)
Preferable skills (advantage):
- Multimedia, container formats (AVI, ASF, MPEG2 TS, PS) , parsing elementary streams (MPEG2 PS, TS, WMV, WMA, MP3)
- Knowledge of UPnP A/V Media Server and DLNA guidelines and requirements
- Knowledge of networking from link layer up (TCP/IP, UDP, HTTP, UPnP, RTP, RTSP, SDP, DHCP, Zeroconf etc)
- OS Protection Kit (secure boot, encrypted kernel, file system, signed executable), cryptographic algorithms
- Strong understanding of CM tools such as CVS, Make, bash, etc
Responsibilities:
- Provide technical leadership to the development team. Ability to work with minimal supervision
- Developing new features in the existing media player/server middleware (plain C currently)
- Oversee and approve design and code changes made to these products
- Creating reproducible build environments as new media player/server platforms become supported
- Enhancement and streamlining of processes by which new platforms become supported
- Supporting standards certification, which involves some international travel
- Creating and customizing run-time environments to support embedded media player/server
- Quickly come up to speed on products functionality and technology
- Technical documentation writing (Design, Func Spec, User guides, Manuals)