Full-time Software Engineer (Parsing)

Wikimedia Foundation is looking for an experienced Software Engineer to join the Parsing Team in the Contributors Department where we build collaborative, inclusive tools for creating and editing free knowledge.

On the Parsing team, we are responsible for supporting and evolving all things wikitext, the markup language behind Wikipedia. We aim to make wikitext easier to write, faster to parse, and less error-prone. We also strive to support editing and content analysis tools without their needing to parse wikitext.

We currently maintain two different parsers with different architectures, functionality and clients. Each of these parsers have to handle 200 parse requests/second. One of our current goals is to consolidate the parsing infrastructure around a single parser serving all clients and functionality without degrading performance. Low parse times are quite important, especially during breaking events when some pages are rapidly edited.

You will be part of a team tackling the challenging problem of evolving the parsing infrastructure and wikitext semantics without breaking the enormous corpus of the wikipedias or negatively impacting parse performance. In the process, you will be supporting other teams working on editing and rendering products and tools.

Responsibilities

Fixing bugs and implementing new functionality in the parser codebases – primarily Node.js, but also PHP.
Improve testing and QA infrastructure required to ensure we can make changes to parsing and wikitext semantics with minimal impact
Contribute towards consolidating MediaWiki around a single parsing infrastructure
Contribute to the evolution of wikitext to structured semantics, both in its specification and the parsing infrastructure implementing those semantics
Continue driving the parser output towards a well-documented spec that faithfully exposes wikitext semantics
Participate in cross-team and cross-departmental engineering projects

Requirements

Proficiency in multiple programming languages with 3+ years of experience in one of the following languages: Node.js, Javascript, PHP, Ruby and/or Python
3+ years of academic or professional work in one of the following areas:
compilers
language runtimes
parsers
highly scalable web services
projects demonstrating design and development of novel data structures and algorithms
projects demonstrating expert knowledge of the HTML5 spec and parsing
Self-driven but proactively asks for input when needed
Comfortable working in a collaborative, consensus-oriented environment with substantial public code review, bug reporting, and technical discussion
Comfortable working with a remote, distributed team across various time zones
Bachelor’s degree in Computer Science and 5+ years related work experience; or Master’s degree in Computer Science and 3+ years related work experience; Both can be replaced by equivalent work experience
Willing to travel occasionally for team and organizational meetings

Pluses

Experience with parser generators (esp. PEG), interpreters, or language runtimes would be a big plus
Familiarity with the HTML5 spec and DOM manipulation
Familiarity with PHP and Node.js
Experience with open source technology and free culture, and contributions to open source projects
Good communication, presentation and writing skills
Familiarity with wikitext and/or MediaWiki
Active editor on Wikipedia and/or sister projects like Wikisource, Wiktionary, Wikivoyage

The Wikimedia Foundation is an equal opportunity employer, and we encourage people with a diverse range of backgrounds to apply.

*Benefits & Perks **

Fully paid medical, dental and vision coverage for employees and their eligible families (yes, fully paid premiums!)
The Wellness Program provides reimbursement for mind, body and soul activities such as fitness memberships, massages, cooking classes and much more
The 401(k) retirement plan offers matched contributions at 4% of annual salary
Flexible and generous time off – vacation, sick and volunteer days, plus 19 paid holidays – including the last week of the year.
Family friendly! 100% paid new parent leave for seven weeks plus an additional five weeks for pregnancy, flexible options to phase back in after leave, fully equipped lactation room.
For those emergency moments – long and short term disability, life insurance (2x salary) and an employee assistance program
Pre-tax savings plans for health care, child care, elder care, public transportation and parking expenses
Telecommuting and flexible work schedules available
Appropriate fuel for thinking and coding (aka, a pantry full of treats) and monthly massages to help staff relax
Great colleagues – diverse staff and contractors speaking dozens of languages from around the world, fantastic intellectual discourse, mission-driven and intensely passionate people