Issue #8 - Daniel Alm and Hasan Kassem
Happy Monday, everyone!
We made it to the eighth issue! Thank you to everyone who read last week’s issue ❤️
📆 Today I’m featuring Daniel Alm and Hasan Kassem.
Daniel is the creator of PocketCAS, the creator of Timing, and a contributor of gRPC-Swift. I’ve just recently been introduced to Daniel and his work but I was so 🤯 that I had to get him into Indie Dev Monday right away! I’m terrible at tracking time and keeping my focus so Timing caught my eye instantly. I’ve been using it to improve my productivity by limiting and eliminating the application usages that distract me. I tried to also use Daniel’s other app, PocketCAS, but my current math skills don’t let me full advantage of the features 😇 I have looked at how others have used the mathematical and graphing functions in PocketCAS and its very impressive. 👏 to Daniel for the amazing job he’s done at making, marketing, and supporting of Timing and PocketCAS!
Hasan is the creator of Mockup. I get a lot of app ideas in my head but I’ve never had a tool to get them out out easily. I mean, I’ve had tools but none that worked well for me. Hasan caught my attention from his app’s demo tweet a few week’s ago. It’s the mockup tool I’ve always wanted 😁 Create a project, select a device, and draw on some device templates. It’s beautiful, simple to use, and easy to export. I was so happy when I saw that Mockup was released on the App Store on September 4th. I wanted to mockup my ideas but I was even more excited to share Hasan’s story and Mockup with all of you 🥳
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
Indie Devs
Daniel Alm
Q&A
1) What is your name? Where do you live?
Daniel Alm. Munich, Germany
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I received my Master’s in Mathematics in 2013. Afterwards, I used to work at Google in Munich till January 2016. Since then, I am full-time Indie.
I like to go windsurfing (mostly while on vacation) and play Magic: the Gathering.
3) Have you ever considered yourself an indie developer?
Definitely! Especially since 2016, when it became my full-time occupation.
4) How do you balance your time between friends/family, work, hobbies, and indie dev?
It’s my full-time gig, so it is as “easy” to balance with non-work time as any other job would be. That being said, my girlfriend works in the health sector and has started to do shift work a few months ago. Even though I am technically very flexible in terms of when I work, adapting to her very unpredictable schedule definitely has been a challenge. I am a creature of habit, so my main (and preferred) work times are definitely roughly 9to5, Mon-Fri.
5) PocketCAS and Timing - Uhhhh… So… 🤯 I have not done this level of math in like 10 years and I really wish I had this available back then. I don’t think I can fully utilize this app myself anymore but I read a bunch of your reviews and most are 5 stars! What got you started on making a TI-89 in app form? And what got you started on Timing?
Back when I was still in high school I had a Windows Mobile PDA lying around for a research project. I admired the TI-89 a classmate had and found a Computer Algebra System app for Windows Mobile with similar functionality. That app was definitely ahead of its time for 2006! But it cost about 20 € (if I remember correctly), and I was just a student. So I built my own Computer Algebra System app for Windows Mobile using an open-source math library. In retrospect, I could have just bought the existing app and been happy with it, but then I wouldn’t be where I am today 😅
In 2009, after the iPhone and App Store had come out, I decided to try whether I could make some money selling that app for iOS. So I bought a Mac mini and an iPod Touch and spent my summer holidays porting PocketCAS to the iPhone.
After PocketCAS had moderate success, I wanted to calculate my equivalent hourly rate. But for that, I needed to know how much time I spent working on it. Back in my Windows days, I had used an app called ProcrastiTracker for that. But I found that all the alternatives for macOS didn’t satisfy my needs. So, in 2011, I set out to build my own automatic time tracker for Mac. Nine years later and I’m still working on it!
6) PocketCAS - “I am 8 yeas old and this App is awesome! It helps you learn calculus quickly. It’s a work of art!”… Is that a real review? 😏 Is there really an 8 year old learning calculus with PocketCAS?!
According to AppFigures, the review is definitely real: https://appfigures.com/reviews/26581228LIlgsVbAvFHEDWGI6PjvPJQ?lang=en
That being said, PocketCAS is fairly complex, so it’s definitely easier if you already know what you are doing before you start using it 😅
7) PocketCAS - I’m not sure if you can share your secret sauce but how do you manage to handle all of these mathematical and graphing functions? Is there some magical math library that the app with all of these calculations or do you have to do a lot of this programming yourself?
Since the very first version, PocketCAS has been built on Giac, an open-source computer algebra system: https://www-fourier.ujf-grenoble.fr/~parisse/giac.html
The library is released under GPL, but I have a special license agreement with the creator in order to sell PocketCAS on the App Store.
8) Timing - I found my favorite feature! The time tracker widget that shows your productivity score is amazing. I’m going to admit that mine is too low for my liking 😝 I don’t think I’ve figured out exactly how it determines my productivity. How does that work and why is it so awesome?
Timing tries to automatically categorize your time into “projects” based on some built-in rules, and you can of course add your own. You can also give each project a custom productivity rating, and your productivity score is then the average of all those productivity ratings, weighted by how much time you spent on the corresponding project.
9) Timing - The importance of privacy in Timing is so great to see (especially with all of the data and access Timing needs). What special measures have you had to go through for privacy from both in development, marketing, and legal? 🔒
Privacy is hugely important, especially for an app that collects as much information as Timing. So by default, Timing does not send your tracking data anywhere. And when I built its sync service in 2018, I put a lot of effort into ensuring that your data is well protected and encrypted. While Timing doesn’t offer end-to-end encryption due to e.g. the web app it includes, each user’s data is only accessible to them and still encrypted with a per-user individual key. That’s why I’m also paying Google a lot of money each month to securely host and protect the service, rather than trying to roll it myself.
In terms of legal, besides complying with GDPR and similar regulations, I also took great care to make our privacy policy (https://timingapp.com/privacy) as readable and understandable as possible, without the legalese gibberish you get from some other services.
10) gRPC-Swift - I think this is the first open source project we’ve had on Indie Dev Monday 🥳 What got you started working on gRPC-Swift? Do you use it in either Timing or PocketCAS? How does working on open source differ than products?
Back when I started working on Timing’s sync engine, I needed a solution that would let me quickly transfer very many small individual bits of data. I am also a huge fan of type safety (which JSON doesn’t really offer) and used the precursor to gRPC in my time at Google. So that made gRPC a great protocol choice, and I took the existing Swift library for gRPC and brought it into a state that was usable in production. I have been contributing to the project ever since.
In retrospect, I could probably also have gotten by with HTTP+JSON, but it was still fun to work on the library.
11) PocketCAS and Timing - What’s next?! Working on anything new for iOS 14 or Big Sur releases?
Big Sur has introduced a lot of design changes, so I am indeed hard at work updating both apps (especially Timing) for that. I haven’t really used Big Sur in production yet, so I can’t tell whether I actually prefer it over the old design. But I think that it definitely has the potential to make Timing “look better than before” just by fully embracing the new look.
12) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?
The best part of being an Indie dev is being able to decide myself what to work on, and to build a great new feature from start to finish. That being said, there are days or even weeks when I am so caught up in all the “business” stuff that I don’t get to code at all. Those are the parts that are not as fun, but they are at least as necessary if you want to be successful as an Indie dev.
13) Is there anything else you’d like to tell the indie dev community about you?
I’m thinking of hiring people to help me with all the work on Timing. So any developers (Swift or PHP), designers, technical writers or marketers reading this can send their CV to daniel@timingapp.com. The more autonomously they are able to work on their tasks, the better. I can’t guarantee that I will actually hire someone, but it might be worth a shot :-)
Hasan Kassem
Q&A
1) What is your name? Where do you live?
Hi! I’m Hasan Kassem. I live in South Lebanon.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
As a student, I don’t have a job. I build my own apps, and the quarantine allowed me to take small freelance iOS projects from time to time.
Outside of tech, I like photography. Actually, I’m the president of the Photography Team in our faculty. I also like hiking and photo walks.
I love design, product designs, UI/UX designs, graphic designs, everything related to design.
3) Have you ever considered yourself an indie developer?
Yes 🙌
4) What got you started/interested in creating your own applications outside of your “normal” job?
It was outside of my “normal” school 😜 I developed my first app in 2013 during the summer vacation after the 9th class (I was 14). I knew HTML and some basic javascript back then, so my app was basically a webview. Before that, I played around with open source PHP projects and free web hosts… I wanted to develop something by myself but didn’t know how and where to start, so I kept playing around.
After I built my first app, I felt like I made progress in a specific path, so I kept learning from online tutorials about Android development.
After developing several Android apps, I started to monetize them. Then in 2015, I decided to start with iOS development, so I got a MacBook Air.
In 2016 I turned 18 and enrolled in the Apple Developer Program, and published my first iOS app.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
Balancing my time between university itself and anything else is hard 😂. Usually, I develop new apps during vacations. I try to finish my work by sunset and spend the evening with family or friends. During semesters, I alternate my evenings between friends and my own work.
On Sundays, I stay away from anything related to my apps business or freelancing. I free up the day for family, friends, and my other hobbies.
6) Mockup - I’m so in love with this app 😍 I wanted this app since I saw your sneak peek tweet on August 20th. I’ve been working on two apps of my own (I have problems) and I was struggling to find this exact solution. I wanted to make one but I didn’t need a third new app 🙄 Did you create Mockup to help you sketch out future apps? What did you use before you made Mockup?
Thank you 😍 Yes I created Mockup to sketch my future apps on it. Before that, I used to sketch apps on normal notebooks. I liked the idea of print-out templates but I don’t have a printer, and notebooks were handier.
When I got my iPad, I wanted to sketch apps on it. I thought that an app with templates would be great.
7) Mockup - The “Start by adding a project” and “It’s so clean in here!” screens are, as they put it, chef’s kiss. I added and removed projects multiple times just so I could see those screens again 🙃 They are so clean and keep a relaxed and creative energy when using the app (which is perfect for what the app is). How did you get the inspiration for these screens? How many iterations did you go through? I don’t think I’ve seen an empty screens so elegantly designed before 😊
I’m really glad you noticed these screens. The fact that these screens will make the first impression made me pay much attention to them. I looked in Dribbble for inspiration, the common thing was a simple artwork and a text. Then I imagined it this way and did it straight forward. I took a picture of my Apple Pencil and imported it to Pixelmator Pro where I started drawing shapes over it to resemble the design.
8) Mockup - I read your announcement blog post for Mockup and I’m so amazed that you made such a beautiful app in 3 weeks 🤯. Was your goal to release this app so quickly? Or did you just have too much fun while making it that you couldn’t stop? And was it less or more work than you originally thought?
Actually, I thought it’d need two weeks. But I was working on a freelance project so I had to split my time for both. After my sneak peek tweet got this attention, I felt so excited to release it, and I couldn’t stop afterward. It took more work than I thought especially for the iCloud sync part.
9) Mockup - I wasn’t sure how the export feature would work so I played around with it for a while. I thought you might have exported each device individually as an image or one device per page in a PDF. It looks like you went with a single page PDF with (limited to the what was all drawn). What was the design decision behind your export method? Do you have any plans to offer any other kinds of export in the future?
I originally thought of exporting individual images, but it won’t make sense if there are drawn arrows between devices. That’s why I thought of this method. But now several users requested exporting individual images so I’m adding this option besides exporting the whole sketch as a PDF.
10) Mockup - The list of supported devices (iPhones, Apple Watch, App Icon, and Ipad) seems like it solves most of what I personally wanted 😇 I have to ask though… Any plans to add more devices (like Mac apps or websites) or allow for users to upload their own custom template?
I’ve added web templates in the latest update, which is still in review, and I’m planning to add Mac templates too. Custom templates would be a great feature but it isn’t that simple. I’ll try to see what’s possible for sure, but after I finish features of higher priority.
11) Mockup - What speed bumps or what was the most difficult thing you ran into while working on Mockup? I always like asking this question because I ran into so many weird things in my own personal projects.
The most challenging thing was iCloud sync. There are so many edge cases and conflicts that may occur and I have to handle them all. I’ve tried my best, and I’m still doing a few optimizations in each update.
Talking about iCloud, there was a problem from Apple’s side in the CloudKit dashboard that prevented me from deploying to production. I kept trying for two days until it was fixed.
12) Mockup - What’s next for Mockup? I honestly can’t think of any feature requests I would ask for yet since this is exactly what I wanted. But I assume you might have a personal backlog of things you want to add 😜
New templates will be coming to Mockup. I’m also working on small enhancements in the overall experience.
One of the most requested features is the quick duplication. It’s not possible in iOS 13, but iOS 14 will provide new capabilities for PencilKit which I’m using in Mockup. I worked on this feature for iOS 14 beta and tested it successfully. It will be coming in a future update.
I’m thinking of shape recognition too, it’s a priority for me, but I need to learn more about this topic first.
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 is feeling responsible for anything that may go wrong. I can get easily stressed if users are facing a problem with one of my published apps 😅.
The fun part is in the process of creating apps itself. I enjoy every step in developing apps from planning, sketching the UI 😜, designing, coding, publishing, to marketing. Building a complete product is fun for me!
And having a sort of passive income by doing something I enjoy is just amazing.
14) Is there anything else you’d like to tell the indie dev community about you?
I enjoyed answering these questions! Thanks for this opportunity, 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 😜