Happy Monday, everyone!

We made it to the sixth issue! Thank you to everyone who read last week’s issue ❤️


📆 Today I’m featuring Paweł Madej and Malin Sundberg.

Paweł is the creator of Family Graves and Code Conf. Family Graves is an iOS app that will lead you directly to the grave sites of your love ones. Code Conf is an iOS app that contains over 400 tech talks curated from many different conferences. Code Conf allows you to watch talks, search for your favorite speakers, and more! I first got introduced to Paweł when Indie Dev Monday was launched. Not only did Paweł learn iOS while creating two apps but he did so while working full time as a Pharmacist 😊 Paweł is exactly the kind of indie developer that I was looking to spotlight in Indie Dev Monday. Both Family Graves and Code Conf came from personal problems that he was experiencing. He solved them while learning iOS and while also learning Vapor (a Swift server-side framework). I’m so happy to get to introduce Paweł to everyone 😀

Malin is the creator of Orbit and the co-host of Cup of Tech podcast. Orbit is a nicely designed native time tracking and invoicing app for macOS. You might remember Malin from Issue #3 when I thanked her for picking Indie Dev Monday as her “Thing of the week” on the Cup of Tech podcast. But I’ve been following Orbit weeks before Indie Dev Monday launched. As a freelancer and owner of a consulting company for the past 9 years, I’ve gone through my fair share of time tracking and invoicing apps. I have never found one as elegantly designed and easy to use a Orbit. I’m excited to see where Malin and her partner Kai will take Orbit 🚀

👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.


Indie Devs

Paweł Madej

Kielce, Poland

Pharmacist by day and developing Family Graves and Code Conf at night

Malin Sundberg

Vancouver, BC, Canada

Freelance iOS developer and building Orbit


Paweł Madej

Q&A

1) What is your name? Where do you live?

My name is Paweł Madej, I live in Kielce, Poland

2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?

I have a Master of Pharmacy degree with almost 13 years of experience as a pharmacist (including 5 years as pharmacy manager). I work in one of the pharmacies in Kielce now. But this is only one side of me :)

The second one is the IT geek. This IT passion started back in High School and resisted until today. I was doing in this year’s lots of Linux server administration (for my services), some PHP and MySQL programming (with one more serious project of back-office order management software written in Symfony in 2014).

I’ve done some PLC ladder programming for industrial controllers and from fall 2018 I started my interest in iOS development. It took me a few more months until I started considering this seriously. From March 2019 I feel part of the iOS dev community.

Outside of IT and Pharmacy I play from time to time on piano (very beginner level) and swim.

“Pharmacist by day, iOS developer by night, Geek all the time”

3) Have you ever considered yourself an indie developer?

Of course. Just from the start of my journey, I feel like indie iOS developer. I like this freedom of deciding what to do when and in which order. Shaping my ideas from pen and paper to draft views and implementation. Being indie dev from zero experience is sometimes hard because of gaps in knowledge and lack of experience but overall I like it very much.

4) What got you started/interested in creating your own applications outside of your “normal” job?

I am the type of guy who needs to try many things. I even tried Android Development but it not „clicked” and I left it after week or two. Having an IT background and my first iPhone in 2017 thoughts about this kind of work started shaping. That was a long process, not a fast decision. I like programming and exchanging lines of code into a product. I thought that maybe I will try to go iOS dev. Some app ideas came, with one strong idea.

5) How do you balance your time between friends/family, work, hobbies, and indie dev?

Can day have 48h? It’s very hard. My pharmacy is opened from 7 am to 10 pm so I work on shifts. I have a small child which also requires a huge amount of time for play or care. My wife is sometimes angry at me for sitting too much on coding, not with her or our child. I love you, Ann ❤️.

This is endless context switching. I do not have a strong local community to meet and during this weird COVID-19 times it even harder to meet at all. From time to time I try to take an hour off coding and take out my piano and dive into notes. I consider being an indie developer as a hobby so I do not treat this „yet” as work.

6) Family Graves - I’ve gotten confused on where grave sites were so many times. I actually couldn’t put any of my family members’ sites in the app since I don’t remember where they exactly are 😱 This isn’t really a question but more of a thank you for making this!

