This self-taught iOS developer's business makes over $10k a month

This self-taught iOS developer's business makes over $10k a month

Belle is a self-taught developer from Australia who along with her partner Josh makes SaaS products for tracking your habits as well as your bookmarks. Together they are making over $10,000 a month in revenue and have been able to work on their apps full-time and quit their 9-5s. I talked to Belle about how she transitioned from marketing to coding, her daily work routine and her plans for the future.

Hey, so can you give us a short introduction for people who want to know more about you?

I live in Melbourne, Australia, where I run a company called Hello Code with my partner, Josh. We make SaaS products including Exist, which is a personal analytics app to help you understand your life, and Larder, which is a bookmarking tool for developers. We’ve been running the company together for around six years, and it’s been paying both of us to work on it full-time for around two years now. Prior to that I worked for other tech companies in content marketing roles, including Buffer, Ghost, and Zapier.

Can you tell us about making the transition from content marketing at Hello Code to getting involved with coding the apps?

When we started Hello Code, it seemed like a perfect fit to have a developer (my partner, Josh) team up with a marketer (me). I was working for other tech companies in content marketing and we felt my skills would work well with Josh’s tech experience. I was already interested in the technical side of the businesses I worked for, but had never had a chance to explore that much. Once we’d started building our first product, Exist, I had another go at learning to code, and this time I had a project in mind.

My first project took just one small feature of Exist (our daily mood tracker) and made an app from that. We didn’t have a plan for an iOS app before that, but I had so much fun building it that I just kept going. The app expanded as we found lots of our users spent more time with it that our fully fledged web app, and as we added more to the app, it grew so much it required my attention full-time.

HealthKit didn’t exist when I started out, and iPhones didn’t even have motion chips yet, so both of those things increased the complexity of our iOS app as well. These days the app I spend most of my time on is still the first app I ever built! I also lost interest in marketing as I spent more time coding, and realised coding was my favourite thing to do, so it was a happy transition for me personally, as well as making sense for our business. These days I try to balance programming and marketing, but I definitely find it more enjoyable to write code!

Screenshot of Exist
Screenshot of Exist

Exist looks really cool as it’s part of the movement towards radical transparency. Do you have any other features coming out that you can tell us about?

Next year we’re planning to release manual tracking, which will introduce a big change for Exist. Right now, users can sync data to Exist from other services we’ve integrated, or they can use our API to make their own custom integrations, but they can only sync data attributes we explicitly accept. This helps us with data analysis, which is the most useful part of Exist, because we understand all the data users are syncing to Exist, so we can create insights and correlation descriptions that aren’t too generic.

With manual tracking, users will be able to define their own custom attributes of any kind, and get the benefits of our data analysis on any kind of data they can think up. It’s going to be a big change, which means lots of development time without user-facing progress, but we’re hoping it will be useful enough that it all pays off in the end.

What have been the most challenging aspects of making the apps?

Exist for iOS works extensively with HealthKit, which has been quite challenging, as there are lots of moving parts to keep track of in terms of keeping users’ data in sync, not overwhelming our server, and handling syncing in the background. Apple doesn’t restrict the kind of data that can be synced into HealthKit, either, so I’ve run into lots of issues with bad quality data such as duplicate records, sleep records that last more than 24 hours, or just incorrect values being saved. I’ve had to build out a lot of code to handle all those edge cases so our users don’t end up with bad quality data that’s been synced to Exist from HealthKit.

Did you take any particular courses when learning iOS development or did you just learn on the job?

I tried using a book to learn from early on, but I found that it was actually more useful to me as a reference book later, once I understood a lot more of what they were talking about. In the beginning I did some tutorials, and then I pretty much worked feature-by-feature on my own project, looking up specific reference materials and tutorials for each feature as I went.

Did you have any specific people that inspired you to learn coding?

