It’s been 20 months since my last entry. I’m no longer on a sabbatical I guess. I’m an indie game developer now. I have “stuff” again. This entire post is a #humblebrag.


I’m assuming you’ve read Rebooting Life (Part 1) and Rebooting Life (Part 2). If you haven’t, here were the goals I set out to accomplish during my sabbatical.


I built a freaking game that became the #1 app in the App Store

When I last posted, A Dark Room iOS was making a small amount of passive income. One month after that post, A Dark Room went viral and became the #1 App in the US. Still to this day, I have no idea why that happened. Since then, I’ve built a prequel called The Ensign, and am now working on my third game called A Noble Circle. You can read about all that’s happened in my ADR developer logs for more details. The short version is I’m nowhere near retiring to the Bahamas, but I’ve gained a decent amount of passive income (and a new identity).

Present about software, contribute to open source

I’ve got some international presentations under my belt now. An am now presenting at game development conferences too (I’ve got a couple scheduled for next year). Once I got some notoriety from building a #1 app, getting accepted to national, international, and university venues became a lot easier (not surprisingly I guess). Open source development has taken a back seat to my game development (because that’s what I see as meaningful work now).

Build my development chops on stacks other than .Net

I don’t even have a Windows partition anymore. I have a Parallels VM with an installation of Windows 10 that’s only booted to make sure the installation experience for NSpec and Oak are pleasant. All my development is done in terminal now (tmux and Emacs with Vim bindings… teriffying I know).

Music, Drawing, and Artsy Stuff

More artwork yay!

Apple requested some feature/banner art for A Dark Room. So I obliged:

Some abandoned sketches:

Metal Gear Solid:

One of the many storyline sketches in my new game A Noble Circle (in game screenshot):

Getting back into charcoal:

More charcoal (work in progress):

Learn a functional programming languages

I know F# well enough to be danagerous now. At this point I see no reason in using C# anymore. I know Clojure/ClojureScript pretty well now too. Code haphazardly mutating data makes me weep. Have I mentioned I do NodeJS development full time now (cry)? I still have no idea what a monad is.

Have conversations with developers everywhere

There’s only one way to succeed at this. Don’t do it. What I wrote in my previous entry still stands:

I wanted to converse with developers (specifically experts). I wanted to talk about the craft. Soak up wisdom and hopefully give some in return. That is not what I got. I just a lot of “strong opinions, strongly held” (myself included). I didn’t feel like I made any progress. It took away from what was really valuable, helping developers who wanted to and were open to learning something outside their comfort zone.

The end goal of “impacting a peer” didn’t happen in any substantial way. So I’m not going to try to reach out to experts anymore, because they already know everything there is to know about software (apparently).

Outside of the persona I place in marketing slicks, I honestly feel that I’m just a practitioner of software, sharing the experiences I have. I no longer have an interest in debating with, or reaching out to, those who feel they’ve got it all figured out.

I did participate in a mentorship program at a university. That was great. I enjoyed inspiring young developers/teaching them the ropes.

Get into better shape

Lost twenty pounds. I can sit in a squat for like a whole two minutes (it’s a big deal I swear). Ten more pounds to go before I’m a lean, fast, 150 pound weakling.

What I learned


I put a short story in my last entry. Here it is again as a refresher:

He was ordered by the chief instructor to carry a large wooden pail down the mountainside to a stream, fill it with water, and bring it back up to the temple.

“Good,” said the instructor. “Now stand beside the bucket and with your palm slap the surface of the water. Repeat that until there is no water left.” The boy again did as instructed.

This went on all day, and to the boy’s horror the next day, too. Then the next day, and the next… and soon weeks and months were going by and all the boy did was carry the big bucket of water and slap all the water out of it.

“Young man, you’ve been here for a year. Now I want you to take a break and visit your family for the holidays.”

The humiliation grew in the young boy: Indeed he had been made a fool of by the head instructor. In a whole year he hadn’t learned any martial arts at all.

The villagers dragged him to the head table and yelled and shouted and urged him to show them some real Shaolin kung fu. He stood motionless with tears welling in his eyes and his face reddening, ashamed to tell the villagers that he had learned nothing.