This is the problem which I wanted to resolve with my first app. From my wife’s family, we have many graves to visit at one cemetery and every time we arrived there we had to look for them. Many times when we visited in darkness we missed some. I wanted to change this and never again look for them. Just open a map and follow it one by one. I hope that people will find it helpful even though in some countries there are no graves visiting or celebration at all.

7) Family Graves - I like to solve my problems with existing tools (like a spreadsheet) as a proof of concept before I make an app. Did you do something similar before building Family Graves into an app?

No. I just had a problem to solve. I had a cemetery with graves I missed. So I started plain pen and paper without any base data. What’s more, I started working on this app having almost zero experience in iOS development. Just a few lessons from Paul Hogerty’s Stanford Swift course and read an official Swift book.

I decided that I will learn Swift by doing. I had something to do and I was looking for solutions about how people do it. I’ve read some books, read lots of blog posts, watched conference videos and used Stack Overflow. This was a real trial and error path. Even navigation between view controllers was hard for me until I’ve found Paul Hudson’s and Soroush Khanlou’s posts about coordinator pattern which made it soo easy. I had encountered many bottlenecks during its development, but after all, I feel that it all was worth time spent. It took me about 6 months from the first line of code to the App Store release.

It began while I was developing the Family Graves Map. I was looking for many resources to solve problems or how to implement a feature I wanted. One of those resources were conference talks. I’ve learned from them a lot but have a problem to find them. There were some places on the web which were listing conferences and allowing you to watch those talks but I always had to spend a lot of time to find what would suit my current needs. That became an idea: „What if I will do an app for that?”. My other thought was that I have grown as a developer watching them. Why then other developers have to go the same path? This was my payback for the community for this all help I have every day just from my iOS developer journey.

9) Code Conf - There are so many conferences, talks, and speakers 😱 Where do you source all the information from and how does the app get this data?

Code Conf uses my own backend API written in Server Side Swift framework Vapor. I was writing it in parallel with iOS app so every requirement of an app was mirrored on the API side.

All data it contains was sourced manually from conference websites, speaker websites, twitter accounts, YouTube channels. As of the time of writing Code Conf contains 13 conferences with 38 editions, 580 talks and 575 speakers. I have on my todo list a few more conferences to list and add which will count to a few hundred more talks to watch. Until the end of the year, I would like to have 1000 talks in my database.

Currently, you can browse them and search for a topic you are interested in. As talks in my databases cover not only iOS development I plan in some future releases add filtering by programming language or platform.

Code Conf cover talks in multiple languages. Currently English and Russian but soon will be also Portuguese. I want it to be as inclusive as possible, no matter what language you speak. When more talks in different languages will be available I will implement language filtering feature so you will only see those you can understand.

I also list in my database awesome speakers from all around the world. I am thankful for their effort to give their talks. So everyone is welcome.

So if you, yes you, reader of Indie Dev Monday newsletter know some local conference with great talks on mobile development in general please contact me so I can include them in my Code Conf app. It can be spoken in your local language. I am hungry for new content, and so are users of Code Conf.

10) Code Conf - I really love the “thumbs up” / upvote feature! There is so much content in the app that I wouldn’t know where to start but seeing the thumbs up is a great indicator of good talks 🙃 Was this feature originally planned? Or was this a user request?

Yes, this idea was in the first batch of features for Code Conf. I wanted this app to not be only a video player for talks but also to help users discover interesting talks. In the beginning, I planned thumbs up / thumbs down feature but after a chat with one of the speakers I have onboard, I decided to go only the positive way and removed thumbs down feature. What’s more and it also was planned just from start there is a special section called “Recommended”.

This feature I’ve made as the last one before launch. And it works great. What’s this? It uses Machine Learning to recommend you talks that are most suitable for you based on your interactions with the app and other users. Machine Learning model is trained on a weekly/biweekly basis to contain all new interactions. As a result, you have a list of most relevant talks you can watch as first. You do not need to do anything, app updates this list in the background. The more you use the app, the more accurate results you will have.

So I would really recommend you to try the “Recommended” list 😉

At that moment I had only one feature request from users which is tags. This feature was also originally planned and is even implemented but tagging properly such amount of talks would require watching at least the first few minutes of them. I have had no time for that but I definitely want to have it turned on in future.

11) Code Conf - I’m going to guess that you know or you’ve seen most talks here. Do you have a favorite talk or two that I should watch? 😉

