This job ad has been posted over 40 days ago! (*)
The Wikimedia Foundation is looking for a Staff Software Engineer to join our Platform Engineering Team, reporting to The Engineering Manager. As a Staff Software Engineer on this team, you will be responsible for working closely with our product and engineering platform teams as well as technology teams across the foundation to build and deliver the Wikimedia API Platform which includes an API Gateway, an API Developer Portal, and full lifecycle management of Wikimedia API services. The staff software engineer will develop innovative solutions that create value, support our mission, and position our technical stack to sustainably grow and scale, while also mentoring and growing Junior Engineers.
This role will directly support our application platform serving the world’s favorite encyclopædia. Wikipedia is one of the largest internet properties in the world, visited by 1 billion people a month across 280 different languages. Our foundational technology supports all of our properties, products, and offerings that empower the global free-knowledge community to produce and consume knowledge. Wikipedia and its sister projects are powered strictly by Free and Open Source software, with MediaWiki at its core, surrounded by an ecosystem of microservices in PHP, NodeJS, Python, and Go.
Due to our scale, commitment to opensource, and our desire to support the infrastructure of free knowledge, it is no easy task to build and maintain foundational technology. To deliver key capabilities that are needed, Staff Software Engineers must develop strong understandings of internal and external clients, partner closely with Product Managers and partners in engineering to identify, design, and build technical capabilities that support products and services that unlock value.
We are a distributed and diverse team of engineers with a drive to explore, experiment, and embrace new technologies. During the past few years we have been transitioning our platform from a monolith to a hybrid microservices architecture, and started migrating our microservices onto Kubernetes running on bare metal. This work underpins our goals of modernizing our platform to help build and support the future work of the WMF, its sister projects and the global community.
If you find what we do interesting, if you are up to the challenge of improving how APIs function for one of the Internet’s top 10 websites, and you enjoy the idea of working with a globally distributed team, you might be just the person we need. Come as you are!
You are responsible for:
Collaborating with Product Owners, Engineers and Stakeholders on product discovery and improvements of our existing systems
Participating in the development and integration of the Wikimedia API Gateway, including:
Feature identification and implementation (ex: rate limiting, throttling, authentication, etc.)
API Protocols and Architecture Style support guidelines (ex: REST, RPC, Kafka, etc.)
Migration of existing APIs to the API Gateway
Integration of the API Gateway into our security strategy
Developing easy-to-use self service pathways for API consumers via our web API portal
Assessing and addressing technical risks
Helping maintain, scale, and extend our API Platform
Helping shape the technological direction of our systems working with the Tech Lead and Product Manager to identify solutions for given requirements
Monitoring system performance and identifying, defining, and implementing internal process improvements and SLOs
Gathering and documenting technical requirements
Mentoring Junior Engineers
Directing your own work and are proactive in asking for input.
Working and communicating clearly and effectively within a team that spans multiple time zones across the world
Changing the world for more than half a billion people every month ;)
Skills and Experience:
8+ years of experience designing and building APIs for internal and external stakeholders
You have a good working knowledge of software design principles and the API lifecycle
Expertise in REST web services
Experience building or managing an API Gateway (ideally with Envoy experience)
Experience designing API guidelines and interfaces
Deep understanding of how to integrate API Gateways into a legacy technology stack and the ability to execute this.
Demonstrated experience building out API Gateway features including, rate limiting, authentication, throttling, etc.
You have a good understanding of how to scale applications, in terms of load, complexity, and performance.
You enjoy writing unit tests, reviewing code, responding to code reviews and discussing architectural approaches.
You have experience with multiple programming languages are are willing to use the right tool for the job. We currently use PHP, Nodejs, Python, and Go where it makes sense.
You have worked in a Linux server environment.
You are willing to travel occasionally - sometimes internationally - for team and organizational meetings.
You are a proficient English speaker and writer.
Qualities that are important to us:
Commitment to the mission of the organization and our values
Commitment to our guiding principles
Ability to disagree in a respectful manner and yet work towards a solution even when you disagree
Good at asynchronous communication
Solutions-focused. The Wikimedia ecosystem is complex, resources are limited, and our guiding principles are ambitious. We want you to work to find solutions embracing these factors.
Self motivated with an ability to navigate through ambiguity and bring a project to completion with limited directions
Problem-solver with a passion and willingness to learn and dive-deep into technical details
Possess a growth mindset with ability to identify additional skills, knowledge, and/or expertise required and the drive to develop themselves where needed
Additionally, we’d love it if you have, but these are pluses not requirements:
Experience working on open source, collaborative development projects
Familiarity with Envoy API Gateways
Experience working with on-premise technology stacks
Experience working with microservice architectures
Experience working remotely
Experience with NoSQL and traditional databases
Experience working with tools like but not limited to Kafka, Hadoop, Storm, Flink and Spark
Experience with an internet software environment operating at scale; for example, messaging platforms that process hundreds of thousands of events per second
Big thumbs ups if you are a contributor to Wikipedia
Show us your stuff! If you have any existing open-source software that you've developed (this could be your own software or patches to other packages), please share the URLs for the source. Links to GitHub, etc. are especially useful.
About the Wikimedia Foundation
The Wikimedia Foundation is the nonprofit organization that operates Wikipedia and the other Wikimedia free knowledge projects. Our vision is a world in which every single human can freely share in the sum of all knowledge. We believe that everyone has the potential to contribute something to our shared knowledge, and that everyone should be able to access that knowledge freely. We host Wikipedia and the Wikimedia projects, build software experiences for reading, contributing, and sharing Wikimedia content, support the volunteer communities and partners who make Wikimedia possible, and advocate for policies that enable Wikimedia and free knowledge to thrive.
The Wikimedia Foundation is a charitable, not-for-profit organization that relies on donations. We receive donations from millions of individuals around the world, with an average donation of about $15. We also receive donations through institutional grants and gifts. The Wikimedia Foundation is a United States 501(c)(3) tax-exempt organization with offices in San Francisco, California, USA.
As an equal opportunity employer, the Wikimedia Foundation values having a diverse workforce and continuously strives to maintain an inclusive and equitable workplace. We encourage people with a diverse range of backgrounds to apply. We do not discriminate against any person based upon their race, traits historically associated with race, religion, color, national origin, sex, pregnancy or related medical conditions, parental status, sexual orientation, gender identity, gender expression, age, status as a protected veteran, status as an individual with a disability, genetic information, or any other legally protected characteristics.
If you are a qualified applicant requiring assistance or an accommodation to complete any step of the application process due to a disability, you may contact us at firstname.lastname@example.org or +1 (415) 839-6885.