fbpx
A Successful Open Source Story Uwe Trottmann – SeriesGuide

A Successful Open Source Story Uwe Trottmann – SeriesGuide

We had the opportunity to interview Uwe Trottmann, creator and principal contributor of the app SeriesGuide with over 1 Million downloads on Google Play. 

Uwe Trottmann

Uwe Trottmann

Small Business Owner at SeriesGuide

He received his M.Sc. Computer Science at TU Munich in 2013 and is interested in making software usable for everyone. If at all, he is only looking for part time work next to his other endeavors.

Download SeriesGuide!

Dorian: For how long have you been coding?

Uwe: That’s a very good question. I started in school in 2004 because a friend of mine coded a basic vocabulary training program in Visual Basic. I started to improve that program and later enrolled in a programming class in school, which was very new at the time. Right now it’s common to have computer science classes in school, but back then it was not the standard. I started doing other side projects for fun, but only got serious about coding when I started studying computer science at University in 2008.

Dorian: Do you think going to University helped your projects?

Uwe: Yes, absolutely. There’s a lot of technical and theoretical background that you are not exposed to, if you just program. At University, the coding exercises were very easy for me, because I had a lot of practice beforehand. However, I learned so much about other things like designing systems, Software Engineering, how to manage projects. Also the theoretical background, like data structures, how to do things efficiently. Also things I never would have looked at, like computer architecture, how stuff works on the lower levels, etc. Which is interesting to know, but it doesn’t really help with the stuff I am currently working on. 

Dorian: But that knowledge of the lower levels has maybe helped you solve some bugs?

Uwe: It has a little bit. I think the only relevant thing that I still come across now is bit operations. But things like registers, or programming in assembler, no. This is probably more helpful for the C guys, which program at a lower level. I like working at a higher level. So I program in Java, Kotlin, for Android, and Windows back in the day. These all abstract the lower level away and I didn’t have to worry about memory management, which I didn’t really like doing back then. It’s complicated and very easy to get wrong. I don’t know if you have heard about pointers, but they are one of the biggest problems with programming in C. If you get a pointer wrong everything breaks, you have security issues, and so on. If you talk to C developers about pointers, they could go on forever.

Google play store java embedded database java object database livedata android Mobile Database open source database software qsl alternative SeriesGuide sqlite alternative

Uwe Trottmann at Droidcon Berlin 2018.

Dorian:  How did you start up with Open Source? Did you start right away out of University or did you do work for other companies and do Open Source on the side?

Uwe: In the beginning I had my own projects and didn’t know about Open Source. The first thing that I open sourced was SeriesGuide. My work on SeriesGuide started as a hobby because I had recently switched to Android and was missing the series management app I previously used on another platform. I first posted SeriesGuide to Google Code and then the Google Play Store in 2010. I later moved it to GitHub 2011. My work got more serious during my computer science studies at University. Once I started using GitHub, I added more libraries that SeriesGuide uses and I contributed to other projects on there as well. GitHub really accelerated the SeriesGuide development.

Google play store java embedded database java object database livedata android Mobile Database open source database software qsl alternative SeriesGuide sqlite alternative

SeriesGuide Statistics Screen

Dorian: Did having access to other Open Source projects help you develop SeriesGuide?

Uwe: Of course, it tremendously helped. I guess SeriesGuide is probably 80% other libraries, it’s Open Source so you can go check. Some of the API integration with the TV show database I used back in the day was an Open Source library, so I built on top of that. I then replaced it with my own later. Also if you know Jake Wharton, the Keynote speaker for Droidcon Berlin this year, he was one of the early contributors to SeriesGuide and I used some of his libraries in the beginning like ActionBarSherlock. Then later the networking and logging libraries he was working on. Obviously I used the Android Open Source libraries once they came along. SeriesGuide would not exist without Open Source software.

Dorian: Why did you choose Open Source as the foundation for your paid app?

Uwe: It started as free and Open Source at the beginning on the Google Play Store, because I was just a computer science student and didn’t have the need to make money. It was also rather complicated to charge money, because you have to set up your own company. Around three years after I posted it to the Play Store, due to people suggesting that I charge money, I started developing extra paid features, such as notifications, theming, and then later the syncing component.

Google play store java embedded database java object database livedata android Mobile Database open source database software qsl alternative SeriesGuide sqlite alternative

Shows on SeriesGuide

Dorian: Is the core of your project still Open Source and will it stay like this forever?

Uwe: The whole app besides the small server component is public domain. And the spec for the server component is open, so you could build your own if you wanted to.

Dorian: What is the best thing about SeriesGuide?

Uwe: Honestly, I’d have to say the community. Back in the day I had a few people who really pushed me to improve the app, like Jake Wharton, Craig, Chris, and other friends. They really helped me get SeriesGuide off the ground. Without them I would have fixed a bug or two, and then would have moved on. Because of the continuous requests and a growing community, I had to keep going and make it better. And without the community paying for the app, I wouldn’t have the means necessary to continue working on it.

Dorian: What do you dislike about Open Source?

Uwe: Honestly, in the beginning I thought open sourcing would be risky because someone could copy my app, slightly modify it and then publish it, taking credit for my hard work. Because of that I have a separate private repository with new features that I hold off publishing for a few days. But if I remember correctly, this only happened once and was not an issue because the developer didn’t continue development. I am not 100% certain it was a copy, but the code looked very similar to mine. Right now, I don’t think this is an issue anymore. If people use my app they expect my updates because I maintain the app. If somebody copies it, they don’t have my work power and knowledge.

Google play store java embedded database java object database livedata android Mobile Database open source database software qsl alternative SeriesGuide sqlite alternative

Uwe’s contribution to SeriesGuide on GitHub as of July 6th, 2018.

Dorian: How do you manage your time between developing Open Source projects and your work?

Uwe: I work Mondays and Tuesdays on my main job, kind of as a backup. The rest of the week whenever I have time, I work on SeriesGuide and related Open Source projects. Of course it never ends up being three days. If somebody wants to contribute, I welcome pull requests. I also allow people to translate the app into their language. If somebody has a bug to report, the easiest way to do that is on the website. If people want to contribute code, they can go to the GitHub contribute file which lists everything you need to know.

Dorian: Do you have more features in mind right now?

Uwe: There’s a feedback site where people can request changes, and there’s no shortage of suggestions! I also have ideas in mind, but some things are bigger and I don’t want to do them right away. It’s a constant struggle to get things done. I am not out of ideas; it’s more of a time problem right now.

Dorian: You have a very good time structure, which is encouraging. How hard is it to turn an Open Source project into a profitable business? How did the community react that you have built a business with paid features on top of an Open Source project?

Uwe: The overall reaction was positive. Obviously there are some people that aren’t happy with the presence of paid features. I always tell them that the app has no ads in the free version and you can do pretty much everything except for some convenience features. I would say that for most people this is not an issue because the basic functionality of the app is still freely available. One of the early complaints was that I charge too much money. So in the beginning I was charging 1€ as a one time payment for all access, then increased prices to 3€ per year or a 7€ one time payment. I explained this was to support myself and future updates, basically development time, and most people understood that. I clearly mention that inside the app, paying is not only to get some features but also to support me and future updates. So far most people like the idea and buy into it. Obviously, if you look at the share of paid vs free users it’s nowhere near something like 50/50, it’s way less. But I have a core set of users who believe in the app and support it financially. So far this method has gone well. I am also pushing people towards subscriptions now to secure future development.

Google play store java embedded database java object database livedata android Mobile Database open source database software qsl alternative SeriesGuide sqlite alternative

SeriesGuide X Pass

Dorian: Do you think the complaints came mostly during the shift from free to some paid features?

Uwe: Yes. In the beginning some people were upset, but as I only made convenience features paid, it wasn’t a huge issue. That is also a takeaway for me: don’t have a free app and then suddenly make half of the features paid, because then users will get upset. I was very careful to only make new or some convenience features paid. Or when I made the previously free theming features paid, I made an effort to spruce them up before. But features like notifications and server syncing were new and weren’t available for free before I implemented them.

Dorian: Do you have any tips for developers that are starting with their Open Source projects or are thinking about open sourcing their code?

Uwe: The best thing you can do for your project is to Open Source it, or in short: put it on GitHub. If you don’t put it online, people won’t find it. Another good way to get traction is to contribute to other projects so people know you exist. And then if you ask for help or feedback about their library you are using in your project, people will get to know your project and maybe look at it. Contributing is a good way to get into the community and be noticed. Give and be given, right?

Dorian: Now we have some fun fact questions. First, what do you think about Microsoft’s acquisition of GitHub?

Uwe: I don’t really care, because Microsoft has done some great things for the Open Source community. Azure runs Linux now and they have their own Linux operating system. It’s still good to know that there is the Open Source alternative GitLab that people can switch to if needed. However, it’s sad that things get monopolized into those big companies. In the end, we are maybe going to end up with only Microsoft, Google and Amazon. GitHub sold out, but we’ll have to see what happens.

Dorian: Do you have a favorite book, film, or game?

Uwe: I’m currently reading the Expanse series, which is also on TV. But my favorite series is the Culture series from Iain M. Banks. That blew my mind. For TV, there’s so many options. I generally like science fiction. I recently watched Killjoys and Altered Carbon which were both really interesting. Star Wars Rogue One is my favorite recent movie. If you want to know what I’m watching, follow me on Trakt.tv, a tracking service similar to SeriesGuide, but web-based, that SeriesGuide also integrates with.

Thank you Uwe Trottmann for the interview, and thank you for reading! 

If you enjoyed this open source interview, sign up for our newsletter! We are going to be conducting more interviews like this with Open Source Developers.

We would like to point out that SeriesGuide is not affiliated with ObjectBox

Read more articles

Google play store java embedded database java object database livedata android Mobile Database open source database software qsl alternative SeriesGuide sqlite alternative

Key Ideas to Empower Women in the Tech Industry

Key Ideas to Empower Women in the Tech Industry

Highlight-Women in Tech Panel at Droidcon Berlin 2018

Meet the speakers

This year at droidcon Berlin 2018 during the interactive day we were lucky to have the opportunity to host the Women in Tech panel. Our panelists had some very interesting things to say and we wanted to share the highlights. From left to right: Dr. Vivien Dollinger LinkedIn (ObjectBox), Annyce Davis LinkedIn (Off Grid Electric), Anita Singh LinkedIn (Winnie), Lara Martin LinkedIn (Babbel), and Kevin McDonagh LinkedIn (Novoda).

 “Free beer and ping pong doesn’t work for everyone” – Anita Singh

Women need equal pay in the workplace and companies should be more public with those numbers. There is a need for proper management training and women have left companies because managers don’t know how to adequately deal with discrimination and bias.
java object embedded database tech techstars android
Feminism empowerment equal opportunity technology tech women female droidcon android

“Being a mother helps you prioritize things and gives you a new perspective” “If you want something done give it to a busy person” – Annyce Davis

Being a mother helps you prioritize things, be more organized and empathetic at work, and realize that just as your own children are all different, so are your employees. The customers as well are all different and having that motherly insight can help reach a broader customer group.

“I had to look for role models” – Lara Martin

I remembered looking for blog posts of people doing career changes as I wanted to. I found one written by a woman who moved to Berlin and successfully started an iOS development career. The article gave me reassurance that I was capable of changing career paths and succeeding as well.
Feminism empowerment equal opportunity technology tech women female droidcon android
women in tech droidcon berlin 2018 moderator diversity equal opportunity

“Companies might still need to go the extra mile to enable gender equality in the future.” – Vivien Dollinger

For example, last year’s Techstars London class was the first class that was nearly 50/50 male and female CEOs. Max Kelly (MD) achieved this by searching actively for female founders, going the extra mile to diversify the program.

