Friday, October 5, 2007

Senior Software Engineer at DivX

Senior Software Engineer, Digital Video Software
Location: USA, San Diego
Description

Can you design and implement rock-solid, multi-threaded, portable code for Windows, Mac, and Linux environments? Did you write an AVI parser because you wanted to know the details of the files you were downloading? Do you look at extending existing applications through plugins when possible? We’re looking for (senior) software engineers to design and build our next generation of A/V media technologies for PCs, Macs and Linux. If this sounds like you, send us your resume.

The Everyday View

  • Develop next-generation digital video software for PC, Mac and Linux.
  • Design and implement next-generation multi-threaded multimedia and real-time technologies. Also use established API and standards.
  • Design and implement robust and modular C and C++ components for video file playback and management, networks transfer, UI and application management that are fast, efficient and reusable across Windows PCs, Macs and Linux
  • Design and implement automated unit, integration and regression tests. Your code must be rock-solid because it will be used in many different hardware environments.
  • Work within a team-based agile development environment in four-week iterative development cycles, and give input on architecture, design and tactical decisions to help improve our code, tools and processes
  • Occasionally work on non-code documentation and set up technical tests to show how your creations work
The Kind of Person We're Looking For
The ideal candidate is a master craftsman: both creative and precise. You are a highly-skilled software designer and engineer, fluent in C and C++. You understand how real-time, multimedia applications work and love to dabble with video and audio. You’re team-driven, never territorial, freely give credit to others and are a poster child of Theory Y. And you’re ready to start building some really cool stuff. The person we want to hire also:


  • Has several years of experience efficiently creating C and/or C++ code for PC environments (Windows, Mac, Linux) and knows all about data structures, design patterns, language features, standard libraries and writing easy-to-understand code
  • Has experience developing portable code that works across a range of platforms, including Windows, Mac and Linux
  • Has experience with optimization and complex multimedia algorithms
  • Has practical hands-on experience with software development tools and techniques across a wide range of platforms, including a solid working knowledge of stuff like make files, ant files, Visual Studio solutions, workspaces, projects, library dependencies, build configurations (e.g. debug vs. release), static vs. dynamic linking, compiler flags, optimization, etc.
  • Has experience with version control systems, automated build and testing tools, code coverage tools, memory checkers and other instruments that help ensure healthy, robust code
  • Understands that requirements are rarely perfect and is willing to extract the spirit of the requirement to make the system or software better
  • Has a degree in computer science or a related technical discipline, or the equivalent
  • Has good written and verbal skills


The following experiences are optional but highly desired:
  • A strong background developing efficient multimedia technologies
  • Previous experience in developing multimedia plugins for web browser software such as Mozilla Firefox (using NPAPI/npruntime) and Internet Explorer (using ActiveX)
  • Knowledge of HTML/CSS and JavaScript as well as cross-platform and cross-browser AJAX and Web 2.0 techniques
  • A strong background in using video and audio technologies for the Linux platform
  • Strong background in using native system APIs and UI APIs for Windows, MacOS X and Linux
  • Experience with network programming, especially dealing with HTTP/HTTPS requests, headers, downloads and uploads
Link

No comments: