The Journey Continues

Good company in a journey makes the way seem shorter.

I started a little blog back in 2018, the same year I decided to learn how to code. My very first post, written six years ago, began like this:

I’ve tried to learn to program half a dozen times, but I’ve always failed to learn more than the basics of any language. This year I’ve finally decided to take the leap and invest in it, and start learning how to program properly.

My younger self

Well, did I learn?

I did, just not the way I expected.

Game development and Unity didn’t stick for long. I did some cool prototypes and I enjoyed my path in game development, but I really never launched anything in that domain, everything remained as a prototype. Game dev in particular proved to be extremely complex for a beginner.

A top down bullet hell shooter featuring a penguin in spacesuit was my first game

I continued learning general programming, and at some point at my 9-5 work I switched teams temporarily to provide technical customer support for the iOS and Android apps. Something sparked at that point, I’ve never thought of mobile development as a potential path, but it looked quite interesting.

I had some basic Java from earlier learning attempts, so I decided to give Android development a try...until I gave up hours later. I couldn’t get Android Studio to run on my laptop without constant errors, so I installed Xcode instead, which worked flawlessly and I could see the hello world screen right away (well, not right away, that was like 30GB in software to be downloaded) in the simulator. Found some YouTube tutorials (props to Hacking with Swift), and the rest is history.

A combat submarine-based ASCII Roguelike in C#

I became an iOS developer, switching careers (again) on my mid-thirties

At my workplace, there was an internal program for code apprentices designed for employees who had been with the company for a while and wanted to transition into developer roles to give it a go. Sadly this program no longer exists, but it was a great opportunity for folks like me without a CS/IT degree, or development experience.

You apply, do some quick interviews (they know you already), work on a trial project for a month (unpaid), and the chance to move to an apprenticeship developer position opens up.

I believe I applied two times (once per year), and both times I was rejected, it wasn’t until the third time when I passed, and after a few months I got moved internally from technical customer support to iOS developer apprentice (I guess what you call a junior in other companies?).

My first app. Trying to become billionaire with stock market signals

I did that for a year, then it came the time for my review which would decide if I was going back to my old position or stay as a developer. I passed, and I switched roles officially and got hired as a full time iOS developer.

12 Years Remote

I’ve been working remotely for over 12 years now, and I can confidently say I’ll never return to a commute or office life. The main driver for this decision was the pursuit of freedom, and earning a living remotely while working towards financial independence, rather than work till my 70’s.

Don’t get me wrong, I do enjoy programming. It’s incredible to create something out of nothing, but working on somebody else’s project it’s not my passion, it’s a means to an end.

Working remotely from Thailand, off the beaten path: Prachuap khiri khan

Side projects, and the discipline of finishing

This isn’t a “I quit my job to make my dream app” story, I’m not leaving my job. It’s more of a “teaching oneself the discipline of finishing a project” story. It’s an exercise of deliberate practice, to put conscious time and effort to make something happen.

Commitment and consistency, without commitment you'll never start and without consistency you'll never finish

Somebody

Why now?

It took a couple of years to feel comfortable enough in my role as a developer to take side-projects. I no longer see myself as a junior, though I’m still learning every day from my colleagues.

Let’s call it “mid-level land”, where I feel I’ve reached a point where I need to put some work on side-projects to continue growing, as side-projects that are not launched are just code samples.

I have to say I went a bit hardcore at the beginning, and I published 3 apps in 3 months (well, the last one is right now in the Apple review queue, so let’s say 2.5 apps). You can find them here: https://iamgabrielma.github.io/

  • Wheel Flow was my first attempt to create and use my own backend and API, which made me learn a bunch around NodeJS, Express, MongoDB, and the service deployment process. It also uses SwiftData for the persistence layer, which I never used before.

  • Nomad Pins: Also leverages a backend and API, but this time I used a different API design just because. It also leverages the new Apple APIs for MapKit.

  • Pixelette: This one implements In-App Purchase subscriptions, which is an entire new beast by itself, and Game Kit achievements and leaderboards.

A minimalistic pixel art editor!

While all of them are free apps, I’ve also added some additional features behind a paywall. The apps are earning $0 right now, so I’m in the red after the Apple developer license, and the hosting and server costs. But that’s the price of the hobby! Ideally, the plan would be:

  • From $0MRR to $1MRR

  • From $1MRR to cover the costs

  • From covering the costs to ramen profitability.

  • From ramen profitability to something better.

If You’re Not Embarrassed By The First Version Of Your Product, You’ve Launched Too Late.

Reid Hoffman

If you have reached the end, I can only say “Thanks for reading!”.

As I move to a new phase, I’ve moved the blog to a new home as well. My plan right now is to update this one monthly with my indie-hacking adventures.

Reply

or to participate.