Seriously? I haven’t watched more than 10% of my database. But scraping them during database preparation gave me some overall knowledge on the topics covered. Talks cover every aspect of development. From ideas to implementation. From inspiration to UI design. Native and Multiplatform.

I have many talks and speakers I like very much but I can’t tell who’s the most favourite. I think the best is to make your own collection of Favourites which Code Conf allows you to do.

You can also be notified when I will add new talks by your favourite speakers so you don’t need to check them one by one if there is something new to watch.

Ok I will tell you that on one of the top places is Donny Wals 😉

12) Family Graves & Code Conf - What’s next for Family Graves Map and Code Conf? Do you have any new features planned? Or any other new projects you are working on?

I have planned some updates to Family Graves Map for this year’s cemetery visits season but I am not sure atm I will find time for that. It is because I now work on the huge update of Code Conf for iOS 14. It will bring new iPadOS experience. One of the features I consider but I am not yet sure if it will be ready for the first iOS 14 update is collections of talks. Unlimited number, public, private … will see how it goes but I feel that being able to see others collections could help even more in discovering talks to watch. There are more features to be implemented but I would like to keep them secret for now.

13) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?

The hardest part of indie dev are time constraints. I would develop faster if I will have more time I could spend on it. And as for now, I can’t make for living from my indie dev. I hope that my indie dev income will be better in near feature to at least pay bills.

The most fun part of indie dev for me is a response from users of my apps. How they feel that they are helpful for them, and how they resolve their problems. Even though I have only 1,5 year of iOS developer experience (at the time of writing) some people contacted me on Twitter and said that I am an inspiration for them. That really motivates me to go this path and work even harder. Swift and iOS dev community is very helpful and inclusive for everyone. So I feel like a part of it. And I’m really happy that I decided to try myself as iOS developer.

14) Is there anything else you’d like to tell the indie dev community about you?

If you want to contact me my Twitter DM’s are open for discussion. Feel free to write to me also if you have some job opportunities for iOS dev with my experience and passion for creating apps.

I also would like to say huge THANK YOU to everyone who I have met online and who helped me achieve what I have done. Without your great content, chats with you I won’t be where I am now.

If you are interested in more details about how to prepare data for Core ML recommendation model and more about how Code Conf app was getting its shape please visit my site and posts section.

I want also to invite you follow me and my apps on twitter to be up to date with what’s going on :) I mostly write in English, but from time to time on my personal account you can find tweets in Polish language

Malin Sundberg

Q&A

1) What is your name? Where do you live?

My name is Malin Sundberg, I live in Vancouver, BC, Canada, I lived in Australia before this, but I’m originally from Sweden.

2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?

I’m Malin, I spend most of my time doing things that are somewhat related to tech, like working on and designing apps, organizing meetups (digitally right now), and recording podcasts.

When I want to do something that’s not tech, I really enjoy going hiking in the local trails around Vancouver and visiting different coffee shops to try out different coffees (this part is harder at the moment with the pandemic, so I order a lot of different coffee beans online instead, to make coffee at home)!

While growing up, I wasn’t sure what I wanted to do, I was interested in different creative fields and spent a lot of time doing different creative activities like sketching and drawing. I didn’t really have a computer that I felt like I could tinker with. Once I got my first Mac I really started to feel more “at-home” with tech. Once I went to university, I decided to try a course in computer science, and I totally loved it! The logical and creative thinking part of it, the puzzle-solving part, and the troubleshooting process really appealed to me. I really felt like that’s what I wanted to do!

At that point, I also decided to spend a lot of my free time learning about tech and programming. Since there wasn’t a mobile development course at my university, I decided to learn iOS development on my own, while studying computer science. Once I started learning iOS development, I realized how creative of a field software development can be. An app has so many visual aspects to it, and it’s so important to create something that looks appealing to the users. iOS development was a perfect combination for me to be able to solve problems, while also having the creative aspect that I’d always enjoyed.

I’ve been working as an iOS developer for a while now and decided to work with my partner, Kai on a combination of freelance work and our own app, Orbit.

When starting to make Orbit, I pivoted a bit from iOS development to macOS development using SwiftUI (for the most part). Right now, we’re making an iOS version of Orbit, so I work across both the macOS and iOS app, as well as the backend (written in Swift using Vapor) and the design for both of the apps and the product page for Orbit.