“Leave me be,” screamed the boy as he slammed his hand down on the table. Everyone stood silent and wide-eyed for several moments… when he slammed his hand down… he had broken the thick stone table right in half.

There was this chip on my shoulder. I wanted to be acknowledged by my peers. A previous iteration of Rebooting Life Part 2 contained a visceral closing paragraph (which was removed):

So, keep saying nay. Keep saying “I’m wasting my time”. I’m a black belt, starting my journey over again as a white belt. Once I come out the other end, I will be a force to be reckoned with.

What I didn’t realize was I was dealing with a not so healthy dose of anxiety. Speaking in the .Net community about ideas that weren’t directly evangalized by Microsoft (DLR, editors other than Visual Studio, F#, not Entity Frameworks, not NUnit/XUnit, not ASP.NET MVC, open source not developed my Microsoft… etc), lead to many conversations with “experts” that simply ended with “Yea, that’s nice Amir, but I would never use any of that in a production environment.” I was genuinely trying to share my experiences (under the naive assumption that the parties I was speaking with had an open mind about what I was speaking about).

That anxiety level was manageable (with some venting to my friends and some angry tweets). But, when A Dark Room became the #1 app in the App Store (and stayed there for 18 days), my anxiety level shot through the roof. It got to a point where I needed to seek help (which I got). Don’t let depression and anxiety remain unchecked, seek help if you need it (email me if you want to talk). Again, seek help before things hit “critical”.

Now, I’m in a much better state mentally. I don’t stress as much as I used to about notoriety/being acknowledged by my peers (mostly because I’ve distanced myself from the .Net monoculture). I (currently) identify with the indie game development community, which is a more generalized (dare I use the buzz word “product based”) community. They use whatever tech works. Everything from Twine to Unity. Anything that’ll help them get their creative thoughts in a medium that can be shared with others.

So most of the time I just keep my technical “expertise” to myself. And just say “Iono, I’m just a game developer,”… at least I try to :-D

Rebooting was more of a re-format

Welp. I have stuff again. A Dark Room helped me put a nice down payment on a house in the middle of nowhere. It should be paid off in the next six months. Thirty-two with a paid off house and zero debt ain’t too shabby. My minimalistic life style lasted for a good 18 months, but now I have stuff again. Those things I “shed”, I’ve rediscovered (gaming, sports car, and entertainment system). The important take away from the experience is I no longer have a mental attachment to these newly acquired possessions. It’s just stuff. I can live without it (and I’ve done so). The emotional detachment from worldly things is really nice, hope I don’t forget how it feels.


Giving the other person the benefit of the doubt, never criticizing, being kind… all these things lead to better outcomes.

What’s beautiful (and terrifying) about this world is that every person has formed a model of what they consider a valid existence. Take some time to try and understand that. It’s really freaking hard, but I think it’s worth the effort.


It’s an immense amount of hard work trying to “arrive” (whatever that means for you).

I was completely broken with the terminal. I couldn’t understand why in the world anyone would willingly code in that environment (now I do). That took hard work.

Understanding that there are developers out there that see this form of creation as simply a means to collect a paycheck… that took a lot of work too.

I finally have a direct contact at Apple who I work with to get my games featured. It took an email every week for nearly four months, before they responded and assigned me someone (even with a #1 app in the app store). It took (and still takes) consistent coresspondance with my contact to keep me on his radar.

Keeping was (at particullarly difficult points in my life) my anger in check, took an immense amount of work too.

Life goes on

You’d think accomplishing the things I’ve accomplished would satisfy my appetite. It didn’t. I have six more games I need to get out of my head and into my hands. I’m working contract gigs right now (at least until I pay down this pesky mortgage). Then (if the time is right) I’ll do game development “full time” again… or I might get bored of that and try something else… who knows :-)

Subscribe to get high signal, low noise entries with regards to software development, doing what you love, and never being content with where you are.

Also, I've spent the three years fighting the uphill battle of getting noticed in the App Store. I've decided to write some words about it in book format.

powered by MailChimp

11 November 2015