“Men should be feminists; I am one!” – Kevin McDonagh

It is easier for women to be in the tech industry in big cities such as London, New York, and San Francisco, but in other places, women have more problems fitting into the stereotypically male industry. There must be effort to changing company culture and to offer equal opportunities to both genders. In the current tech culture, men are heard more, so men must take the initiative to speak out about this issue.

General summary

The panel engaged in a lively discussion about women’s experience in the Tech industry from their personal experiences, and how the industry can adapt to better support women and families. Annyce Davis and Vivien Dollinger believe that gender equality needs to start early with children’s books showing less gender bias and inspiring girls with tech role models. Bringing in the male perspective, Kevin McDonagh identified himself as a feminist and encouraged more boys and men to embrace feminism. Anita Singh and Lara Martin talked about the women role models that inspired them to pursue a career in the Tech Industry, including Kalpana Chawla, the first woman of Indian origin in space.

We had a wonderful time hosting the Women in Tech panel, and we would be thrilled to make it an annual tradition – we already have new panellist ideas! If you would like to get in contact with us about the panel, message us on Twitter, Facebook, or LinkedIn.

women in tech droidcon berlin 2018 moderator diversity equal opportunity

Daniela Gausmann  Panel Moderator LinkedIn – Angel List profile  Download her presentation: 2018-Womenintech-Panel-PDF

Thank you for your support!

Feminism empowerment equal opportunity technology tech women female droidcon android
droidcon berlin 2018 10th birthday android mobile database java kotlin
Feminism empowerment equal opportunity technology tech women female droidcon android
women in tech droidcon berlin 2018 moderator diversity equal opportunity

Related studies

women in tech study facts android droidcon equal
Feminism empowerment equal opportunity technology tech women female droidcon android

Related videos

Let’s dive into the iOS World

Let’s dive into the iOS World

Two days ago, we attended the Swift Lighting Talks Meetup in Munich for the very first time. We had beer, pizza and listened to Sebastian Sellmeier’s presentation on making programming accessible and Denis Grebennicov’s presentation on the process of developing a Document Scanner app. It was fun and very instructive, thanks!

We also gave a 15 minute sneak peek talk about our ObjectBox iOS binding. Markus covered the basics of ObjectBox before sharing how we managed to overcome iOS constraints in our APIs. Finally, he disclosed the first (early) performance benchmarks on iOS, which we think are quite encouraging…

Check out the full talk in the video below.

In case you want to learn more about ObjectBox on iOS, sign up here for news and Early Access.
Special thanks to Stefan Mayer-PoppThe Munich iOS Developers Meetup for organizing this event and to Mayflower for hosting it.

 

We officially released our YouTube channel, we will post videos about ObjectBox and Tech in general. Subscribe to stay tuned.

 

ObjectBox 1.0

ObjectBox 1.0

ObjectBox 1.0 is a SQLite database replacement. It makes object persistence on mobile (and IoT) devices simple and fast.

Code actually tells best what ObjectBox does (yes, it also does Kotlin):

Don’t get us wrong: we think SQLite is a great piece of software and SQL is really powerful. We just do not love touching SQL so much when developing apps. That’s why we developed a very fast and easy alternative.

Being lazy or eager? Relations

ObjectBox comes with strong support for relations. How do you store a new object along with referenced objects? It’s simple:

Thus, with a single put(playlist), ObjectBox will not only persist the Playlist object but also the two associated Song objects. This also works with objects that were already persisted in the database.

A common challenge with relations is that they are typically loaded lazily. This can cause brief delays when accessing a relation for the first time, because the data must be pulled from the database at that moment. This in turn can cause the UI to slow down, e.g. when scrolling through the list (known as the “N+1 query problem”). Obviously, this may be harmful to the user experience and thus something you try to avoid. That is one of the reasons some ORMs do not support relations at all.

ObjectBox solves this challenge by enabling queries to preload relations in the background – aka “eager loading”. This makes processing the query result in the main thread super fast. Once the query is processed, eagerly loaded relations do not touch the database at all.

