Open Source journey of Marc Anguera

Marc Anguera (@markets)
  • Stars
  • Global Rank 1,131
  • Followers 342
  • Languages Ruby, HTML, JavaScript
  • Location Spain
github Follow @markets on GitHub

1. Can you briefly introduce yourself and share your background in software development and open-source?

I'm Marc, a web developer and CTO based in Barcelona. I like to build digital things and libraries. I started in the open-source world when I knew Rails. My first experience was to extract some Ruby code into a "gem" in order to re-use it in 2 different Rails apps I was working at that time. Now I'm maintaining more than 10 open-source projects (some of them with some success!).

2. What inspired you to start contributing to open-source projects, and how did you begin your journey in the open-source community?

When I met Rails and the RubyGems ecosystem I was shocked at first, it was to easy to create a plugin and share code between different apps! I came from Java and PHP pre-2010 era and believe me... managing the environment wasn't fun :)

3. Can you describe some of the most influential or successful open-source projects you have contributed to and your role in them?

Ruby and Rails libraries:
- [creator] Invisible Captcha: Anti-spam solution for Rails
- [creator] Maily: Rails engine to preview emails in the browser
- [creator] MiniI18n: Simple, flexible and fast Ruby Internationalization library
- [creator] Jekyll-Timeago: Ruby library to compute distance of dates in words, with localization support and Jekyll integration
- [maintainer] Sidekiq-Cron: Scheduling add-on for Sidekiq
- [maintainer] VideoInfo: Get video info from Dailymotion, Vimeo, Wistia, and YouTube URLs.

JavaScript projects:
- [co-creator] Ralix: Microframework for building and organizing Rails front-ends via Webpacker

Starter Kits:
- [creator] Rails + Ralix + Tailwind
- [creator] Middleman + Bootstrap

- [creator] Awesome Ruby: A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software
- [maintainer] TimeOverflow: Time Bank management system
- [co-creator] Tonic: Automatically convert a YAML/JSON into a "filterable" collection website

Now also helping to build Open Source Heroes!

4. How do you stay up-to-date with the latest developments and best practices in your technology stack or the open-source community in general?

I like to follow the development of the main tools I use in my daily basis. I've also subscribed to a couple of weekly newsletters (ok! probably some more) related to the open-source ecosystem.

5. What challenges have you faced while working on open-source projects, and how have you overcome them?

Probably... releasing new versions of plugins with millions of downloads :) In order to mitigate this, instead of releasing more "beta" versions, I try ship as early as possible and get real feedback from real production usage.

6. What advice would you give to someone looking to start contributing to open-source projects?

Trying to contribute to big-massive projects is hard, I'd start for example contributing to any small gem/package/plugin you're currently using in your application, trying to improve them with patches, features, documentation, ... And probably, as next step I'd start by writing "your own" plugin. There is no better way to learn than try!

7. In your opinion, what are the key factors that contribute to the success of an open-source project?

We should probably first define "success", but for example if we're speaking about real usage, apart from writing useful abstractions, you need to spread the word in several channels, as much as you can: blog-posts, Twitter, Reddit, ProductHunt, Newsletters, ...

8. How do you approach problem-solving and debugging in your projects, particularly when dealing with open-source code?

When you're maintaining a long-term project, you're probably giving support for different versions of your runtime... The most reliable way I've found to deal with this problem is to rely on a CI service (GitHub Actions is pretty decent nowadays).

9. What tools, resources, or platforms do you find most valuable for managing your open-source work and staying connected with the community?

Mostly GitHub, Reddit, Discord and now Open Source Heroes!

10. What is your process for evaluating and selecting open-source projects to contribute to or use in your own work?

I usually do a couple of things:
- Research available options in the area
- Review how project is maintained and take a look to the code and dependencies

11. What are some common misconceptions about open-source development that you'd like to address or clarify?

- Open doesn't mean "free"
- Open doesn't mean I'll fix or debug your issue without any discussion and good reporting. And please be kind!

12. If you could only use one programming language for the rest of your life, which one would it be and why?

With no doubts... Ruby ๐Ÿ’Ž๐Ÿ™Œ

My Projects ยป