Ariya Hidayat Ariya Hidayat

Ariya Hidayat @ariya

  • Project: PhantomJS
  • Location: San Francisco, CA
  • Day job: VP Engineering, Shape Security
Ariya Hidayat
When Ariya Hidayat is not a VP of Engineering, he maintains PhantomJS, one of the most popular tools used by companies to write automated integration test for web applicaitons.

Backstory

In early 2008, I worked on Qt and WebKit. Part of my effort to understand the code base was to write tons of small examples. At some point, I was tired of creating little C++ apps, and I created JavaScript bindings to most of the useful parts of QtWebKit.

This initial effort later became PhantomJS, which was released for the first time in the beginning of 2011.

I spread the word about PhantomJS in the usual ways: I tweeted about it, I wrote blog posts on things you could do with it, I mentioned it during various discussions in meetups. When it became more well known in 2014, I started giving presentations about it.

Daily tasks

The amount of time that I spend working on my open-source projects varies a lot. It can get up to five hours per week, and sometimes, it drops to zero. It largely depends on my other life commitments—work, family, kids, etc. Triaging issues and answering questions take a lot of time! Surprisingly, it takes up more than any actual coding.

Rewards

Maintaining PhantomJS is similar to any kind of hobby projects: soothing and therapeutic. My projects become a good channel to explore my other creative sides, not bounded by a certain obligation.

PhantomJS in particular really helps me keep an eye on the progress of web platforms. Many open-source projects are not being used anymore after the first year of their existence, yet there are still users excited with PhantomJS after six years. So I will go on as long as someone continues to find it useful, and I keep learning new things.

"My projects become a good channel to explore my other creative sides, not bounded by a certain obligation."

Challenges

The maintainer does not always have infinite time at their disposal. Not every project is equal; some projects do not have the backing of paid and unpaid engineers working non-stop on every single problem or answering every single question.

Favorite moments

This is not a single moment, but I'm always happy when I'm going to a meetup and someone tells me that they find PhantomJS useful for them. It is a relief that my effort has not been wasted.

I'm always happy when I'm going to a meetup and someone tells me that they find PhantomJS useful for them.

Good advice

Plato once said, "Never discourage anyone who continually makes progress, no matter how slow."

No project is perfect and it is absolutely fruitless to please everyone. As long as your project keeps making progress (no matter how small it is), do not get discouraged by any kind of unfavorable color commentary.

What will your story be?

Learn how to run a successful project

Open source is made by people just like you. Learn how to contribute, launch a new project, and build a healthy community of contributors.

Read Open Source Guides


An easier way to contribute to open source

Every Friday, invest a few hours contributing to the software you use and love.

Contribute on Open Source Friday


Meet other maintainers

Yyx990803-project

Evan You

In 2013, Evan You founded Vue, a Javascript framework funded by the community on Patreon. In 2016, Vue reached 2,000,000 downloads.

Freakboy3742-project

Russell Keith-Magee

Russell Keith-Magee created BeeWare to fill a gap in his own process. Today, BeeWare is the go-to project for supporting Python on every platform.

Brettcannon-project

Brett Cannon

Brett Cannon made his first open source contribution more than 15 years ago. Now a Software Engineer at Microsoft, he's still a core contributor to Python, a project he has contributed to for more than a decade.

Get started for free

Public projects are always free. Work together across unlimited private repositories for $7 / month.

Sign up for GitHub

Subscribe to GitHub Open Source updates

Add your email address to get occasional open source updates in your inbox.