When I got my first content marketing job, I used to sit opposite a really friendly developer. Sometimes we’d get chatting about his job, which I found really interesting, and I remember him showing me some of the first things I learnt about using the command line on my Mac. I was really excited by learning to do more with my computer, and how much more in-control I felt by having that knowledge, so that’s when I started thinking about learning to code.

BJS-Social-Share-4

What’s the most fun thing about coding for you?

Making stuff on my own. Even when I just think about a new project but decide not to make it, there’s something so powerful about knowing I could make it if I wanted to. I feel more in-control now that I can code, and I feel like computers are no longer mysterious machines to me, but rather machines that will do what I want them to, if I just figure out the right way to explain it to them...

What advice do you have for someone who wants to get into coding but they don’t have the time or money for a CS degree?

  1. Make friends with a developer
  2. Think of a project you want to make

These were the two things that helped me the most when learning to code. Until I had a project I really cared about working on, what I learned didn’t stick, and I didn’t know what to do at the end of each introductory tutorial. But having a project in mind helped me know what to learn and what to leave for later, and it gave me the motivation to stick with it when I had a hard time making progress.

And having a developer friend who’s happy to help you makes a world of difference in the beginning. I’ve been really lucky that my partner Josh has been able to help me along the way when I’ve gotten stuck and run out of ideas. It’s best if they know a lot about the kind of coding you want to learn, but even if they don’t, they can help you understand how to form questions, where to look for help, what keywords to use when searching for help online, or just rubber ducking and helping you think about your problems in new ways.

No-CS-OK-screenshot-1

Can you tell us what an average day looks like for you just now?

My day is really flexible, so it depends what I’m working on and how I’m feeling. I’m a morning person, so most days I like to get up around 6am and exercise before starting work. Most days I don’t start working until 9am or later. I usually set aside one block of time in the day to deal with all my outstanding emails, so they don’t interrupt my flow while I’m programming. Apart from that, it’s just a matter of chugging through my to-do list until around 5 or 6pm when I stop for the day.

Because I have so much flexibility, it’s up to me what to put on that to-do list, so although I write code most work days, (and most non-work days, actually) my days can look quite different. I often have one or more side projects I’m working on, and I’ll work on those while an app is in beta and I’m waiting for feedback from testers, or while I’m waiting for App Review to approve an update so I can release it to the App Store. Sometimes I’ll spend the day doing lots of talking and planning with Josh, especially if I’m getting ready to start a big new update.

Other days it’s a matter of just motoring through a list of bugs or small improvements to whichever project I’m working on. Having different projects helps a lot, because I don’t have to stop work while I’m waiting for things like App Review, but it also gives me a chance to explore different approaches and technologies, and gives me a break from focusing on one thing all the time.

Have you ever had imposter syndrome and if so, how have you dealt with it?

I get this all the time. I get it most when I’m around other iOS developers, because that’s the main work I do, but I don’t have deep expertise in it, so it’s really easy for me to feel out of my depth. It’s gotten a little better over time, as my skills have improved and I’ve gained more experience. I also find spending more time in that world so I know what people are talking about, even if I don’t have direct experience with it myself, can really help me not feel out of place so much.

And I try to remember that I mostly get this feeling when I’m talking about code, rather than writing code. When I’m writing code, I care about my users, and the product I’m making, and not about what other developers think or what qualifications I do or don’t have.

imposter-syndrome-with-image-collage-2--1-

What are your coding dreams for the future?

I’d really like to branch out further. I’ve dabbled a tiny bit in Android development in the past, and lately I’ve been trying out a little bit of web development. I’d like to learn more about different types of development beyond Apple platforms, because although there’s so much to learn I could spend my whole career just developing for Apple hardware, I like the idea of having a more broad set of skills and experience.

Thanks for the interview, Belle!

About the author
Pete Codes

Pete Codes

Hey, I'm Pete and the creator of this site. I am a self-taught web developer and I'm based in Edinburgh, Scotland.

Self-taught developer success stories

Get into tech without a CS degree

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Self-taught developer success stories.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.