University: 2013 Platform Engineering Intern
Mountain View, CA, United States
Development is also completely open, you can talk about everything you work on at any time on your resume, your blog, or anywhere else.
The Mozilla Platform ("Gecko") contains everything needed to render, run and access web content. The platform is the engine that drives Firefox on the desktop and Android, as well as Boot To Gecko.
More details on teams and the projects they work on are available at: https://wiki.mozilla.org/Platform/Teams
Skills/Experience Required:
* C/C++ development experience - a sample interview question might be "explain what a guard object is and how you use it."
* Algorithms - a sample interview question might be "How do you find the number of unique values in an array? I.e. not how often each of the values occur, just how many different values there are."
* Written and verbal communication skills - you'll be on IRC, participating in mailing lists
* If you have experience with open source projects, send links to your projects/patches/etc.
Below are the 10 teams you will likely join:
1. Accessibility
At Mozilla our accessibility engineers solve some of the most complex and interesting technical problems on the web -- whether it is designing a mobile accessibility solution for Firefox on Android, or perhaps modifying a Levenshtein distance algorithm to compute text change events asynchronously. They have the enviable opportunity to work not only on our accessibility engine, but poke around in different parts and layers of the browser on all platforms including Linux, Windows, OSX, Android, and whatever is coming next. They do this because the web is for everyone, and that idea is central to the Mozilla mission.
2. Audio/Video
Our Audio/Video team is primarily responsible for the HTML5 and elements and all the infrastructure they require --- codec development and integration, playback engine, audio processing, synchronization, subtitles, etc. Supporting high-quality playback across a broad range of devices is hard! We're also involved in promoting the use of non-patent-encumbered codecs. We're branching out into other kinds of real-time media processing such as APIs for applying effects to real-time media streams. We're also moving into two-way real-time communication (WebRTC).
This work needs a very broad range of skills, from API design down to very low-level performance tuning, but signal processing and real-time development expertise is especially useful here.
3. DOM
The DOM team works on the DOM implementation in Mozilla and on lots and lots of surrounding code. This includes the DOM tree implementation itself, DOM event dispatching and handling code, the scriptability layer (DOM bindings), JavaScript security wrappers, document navigation, and much more. The main responsibilities of the group is implementing already standardized DOM APIs, driving standardization across the browser space, ensuring that the current implementation performs well and interacts well with surrounding code, and general maintenance of the current code.
A good understanding of how web pages and web applications use browsers is a good skill to have in this group, and prior experience with standardizing APIs across browsers is a plus too. Most of the code we write is in C++ so strong skills there is a plus as well. Low level system programming is also welcome here as we do find ourselves working on a broad spectrum of problems, all the way from cross language dispatch routines that are written in assembly to writing tests in HTML and JavaScript.
4. Graphics
Mozilla's graphics team comprises tenacious developers who regularly delve into a problem at multiple levels of abstraction. We produce the parts of Gecko that draw content on screen; our code draws 2D content both in software and hardware, and we're also responsible for image decoding. Our focus is writing fast, lightweight and maintainable code to make Firefox great for users.
We're looking for C++ developers who can also look at a disassembly and reason about its performance. The right person will be unafraid to fix bugs in other libraries, and won't rest until she's found a problem's true root cause. Most of all, we're looking for people to help us find ways to make web browsers fast using GPUs.
5. JS
The JavaScript team works on SpiderMonkey, Mozilla's JavaScript engine. The big things we do are to make JavaScript go faster and add new JavaScript language features to the engine. For performance, we work on creating and optimizing JavaScript JIT compilers, improving garbage collection subsystems, and profiling and optimizing or redesigning other bits of the engine. Language feature work is mostly driven by the evolving ECMAScript standard. That work involves fully understanding the specification of the new language feature and figuring out how to implement it in the engine.
6. Layout
The layout team is responsible for implementing CSS layout and rendering. We're constantly adding new features for Web developers, improving our standards compliance, and contributing to the development of new standards. We're also working on improving performance and making Web content more beautiful.
7. Mobile
The Mobile team is a set of fearless generalists that work across the Mozilla platform. Our goal is to make an awesome browser for mobile devices. Much of our focus is to ensure that the Mozilla platform runs fast and correctly on Android. We are looking for developers that are proficient in JavaScript, Java, and C++. The the right person would be flexible and able to fix a user facing feature today, then digging into a compiler issue the next day. We want you if you are team player, have strong coding skills, don't give up, and want to make the a great browser for mobile.
8 Networking
This team is responsible for networking protocols (e.g. HTTP, FTP, SPDY), network security (e.g. SSL/TLS, certs), and network caches (disk and memory). We're always looking to improve performance, security, and reliability. Particular challenges include mobile environments and new and evolving threats to security.
9. Performance
The performance team optimizes Firefox startup & shutdown, UI responsiveness, I/O patterns, memory overhead, etc. We use the Telemetry (http://telemetry.mozilla.org/) reporting system to identify performance problems and verify optimizations. Data mining techniques are used to extract performance trends from Telemetry data.
You should apply if you're interested in understanding how software behaves in the "real world" and you have a good grasp of low-level software engineering concepts or data analytics.
Prior experience with big data, kernels, compilers, profiling, browser hacking is a plus.
10. Web API
The WebAPI team focuses on finding what's missing from the web today and designs ways to expose the missing features to web pages and applications. The primary goal for the team is to eliminate the gap between what's currently doable in native applications on existing operating systems (Windows, OSX, Android, etc) and the web. This means everything from exposing device specific functionality in a web friendly way to innovating on what developer features are critical for moving the web to the next level again and again. This team does a lot of API design, collaboration with other interested parties, and a lot of prototyping of new APIs and functionality.
- Team:
- Internships
Why Mozilla?
Mozilla is a thriving community of intelligent, principled and passionate individuals who build software to preserve choice, openness, and innovation on the Internet. We work in the open on hard problems to ensure that the future of the Web is not dominated by large corporate interests, but driven by the idea that individual users should always be in control or their online lives. Join us!
We Are Global
- 500+ paid staff from over 30 countries and 25 US states
- Thousands of active contributors across six continents
- Nine principal offices: Mt. View, San Francisco, Vancouver, Toronto, Auckland, Paris, London, Beijing, Taipei
- Hundreds of home offices around the world
And so are our benefits...
- Competitive pay
- Great health coverage
- Travel and conference budgets
- Ability to work using the latest hardware and software of your choice
- Dozens of technical brownbags and invited speakers each month
Because we love what we do!
- We take bold technical leaps
- We code in the open and we ship in the open
- We directly impact over 450 Million users
- We build technology for the benefit of the Web's users and creators
- We work in a culture defined by principles over profits