3) Have you ever considered yourself an indie developer?

Yes, I’m considering myself an indie! Kai and I are an indie team working on Orbit together. It’s great to get all the flexibility that comes with indie development at the same time as getting all the benefits of having someone to chat with about different ideas and problems.

We’re working on Orbit full-time at the moment and are doing some freelance work to substitute some of our income since Orbit isn’t sustaining us just yet. This is also a great way of dogfooding Orbit 😉

4) What got you started/interested in creating your own applications outside of your “normal” job?

I’ve always really enjoyed working on all aspects of an app. When being employed as a developer, I’ve often been involved in the non-dev parts too, like the planning of the product and future features, the design, the testing process and the marketing parts of the app. I’ve also been spending a lot of my free time doing things related to building an app, like designing icons, app concepts, and UIs.

I knew that I wanted to make something on my own at some point, where I could be fully involved in all aspects of the app, and have the flexibility of making it into whatever I wanted it too.

When I decided to work on different projects as a freelancer, rather than being employed, the idea was that I would have the chance to spend some more of my time working on my own projects and apps.

5) How do you balance your time between friends/family, work, hobbies, and indie dev?

… This is a hard one, I don’t really have a balance. To be fair, I never really tried to balance these, I tried to combine many of them instead 😅. For example, I’m organizing meetups here in Vancouver (right now we meet virtually), which means that I can meet a lot of new people and make friends while chatting about development, design, and anything else that’s remotely related to it 😉

6) Orbit - I absolutely love your logo and icon ❤ The “O” from “Orbit” being used the trail from the rocket is genius. How many iterations of the logo/icon did you go through? Did you have any other logo/icon ideas that you were considering?

Thank you so much!

It took me longer to make the logo than I expected it to. The first iteration actually didn’t have a rocket in it at all! I was trying to make it more like a planet, with a moon Orbiting around it, I thought this sounded like a cool idea, but once I’d actually made that icon and placed it in the dock, it didn’t look right. It was hard to see what it was and it looked quite boring. Then I thought, what if I make a rocket that’s orbiting the planet instead of a moon… This looked better, but it had too much of a cartoon-y feel to it. That’s when I flipped the tail to form the outline of the “O” and probably made five more iterations, tried out different colours and here we go, a white rocket orbiting a purple planet! 🚀

Now I just have to figure out how to make it work with the new Big Sur icon style 😅.

7) Orbit - What is the backstory for Orbit? 😊 How did the idea start? Has Orbit made any pivots along the way?

Kai and I have been doing freelance work for a while and we have to keep track of how much time we spend on different projects and send invoices for that time. We’ve been trying out a lot of different apps for this (really, a lot!) but we couldn’t find anything that does both time tracking and invoicing really well and has a great, native macOS app. So we thought “how hard can it be?” And started building one!

At first, we gave ourselves two weeks to get the initial concept working, and to play with SwiftUI. Once we had the initial version, we decided that we wanted to continue building the app.

I wouldn’t say that we’ve pivoted, but we have changed some of our priorities since releasing 1.0 based on feedback and our own use of the app.

8) Orbit - Tourist mode is so nice! I don’t think I’ve heard that term before but I knew exactly what it was by the name. Not really question but 👏 on adding that and by picking such a perfect name 💯

Haha thank you, I can’t take credit for the name, it was Kai’s great idea (my suggestion was the far less creative “Demo Mode”)!

We actually didn’t have a Tourist Mode in 1.0, but after noticing that many people seemed interested in checking out what a Mac app written in SwiftUI looks like, we decided to make this easy by adding the Tourist Mode.

9) Orbit - The onboarding experiencing was great! Super simple and nothing seemed out of place. This feels like exactly what I would expect from a native time tracking app. How important was it to have a frictionless start for new users? Was this a must need for your target market?

I’m glad you thought it was simple! We really try not to overwhelm the user with information, and we want it to be as frictionless as possible to get started tracking time. The app has some complexities to it, but they are never in the way of doing something simple. For example, when you create an invoice, you can customize which taxes to apply to it. Rather than asking the user for which taxes they want to use for their invoices when they are creating their account, we ask for this when they create an invoice, which is when it’s relevant to them!

