Open Source Spotlight: Ombi with Jamie Rees

Jamie Rees is the creator of Ombi, a tool that lets users manage users and request content on Plex.

Ombi can be linked to multiple TV Show and Movie DVR tools to create a seamless end-to-end experience for users.

Jamie likes to game in his free time and currently lives in the UK.

In the early days of Ombi, how did you find contributors?

I must be honest, I didn't really find contributors, they found me.

The project started off as a learning experience. I started it to learn a new framework rather than the standard stack (it was using NancyFX rather than AspNet MVC at the time). I suddenly realized that people were interested—and because they found it interesting, they naturally wanted to contribute and make the project better.

Things like hacktoberfest and firsttimersonly.com have also helped. I am happy to state that I have helped people start contributing to open source applications through this project.

If you are a newbie to open source contributions and think some projects are out of your league, try firsttimersonly.com, or just contact the maintainers of the project in mind, and I'm sure they will help you.

How much time do you usually set aside for Ombi?

I try and set as much time as possible, which is pretty easy, actually. Ombi is not like other traditional open source projects. It's pretty different.

I am a married man, with a 3-year-old, a puppy and quite a demanding job with tight deadlines...so I work on Ombi whenever I get a few hours (once the little one is in bed, and I'm not doing actual work). At this moment I have two options, 1. Spend time with the wife, 2. Work on Ombi. It's a challenge keeping the wife happy, and then keeping my users happy. (Puppy tax is attached.)

But usually, I spend around 10 hours a week on Ombi. But that fluctuates between 20 hours one week and 0 hours in the next one.

When the going gets tough, what keeps you going?

This is a difficult question to answer, since over the past few years of working on Ombi, it's gotten tough quite a few times and there have been many occasions where I have just been burned out. It's not easy coding 9-5 and then 8-10, and at times it feels like having two jobs, but one I’m not being paid for.

But the one thing that has kept me going is the users. I have some of the best users I have ever met and a good community has been built upon this application. I have met some amazing people along the way.

That is what keeps me motivated. My users are always asking for new features and bug fixes. If no one was using the application, I would have stopped a long time ago.

Also, a shout-out to my wife who does a lot to support me. She doesn't understand anything about software development, but she listens to me and she is always there for me to lean on.

Did you ever feel like you were close to burnout?

Burnout is real.

I am not going to go into the specific details of it, but I have had burnout while developing Ombi. I was so stressed. It felt like Ombi was the elephant in the room that time, and every time I got a notification about new GitHub issues, I'd dread looking at it.

I think with open source, many users do not understand that we are providing a free service for them. They expect us to support and resolve issues 24/7.

I have dealt with many users like this and it's never a good experience. It leaves you wondering like why you need to put up with this.

But then, on the flip side, there are those users that completely understand that it's a "hobby" which I work on on my free time.

To solve it, I try to remove myself from the product completely for a period and have some quality family time without responding to support questions via my phone.

How do you ensure quality in Ombi? What about the quality of tests you run?

I have experimented with many different testing types over the past few years with Ombi, and it's always been quite an iterative approach to things.

At one point, we had UI automation tests running with Selenium WebDriver and Cypress. But I had to drop that because I just didn't have the time to maintain it and also develop new features and bug fixes.

One thing that has consistently worked is having unit tests and a large group of users that run builds.

Since my users host Ombi themselves, with different hardware and services, and endless possibilities of combinations, it gets hard for me to test.

That's why there is a large group of users that run the develop branch of the application that will report any bugs or potential issues—after which I will investigate and fix if needed.

There is also the issue of needing to be extra careful while committing any code, to ensure that I have tested as many scenarios as possible. This will ensure that I don't make the issue worse.

This attitude works quite well for me, since develop builds are usually more stable than the master.

I also run develop builds on my own server and "dogfood" the product, so I can identify things I wouldn't usually notice.

Now, the quality gates for Ombi are not perfect and could definitely be improved, but this is what is currently working—and like I mentioned, it's iterative, so everything could be completely different next year.

What do you think is the best way for developers to network? What social media networks do you frequent?

For networking, I use Reddit, dev.to and Twitter. I also follow a load of blogs that I check every morning to keep up-to-date with the latest trends and changes in the .net world.

What do you do in your free time?

I enjoy playing video games when I get some time. Recently, I've been playing Luigi's Mansion 3 with my wife and it's good!

Check out Ombi on GitHub.

We ❤️ open source. Fill out this form to get free, unlimited access to BrowserStack for your project's testing needs.

(Responses are edited for clarity).

Recommended reading