This is a highly reflective article written by an independent Android developer who didn’t make it. It is zero motivational bullshit — only cold hard truth. You have been warned.
So, you’ve decided to make a living of your own apps? Always wanted to build what matters to you instead of slaving for the big boss? Saw others game the system and got inspired to do so yourself — write an app once and live off the passive income for the rest of your life, chilling? Congrats, you’re a fool just like me! But don’t worry just yet. Maybe you’ve got what it takes to actually succeed in your endeavor.
Let’s start with a small checklist. Are you:
If most of these are yes, sort your fucking life out first!
The traits mentioned above are very typical for a miserable geek. An immature romantic. A no-lifer. Trust me, I’ve been there. Such people believe that if they work super hard and put everything else aside they will succeed. But the truth is, if you walk that path you probably won’t even get a chance to finish the v.1 of your app before you completely burn out.
As with everything, there’s a reason how this mindset is formed. People who get into engineering (particularly coding) not because of money but because of passion often turn out to be social outcasts. Their natural giftedness in logical thinking had prevented them from conversing with peers since the early childhood. They grew up introverted, constrained, and eventually got into computers as a form of escapism. Because of the lack of real life experience, their mindset was mostly shaped by surrogate emotions from watching movies, TV shows, playing video games, reading random things on the web etc. As a result, they’ve developed a very idealistic, black-and-white outlook where the good and honest working guy always wins. Those are the people who work hard and overtime, never delegate, and never ask for a raise. You will never find them on management positions either — they’re only good at doing their assigned job. They fall behind in confidence, often lead an unhealthy lifestyle and have poor work/life balance. And if such a person chooses to quit their job to liberate themselves from slaving for their boss and live a fuller life as an independent developer, all they’ll end up with will be slaving for their inner demons.
There won’t be a boss anymore, but the stress will remain the same if not more. Forty hours per week will become sixty, eighty — proper recreation will be put aside ‘until it’s done’. The person will stop enjoying life because there’ll be nothing left to enjoy. From there it’s only a matter of months until this ends up in crippling depression and the person is so paralyzed they can neither keep on working nor get their life back on track.
Again, I’ve been there. It fucking sucks. But the good news is — it’s curable. Not really in the scope of this article, but it’s curable. And when you’re all good, the chance of your success skyrockets infinitely.
So my advice here is: when you go indie, do absolutely NOT dedicate all your time to your project, do absolutely NOT put aside your life to get it done faster, do absolutely NOT spend extra hours polishing it to perfection sacrificing the joys of life you’re doing all this for. Lead a healthy lifestyle now, have enough sleep, sex, workout, human interaction, cater to your needs and desires, take it easy, and everything will be fantastic.
**Bottom line:**If you feel like you can’t lead a natural, balanced life, fix your mindset first.
If you’ve read some other motivational articles, you’ve probably seen that they often commonly name perfectionism as a culprit of our development mishaps. But the real problem is the perfectionism’s root cause — the fear of failure.
Perfectionism is not a bad thing per se. Having high standards is inarguably better than having no standards at all. The fear of failure, however, is a real bitch: it’s the trait that makes you believe that you’ve only got a single shot at succeeding, and to not fail you must do everything flawlessly. This is especially painful for those who decide to quit their job and pursue their dreams: they are afraid of failing because for them that would mean burying their dreams forever, returning to their old worthless existence, and never considering taking the same risk again.
Perfectionism and the fear of failure often go hand in hand, so if you feel that you’ve got one, it’s highly likely that you’ve also got another. Both are the product of your upbringing, high expectations set by your parents, criticizing you for every mistake you make, no matter how gently — seeming like nothing to them but slowly killing your self-esteem. If you grew to be an overachiever, winning student contests and getting top grades all the time, this might be an indicator of you having this fear.
So what’s bad, you ask? When put into a constrained environment like a workplace, nothing. (And, actually, good grades and achievements may help you land a decent job, and if you’re aware of your worth, unlock you a higher salary.) But when it comes to independence, you’ll find yourself unable to complete any project — it will simply never be good enough! “People won’t like it unless I add feature X and also Y,” you’ll be thinking. And though people actually like all kinds of shit, and it’s impossible to please everyone anyway, you’ll stress out, and this will be the reason why you’ll never deliver.
Now, how to deal with it? Full disclosure now, I succumbed to this fear, I didn’t find the cure that would help me, and that’s why I’m leaving indie Android development for now. However, what is this if not a failure itself? And suddenly, I’m at peace with that. Nothing disastrous happened, I haven’t really lost anything — well, I spent 2.5 years with near to zero financial gain, but I got wiser, which may help me in the long term. And I haven’t given up on my ambitions of going indie either; this is not the end of me, and I may still revisit that idea eventually.
Hence my advice will be: fail plenty and fast! Just fail a few times and see that nobody actually gave a fuck and the world hasn’t skipped a beat. After that, embrace failures, learn to see them as attempts made and experience gained. Life is actually not that short, so you’ll have your second, third, fourth chance — but only if you let yourself fail the first one.
And here’s an article that may help you with that.
**Bottom line:**If you are an overachiever, you must live through a few failures to liberate yourself from the fear. Better do it fast.
If you’ve been brought up in a working class home like me, your decision to quit a stable job and venture into the unknown will probably be a huge shock to your family. A ruthless and careless step, they will say. And be totally right — that is unless you develop a plan and act reasonably.
Most things in this chapter are obvious as hell, but I’ll put them here just for completeness’ sake.
Firstly, make sure you accumulate enough money before quitting. No one should be that stupid to go indie being broke already, but I’m telling you just in case. Prepare for at least a year (ideally two) of living without any income. Also given paragraph #1, don’t just have the bare minimum to survive on ramen, but save up enough to keep leading the same level of life as you did before (particularly, don’t you EVER move back in with your parents).
Secondly, start with the right project. You probably have some big idea for the Citizen Kane of apps by now — forget it! The ideal first project should:
If your project hits 4 of these points, it’s good to go. And remember: under no circumstances should you multitask on several projects at once! You can pivot your priorities, cease development of one app and pick another. But when you abandon a project, just forget about it, see it as a failure, and move on. Because if you don’t, you’ll fall into the indecisiveness trap and be unable to work on any.
And finally, have a retreat plan. Chances are, despite all efforts you will fail for good and will finally have to resume your career. Therefore, while working on your projects try to learn and use tech that is marketable, i.e., that you can put on your CV and convert your experience into money.
(This is where I fucked up: I adopted vanilla Android development, trusted Android docs and Colt’s #perfmatters videos too much, and grew to despise all that Kotlin / RxJava / MVP / other hype-driven fluff. Well what do you know, these are the essentials now, and without these, even Google themselves won’t take me in.)
Also, don’t burn the bridges with your old job. You will probably never want to return there, but the chance to do so will give you some peace of mind.
**Bottom line:**Make sure you don’t get broke, and make sure you always know what to do.
Okay, this might have sounded a bit sexual. But just like there’s nothing sexy about being a nice guy in your dating game, there’s nothing good about being a nice guy in business. Well, unless you want to send your time, money, and enthusiasm down the drain, and crawl back into workforce, bawwing.
Improve the world with code — there’s this noble calling a lot of developers believe they have (unsurprisingly, see chapter #1). But too often this divine mission makes them blind to reality. As a result, these developers will gladly put their effort for the greater good expecting no profits in return: they will offer their apps at no cost or for donations, contribute to open source, help other folks in the community, on Stack Overflow etc. Furthermore, they believe being such goody-two-shoes will help them build better personal profiles, get noticed and praised, respected and adored, and will generally get them further in life.
Now say after me: THIS. IS. FUCKING. BULLSHIT.
If you’re a good guy, here’s a reality check for you. No one cares about your individuality or your feelings. To people out there, you matter only as much as the products of your work. They may enjoy your app if it makes their lives better (saves them money or time, or gives them some fun and distraction), yet they could give two shits about you, your life and your ideals, and will take advantage of you whenever you give them a chance.
And that’s exactly why you shouldn’t give two shits about them.
So grow the fuck up and remember:
If any of this makes you feel uncomfortable, then indie development is not for you. Go back to your job, and keep your pet projects as your nerdy little hobby instead. Like, seriously.
Bottom line:You must learn not to care what others may think, and put your interests first.
Just look how far you’ve come!
When you were an employee, you were merely a workforce unit, doing your assigned job, completing your tasks, getting your agreed salary, having strictly defined responsibilities, being shielded from any business liabilities, and having no say in any company-wide decisions.
But now you’re going to be a developer on your own. Now you make all the choices. You define the strategy. You manage your risks, your budget, and your other resources. And you take full responsibility for the work you’re doing.
You are becoming a business. And you should think and act like one.
Everything written before — that’s only what you need to get there. But even if you manage to make a few apps that totally pay off your living at the moment, this will not last forever. Eventually, they will all reach their limits, attracting no new users, being surpassed by competition, losing their spotlight and lastly falling into obsolescence. So to actually stay there you must finally let go of your engineer mindset and adopt the mindset of business.
Here’s what a developer cares about:
And here’s what business cares about:
To sum up, business doesn’t concern itself with feelings — but only with sustained functioning, which is achieved through cold hard calculation. That’s why you must suppress the last of your emotions and remember:
I wish I could say all that was sarcastic, but it’s not.
**Bottom line:**Learn to suppress your emotions and plan with cold hard calculation.Be morally ready to make decisions that you would find devastating as an employee.
Indie development is not for pussies.
No, I’m not discouraging you from quitting traditional employment and trying to do your own thing. Quite the opposite, I believe that working on one’s own terms is what every professional should aim for. I’m writing this piece because I learned those lessons the hard way, and perhaps after reading it you won’t repeat the mistakes I made.
Or fucking go and repeat them! Because who the fuck am I to listen to?
— Glad you asked. Long story short, I spent last 2.5 years trying to become an indie Android developer. Over those years I earned FORTY FUCKING BUCKS. I haven’t even withdrawn it from Play Store yet because the transfer fee alone is $20. And in all that time I published only one decent app — Material Cue — and even that one is still a bloody 0.9.something because it’s NOT FUCKING GOOD ENOUGH! This app used to have in-app purchases (aka early support donations), but at some point, I removed those too.
Here I want to say thank you to my 26 anonymous backers for those forty total bucks, and sorry for never releasing all those “pro features” that I promised.Thank you unironically.
And on this cheerful note, I officially announce that I’m leaving Android for now and returning to my previous area of expertise: test automation for web apps. Nothing changed there in these 2.5 years; companies worldwide are still making the same dumb mistakes trying to implement automation on their own (definitely a topic to write my next stories on!) But now there’s me to the rescue: I do know a thing or two about good enterprise-grade test automation, and I’m willing to help these companies build great automation projects from the start, saving them years of wasted effort.
Is your company one of these by chance? Why not tell your boss to hire me?
And to others — thanks for bearing with me to the end. Liked the read? Follow me to be the first to get my new stories in your feed. Also, write in comments what you think. And perhaps clap a little? That will make my heart go faster.
Take care!