Friday, October 5, 2007

Senior Software Engineer at DivX

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

Can you design and implement rock-solid portable code for Windows, Mac, and Linux environments? How about porting that code to embedded systems? Did you write an AVI parser because you wanted to know the details of the files you were downloading? We’re looking for senior software engineers to design and build our next generation of A/V media technologies for PCs, Macs, Linux, servers, embedded systems, and consumer electronics devices. Formally, we’re called the “Strategy & Technology” business unit of DivX, but internally, we’re known as “Monkey”.

Our video creation and playback technologies power millions of consumer electronics devices, from DVD players to portable media players, mobile phones, digital cameras, home media servers, and more. ut success didn’t come easy. To make it in the consumer electronics (CE) business, we had to ensure seamless interoperability of DivX content and devices, even across different brand names like Panasonic, Sony, LG, Roxio, Pinnacle, CyberLink, and many others. This requires insight, quality, precision, and rock-solid engineering. But it doesn’t stop there. Our technologies also power new and innovative applications in the blogosphere, web 2.0 applications, connected devices, and online communities.

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 the differences between PC and CE devices, and love to dabble with video. 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. If this sounds like you, then you’d love it here… let’s take on the world! Send us your resume.

The Everyday View

  • Develop next-generation digital video and media management technologies that are incorporated into a wide range of products, including DVD players, portable media players, mobile phones, home media servers, PC software, back-end video distribution systems, etc.
  • Design and implement robust and modular C and C++ components for media file management that is blindingly fast, uses virtually no memory, and is reusable across Windows PCs, Macs, Linux PCs, back-end servers, and consumer electronics devices.
  • Design and implement automated unit, integration, and regression tests. Your code must be rock-solid because it will be used in PC software as well as in device firmware.
  • 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 setting up technical tests to show how your creations work.

The Kind of Person We're Looking For

  • 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, Linux, embedded systems, and consumer electronics devices.
  • 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, and projects, library dependencies, build configurations (e.g. debug vs. release), static vs. dynamic linking, compiler flags, 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 and 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 Are optional but Highly Desired Skills

  • A strong background developing multimedia container technology or APIs for very large file data structures.
  • Specific experience with multimedia container file formats (e.g. MPEG, AVI, Ogg, Matroska).
  • Experience designing and delivering APIs as components of Software Development Kits (SDKs).
  • Experience with streaming network protocols (e.g. RTP, RTSP)
  • Experience targeting mobile or embedded environments (Windows CE, Windows PPC, Windows Mobile, Symbian, J2ME, Brew, RTOS)
Link

No comments: