# Moriel Schottlender: The Challenges of Modernizing MediaWiki's Monolith

EP-188 | October 22, 2024 | 46:10




Join Robby and Moriel Schottlender as they dive into the challenges of modernizing the MediaWiki platform, the backbone of Wikipedia. Learn about the evolution of a 23-year-old codebase, balancing flexibility with maintainability, and fostering a thriving open-source community.





## Show Notes

Welcome to another engaging episode of the Maintainable Software Podcast! In this episode, Robby sits down with Moriel Schottlender, Principal Software Engineer at the [Wikimedia Foundation](https://wikimediafoundation.org/), to explore the complex journey of modernizing [MediaWiki](https://www.mediawiki.org/wiki/MediaWiki), the software behind [Wikipedia](https://www.wikipedia.org/). Moriel shares her insights on what it takes to keep an enormous monolithic codebase maintainable while supporting an ever-growing and diverse set of global users. She highlights the importance of modularization, ownership, and the delicate balance between flexibility and stability in open-source software.

### Key Takeaways

**[00:00:51] Characteristics of Well-Maintained Software:** Moriel discusses the three crucial characteristics of well-maintained software: ownership, modularization, and documentation.

**[00:01:09] Ownership and Rules for Contribution:** Ownership goes beyond just fixing bugs—it involves understanding the architectural purpose and maintaining consistency even as teams change.

**[00:03:35] Product Vision's Role in Maintainability:** Why a clear product vision is essential for maintaining software, even in the face of organic growth.

**[00:07:14] Balancing Experimentation and Long-Term Planning:** Moriel shares insights into how Wikimedia balances rapid experimentation with careful, long-term architectural planning.

**[00:07:32] The Evolution of MediaWiki:** MediaWiki's growth from a small project to the backbone of Wikipedia, now supporting over 900 wikis, and the challenges that come with scaling.

**[00:14:18] Modernizing a 23-Year-Old Monolith:** Robby and Moriel dive into the challenges of modernizing MediaWiki’s architecture, including the difficulties of updating a monolithic structure.

**[00:17:15]Wikitext vs. Markdown:** Moriel explains why MediaWiki uses its own Wikitext language instead of Markdown and the unique challenges it presents.

**[00:22:25] Architectural Flexibility for the Future:** The importance of having a flexible architecture that can adapt to the evolving needs of users and technologies.

**[00:26:04] Technical Debt and Modularization:** How Wikimedia approaches technical debt in MediaWiki and prioritizes architectural interventions to improve modularity and maintainability.

**[00:39:00] Community Contributions to MediaWiki:** Strategies for increasing developer contributions and how Wikimedia empowers volunteers while maintaining software quality.

**[00:41:59] Advice for Aspiring Open Source Contributors:** Moriel shares encouraging words for anyone looking to contribute to open-source projects, emphasizing that everyone can make a meaningful impact.

**[00:35:44] The Role of Documentation:** Moriel discusses Wikimedia's efforts to improve documentation and ensure it's useful for both developers and end-users, leveraging the strengths of wiki-based contributions.

**[00:30:29] Celebrating Small Wins:** Moriel talks about how Wikimedia celebrates small victories to keep team morale high in the face of big challenges.

### Resources Mentioned

- [Moriel's Website](https://moriel.tech)
- [Moriel on Mastodon](https://notacult.social/@mooeypoo)
- [MediaWiki Documentation](https://www.mediawiki.org/wiki/Documentation)

### Book Recommendation:

- [_Year Zero_ by Rob Reid](https://www.amazon.com/Year-Zero-Novel-Rob-Reid/dp/0345534514)

### Connect with Moriel

- [Moriel on LinkedIn](https://www.linkedin.com/in/moriel/)
- [Instagram](https://instagram.com/mooeypoo)
- [Twitter](https://twitter.com/mooeypoo)
- [GitHub](https://github.com/mooeypoo)
- [Mastodon](https://notacult.social/@mooeypoo)

### Thanks to Our Sponsor!

Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error-tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and other frameworks.

It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.

Keep your coding cool and error-free, one line at a time!&nbsp;

Use the code **maintainable** to get a 10% discount for your first year. [Check them out!](https://www.appsignal.com/?utm_source=maintainable&utm_medium=podcast)








## Transcript