We actually have some plans for how we can make the onboarding a bit nicer, we would like the subscription prompt to be presented in a friendlier way 😊

We decided very early on that we wanted to be open about what we’re working on and our future roadmap. That way, a user knows what our ideas and priorities are, so if they want a time tracker on their Mac today, but would like to work on the go and be able to track their time with an iPhone app in the future, they know that we’re working on that and maybe that helps them make a decision. This hasn’t really impacted our day to day work, but we sometimes see users being excited about what we’re working on and that’s really motivating to see! 😊

Yes, there is, I’m also super excited about it! Since the Mac app is written in SwiftUI, the plan is to reuse some of the UI (like the dashboard graphs) and most of the business logic and data stores.

The idea for the iOS app is for it to be a fully-featured app with similar features to the Mac app, but with a slightly different focus. We think that most people using the iOS app won’t be stationary, they might want to use the app to quickly start/stop a timer, view any invoices that they sent earlier that are due soon, and quickly be able to see how much they’ve worked on different projects. The focus of the iOS app is to make these parts the prominent sections of the app.

We also think there are some unique features that the Mac app should have but the mobile app shouldn’t, and vice versa. For example, the Mac app has an idle time detection feature. It wouldn’t really make sense to ask users if they want to remove tracked time after not using their phones for a while. However, if they are using the app on their Mac and steps away for a few hours, we want to let them know how long they were idle for, and suggest removing that time from their tracked time. In the same way, we have some features planned that are unique for the mobile app. For example, if a user works from an office, we want to suggest that they start tracking their time when they arrive. In a later update, we also want to add receipt scanning, using the iPhone’s/iPad’s camera, for expense tracking.

And, yes, we do have some ideas for app widgets 😉

12) Orbit - What as been the hardest part you’ve found while working on Orbit? Did any weird surprising issues show up?

Haha, since it’s written in SwiftUI, (which, when we started, didn’t have much documentation for macOS) there were definitely some surprises! 😉

The overall theme using SwiftUI is that it’s really hard to predict how long things will take. Something that seems relatively trivial, like adding a double click action to a table row to open a detailed window took us almost a week to find a solution for, there were different approaches to this, but many of them broke other native Mac behaviours. On the other hand, something like the graphs in the app’s dashboard, doesn’t seem trivial, and it would require a lot of work with UIKit or AppKit, but I could get this done in a day or two!

13) Orbit - I got a good giggle out of your App Store description. “Ranked as ‘the best time tracking & invoicing app’ by its developers” 🤣 Do you have any plans to add more of this personality in the app?

Haha, you’re actually the first person commenting on that! I guess people don’t read App Store descriptions anymore… Or maybe they never did 😛. We want to add some more personality to things like the placeholder texts in the app, maybe with some pop-culture references. We also have some really fun ideas for product videos (some of which may contain Kai and me acting 😅), but this is a lot of non-app work, so we’re focusing on getting the iOS app done before this 😉

14) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?

The hardest part for me is probably marketing and telling people about the app. This is something that I was aware of from the very start. I feel pretty uncomfortable reaching out to people (like people from the press) to let them know about the things I make. I’m trying to get better at just talking and writing about the app, and about my work in general, I think it’s working?! 😅

There are so many fun parts to it! One aspect that I love is that I get to work on such a wide variety of tasks. I enjoy planning and deciding what the app should be, designing the app, making icons and building the app and the backend, and building the website! I’m never bored because there are so many different things to do. It’s also something super exciting about being able to create something from scratch and making it available for others to enjoy and help them focus on their work.

15) Is there anything else you’d like to tell the indie dev community about you?

When picking an indie project to work on, I think it’s important to try to pick something that can be iterated and built upon. I found it to be really satisfying to build something that I can start using early on, and then continue polishing it. The same applies once the project is ready to be released and used by others. I rather make an app with fewer features that are solid, and then continue adding more functionalities to the app. I found that this is a great way for me to see the progress I’m making while keeping each feature within a manageable size 😊

I had a lot of fun answering these questions, thank you so much for having me, Josh! 😃


Thank you to everybody who made it to this footer! You either spent the time to read or took the effort to scroll 😊

Make sure to visit https://indiedevmonday.com/subscribe to get an email of future issues!

And go to Twitter and give @IndieDevMonday a follow… or multiple follows if you manage more than one Twitter account 😜