My Software Engineering Internship at the Wikimedia Foundation
I completed a 16-week internship at the Wikimedia Foundation, where I worked on a project aimed at increasing the adoption of Vue.js and the Wikimedia Design System Codex in Wikipedia’s frontend.
Project details & Challenges
After graduating from bootcamp, I was thrilled to had been selected to join the Wikimedia Foundation as one of eight interns for the 2023 Software Engineering Internship Program.
I joined the Growth team to work on a project aimed at increasing the adoption of Vue.js within Growth’s features. Over the 16-week program, I contributed to modernizing selected object oriented JavaScript interfaces, refactoring them using Vue.js and the Wikimedia Design System Codex.
For this project, I worked in an isolated development environment using a VitePress app, where I could prototype and test my components. My first task was to refactor the “Add a link” dialog.
The main challenge was that the existing dialog component in Wikimedia’s Codex didn’t fully meet the design specifications for my use case. As a result, my project involved a lot of cross team collaboration, to determine whether I should create a new component or work on extending the existing one.
It was a great opportunity to contribute to testing how the Wikimedia Design System adapts to different use cases and to work on a reusable dialog prototype that was later included at the Wikimedia Design System Codex Dialog’s docs.
I also had the chance to document and share the process in a blog post, where I walk through the implementation, sharing useful information for Wikimedia staff, and helping distribute Wikimedia technologies to a broader audience.
Highlighted learnings
Completing this project at the Wikimedia Foundation was, most of all, a great learning experience. Beyond the technical challenges specific to my project, it gave me the opportunity to take part in code reviews, use version control in a real-world environment, and learn and apply coding conventions and best practices.
Working within a large, complex codebase helped me become more comfortable navigating unfamiliar code and breaking it down to understand how everything fits together.
I also had the chance to see how others work and pair with experienced engineers, which leveled up my understanding of good code and effective remote collaboration.