Skip to content
Photo of Marc Cornellà

Inspired to not only consume, but contribute

How Marc is driven by the community, its challenges—and due dates.

Marc Cornellà // @mcornella

My name’s Marc. 👋 I am a developer and sysadmin based in Barcelona, and I’m an official maintainer of Oh My Zsh.

Barcelona, Spain

@MarcCornella

Organizations

The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.

When I was a kid, my father would bring home old and obsolete electronics equipment from work. Once, he found an old computer and gave it to me to do whatever I pleased. I would install different versions of Windows and other programs, then totally ruin the systems and start them again. That’s how my love for computers started, and eventually grew into programming. One time, in a computing class, I made a little “virus” disguised as a famous soccer game that created up to 1,073,741,824 folders in the program’s network share. My teacher was not amused.

By the time I was 16, I was hoarding every PDF document and digital book I could find about computers. My favorite was a series of magazines called Hack x Crack, from the early 2000s, because they were written for readers at any level of expertise. It made common hacking concepts very easy to understand, and taught me about the OSI model, how to program a client-server program using sockets, and various internet protocols like File Transfer Protocol (FTP) and Simple Mail Transfer Protocol (SMTP). It helped me go from knowing next to nothing to understanding how to program in C and Linux.

Years later, open source was becoming more democratized, and I found myself following all these really smart open source contributors on Twitter. They made it look less daunting to start contributing, and it felt like you could make a difference even if you started small. It moved me to actually do something and contribute rather than just use open source. To be more of a producer, and not just a consumer.

Photo of Marc Cornellà working in a café.

Seeking out the challenges of open source

Today, I’m a developer and sysadmin based in Barcelona. I’m also proud to say that I’m an official maintainer of Oh My Zsh, a community-driven, open source framework for managing Zshell (Zsh) configurations. It was started by Robby Russell, who had been building web apps for nearly 20 years and was trying to make it easier for his employees and peers to take advantage of his Zsh configurations. We now have over 1,500 contributors and 200-plus optional plug-ins.

Oh My Zsh helps a user customize their shell so it’s more intuitive and easy to use, like having a git prompt, or entering a virtualenv folder and automatically activating the virtual environment. Basically it makes developers, sysadmins, and DevOps engineers more productive.

I started working on Oh My Zsh around December 2014. I had discovered CodeTriage.com, where you can find open source issues for projects you normally use. There was one in Oh My Zsh that looked intriguing: It was challenging, but not so hard that I couldn’t do it. So I made an attempt to fix it, and it worked!

My proudest moment in open source was when Robby made me an official collaborator in 2015. He created an issue where he detailed everything that I had done up to that point, and welcomed me to the project and gave me committer rights.

One of the latest problems I solved was the installer features. We were getting a lot of requests for specific features, and I finally got around to coding it in two days—and now everyone’s super happy with it. At the moment, I really like GitHub Actions. I started using them to label pull requests. Our project is a bit different in that it’s composed of a lot of small parts, and one of the methods I used to drive down the number of PRs was to bundle a bunch that made changes to the same parts of the codebase, then merge or close them all at once.

Photo of Marc Cornellà standing in a Barcelona street.

Striving for balance and the art of saying no

I’m inspired by hard problems and due dates. Due dates are a necessary motivator for me. Without them, I might not get anything done. The title of my book would probably be, We got there… eventually. Because I tend to delay everything. I’m a procrastinator.

Most of the time, when I get home from my full-time job, I just want to relax. But then I’ll get this itch to work on Oh My Zsh, which means I end up maintaining on weekends. I would love to improve my work-life balance, but I just don’t really know how.

I would suggest that new maintainers automate everything. It will save you hours every day, and give your project room and support to grow. By automating trivial tasks, you can focus your limited time and brainpower on more pressing issues. For me and Oh My Zsh, that might mean labeling issues, closing stale ones, and classifying PRs by the changes they make to the codebase.

It’s also important to learn how to say no, and recognize when to say it, which is very hard. It’s really an artform. Jessie Frazelle has a good list of how to successfully reject things in a kind way. Speaking of Jessie, there are so many people to thank who support Oh My Zsh. Robby, of course. Andrew Janke, who made a lot of early contributions. Larson Carter, who’s the other maintainer at the moment. He’s really pushing me to be better, and to make a discourse channel and create blog posts for the improvements we’re striving toward. I’d also like to acknowledge the work of Mikeal Rogers, who looks at trending open source projects and shares his own curated list (he’s also great on the Changelog podcast).

Landing on a list of shame—but staying positive anyway

Most of my interactions with the open source community are very positive. Sometimes, though, people have less-than-ideal reactions. Once, a popular Oh My Zsh command was using our domain instead of the GitHub URL. Let’s Encrypt didn’t exist yet, so the URL was using HTTP, not HTTPS. Then this comment came through: “Hey. This is not right. People will be hacked. You are now on my list of shame.” We had to laugh at making someone’s “list of shame.” But the comment led to Oh My Zsh becoming more secure because we now use the HTTPS URL. So there’s a certain balance to be found.

If your first reaction on a project that hasn’t been completed is, “How is this still open?” or “Why is nobody doing anything?” that’s not very helpful. I think it’s important to understand the why, or at least assume there’s a reason something hasn’t been addressed yet. You might type out an angry comment, but then delete it. Think about your message for a second, try to be empathetic, and then communicate. Undoubtedly the interaction will have a more positive outcome.

Silhouette of Marc Cornellà working in front of an open window.

A lot of this comes from being a producer, not just a consumer—my original intent when getting into open source. When you’re using a project that you haven't contributed to, there’s this tendency to overlook or not think about the journey it’s had. This makes it seem like it’s a bigger thing than it actually is, and when you first encounter an error or an oversight, it seems shocking because it runs counter to your perception. Once you free yourself from this inaccurate notion and start seeing it as a flawed product made by flawed people, you become a more empathetic user. This ultimately allows you to become a producer, and more importantly, a better consumer.

Open source makes the world just a little smaller

I haven’t met anyone in person from Oh My Zsh but there is a strong open source developer community in Barcelona. Once, someone from the Balearic Islands submitted a pull request and then emailed me later to share, “Oh, it’s very nice that a fellow Catalan is maintaining this! Congratulations! Also, can you please look at my pull request?” It was a nice reminder that we’re all connected and in this together.

GitHub Sponsors allows you to financially support the people who build and maintain the open source projects you depend on. One-hundred percent of your sponsorship goes toward helping Marc maintain Oh My Zsh.
Support Marc on GitHub Sponsors

About The
ReadME Project

Coding is usually seen as a solitary activity, but it’s actually the world’s largest community effort led by open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities.

The ReadME Project is part of GitHub’s ongoing effort to amplify the voices of the developer community. It’s an evolving space to engage with the community and explore the stories, challenges, technology, and culture that surround the world of open source.

Follow us:

Nominate a developer

Nominate inspiring developers and projects you think we should feature in The ReadME Project.

Support the community

Recognize developers working behind the scenes and help open source projects get the resources they need.

Thank you! for subscribing