Eager loading is part of the Query API and not the entity itself. This gives you full flexibility over when to load what. For each query, you can specify which relations to preload like this:

POJOs

We want to keep things simple. The objects returned from ObjectBox are POJOs (plain old Java objects). When you get an object, all properties are initialized and ObjectBox will never change the values. And, of course, you can pass those objects around in different threads.

Let’s also have quick look on entity classes. First, ObjectBox does not enforce a specific base class. You are free to extend from any class. Second, the classes also define the data model in the database (the “database schema”). Adding and removing entities/properties just work. Only renames require your interaction. The days of CREATE TABLE scripts are finally gone, and typical data model updates do not require migration scripts.

Fast

We keep saying ObjectBox is fast. But how fast? And for what? We put together an open source benchmarking app, which come with a couple of performance tests for CRUD, queries, etc. Please check it out, have a look at the code, and make up your mind on the performance of ObjectBox. We really want to provide fair benchmarks.

Thank you!

A big thank you goes out to everyone who helped us in our beta phase (e.g. reported GitHub issues, blogs, …). It was only with your help that we reached version 1.0 now! As a special sign of appreciation, we’ll send out exclusive “early adopter” ObjectBox T-shirt: just write to us (contact@… – our domain) by September, 15th, with a link to your contribution along with your size and address.

We will add each and everyone that supports us and is part of the ObjectBox journey on our About us page! ObjectBox really is about you. So, let us know how you contributed (small things sometimes matter most…) and send us your picture and link (e.g. to your GitHub Account, Website or LinkedIn page).

Roadmap: bring your app to the edge

Our vision for ObjectBox is edge computing. It brings the data back to the user, to the device in his hand or home. We believe this is the future of computing. Small devices are tremendously powerful now, and it’s time to claim independence from the cloud while keeping in touch.

Before we go all edgy, we will address some essentials: Our plan for Version 1.1 is to rework the query API to and make expose object link API (aka “joins”). We also have to do our homework with some corner cases for data model changes. And of course, you may still find rough edges with the 1.0, which we’ll get rid off as soon as possible. We are dedicated to make ObjectBox a pure pleasure to work with.

We’re continually looking for feedback. Please do let us know what you think about ObjectBox: either by writing us at contact@… (our domain), or by answering these quick questions. Thank you!

Join the journey

Join the journey

We’re bringing plaid mode to app developers. To do that, we have already implemented the fastest object database on mobile – but that’s only the beginning. We just joined Techstars London, one of the top accelerator programs in the world, to get a performance boost building ObjectBox and we’re just having a typical Scotty-moment:

“Hours instead of days! Now, we have minutes instead of hours.” [Scotty]

So far, Markus has been coding all our solutions (greenDAO, EventBus, essentials, ObjectBox) by himself with very little coding support.

Now, we want to get you involved!

 

Join the team now and be part of our Techstars journey (if you’d like, we’re definitely open for remote work):

And if you just have a bit of time to spare:

  • add open source projects, like e.g. further CompatLayers to ObjectBox
  • check out release candidates and give us feedback
  • provide support to other ObjectBox users
  • tell others about ObjectBox
  • send us database jokes on Fridays 🙂 #dbjokeFriday
  • translate our documentation into Chinese
  • write tutorials for ObjectBox

And these are only the ones that are obvious to us at the moment…

“So much universe. And so little time.” [T. Pratchett]

Please send us an E-Mail, if you would like to join our journey (join[at]objectbox.io). We’d love to hear from you and take this journey to the next level together.

Days to official Techstars DemoDay

Day(s)

:

Hour(s)

:

Minute(s)

:

Second(s)

 

Credits:

  • Thanks to www.marlodeedesigns.com for sharing the upper plaid image for free use.
  • Thanks to Karen Arnold for sharing the second plaid image for free use.
  • Thank you to Margarida for feedbacking and proofreading our writing efforts.