What it Takes to be a Developer

Being a developer is a fairly unique pursuit. It is difficult and at times demoralizing. You will have doubts and 99% of you will face some failures.

DISCLAIMER/UPDATE: In the 3 years since this was written Corona has become an SDK that I not only don’t recommend but strongly advise against. I’m not going to talk about the many reasons why publicly, I just can’t advise anyone to use it in good faith. Look at Platino – it is what I am using and evangelizing for games, for apps I push Titanium. (Which Platino works with, by the way.) Need more info? Contact me.

Recently I have been thinking about my own life; hard work, sacrifices, commitment, determination, loyalty, passion, patience and persistence – these are the things that matter to me. These are qualities I possess that I believe are very important in achieving my goals.

These are qualities that are sometimes forgotten by developers – especially new developers and those who are obsessed with making the next Angry Birds.

There will be success stories – the apps that explode overnight and make a good amount of money – it does happen, however this is not the norm and you cannot rely on it.

If you are serious about making a living developing applications you need to be willing to fail sometimes, or at least not succeed as wildly as you would like.

A recent article I read discussed how making a living from apps seemed only to be possible for the top 1% – I believe this is bollocks.

I can tell you right now how to make apps and live off the sales – it’s hard work but it is certainly achievable.

Let me break it down for you, step by step;

1. Get the CoronaSDK

Yeah, I’m pimping Corona – I do that a lot – but there’s a reason for that. Are you going to spend three months writing an app in Obj-C you could create in Corona in two, maybe three weeks? No – and if you answered “yes” then you aren’t going to be able to do this without a solid bank balance to sustain you while you waste time. Time is valuable.

Think of it in terms of hiring a developer – you hire someone to make an app using Obj-C and Xcode, it takes at least three times as long as in Corona. Let’s say you pay your developer $60 per hour and your app would take 120 hours in Obj-C; that’s $7200. With Corona that’s $2400.

Hiring a developer or doing it yourself – value your time. It is the only way to build your income.

2. Focus on Ongoing Passive Income

Passive income – it’s what everyone wants, to make money while they sleep.

You need to focus on passive income because the only alternative is focusing on a huge payout, which you cannot rely on.

You need this focus because money matters – but sustainable income is more important than a quick cash infusion if you’re trying to build something on your own while also affording the costs of living. An infusion covers you short term, that’s it – you need to build multiple revenue streams. (In this case, multiple apps.)

3. Work 80 Hours a Week

This is the make or break point – some people cannot or will not devote this much time to pursuing a career as a developer – but it’s a must, at least in the early stages.

The way to survive and eventually thrive as a developer if not through luck or copious amounts of cash for marketing is to keep making apps.

A good app that gets no extra attention, no costly marketing and no Apple love can still make money – even if that money is only $20 a week.

If you create an app a month (320 working hours) you are up to $240 a week within your first year. Enough to live on? No, but it is a solid start. That’s $960+ a month, or $12,480 a year.

4. Build On Success

To turn that $1000 odd a month into more money you need to build on what you know works. Do you have an app that sold well? Make a sequel. Make something similar, then make a sequel to that as well.

Not all apps are going to be winners – you have to learn to perfect your art.

5. Get Motivated

You need motivation to survive, especially early on. In my experience you can do this in three ways;

- Do the Math

Refine your skills, manage your time, learn what sells well for you. You can triple your income in a matter of months. Maybe you can’t live off $36,000 a year but that’s a very impressive passive income and perfectly attainable if you put the work in when Corona allows you to create apps so much faster than other SDKs.

- Find a Reason

Sometimes you’re going to need a reason to work rather than having “fun”. I’m not saying don’t have fun, fun matters too – but weigh it up. If it comes down to getting drunk with your friends while watching the entire Harry Potter box set because you have a thing for Snape, well, you need weigh that up too so that you’re able to say “Sorry Snape, when I’m filthy rich I’ll watch you sexily redeem yourself.”*

My reason is two-fold; firstly I love the idea of residual, passive income and secondly I want more time to devote to improving the Corona community – not having to take on a “real” job gives me more free time to do that.

- Think Personally

Most of us have someone, maybe multiple people, we’d like to make proud. Think about that and let it motivate you – it’s one of the easiest ways to find the energy to keep going and avoid burnouts.

Sometimes thinking about that person, or those people, can inspire you more than anything else. It’s all too easy to forget about that when you’re busy working around the clock but try and spare a minute here and there, it really does help.

TL;DR

Devote yourself to making as many quality apps as you can over a period of time and be committed to the long term. You can’t all be overnight successes but you CAN be successful in this business if you are willing to do the work; you don’t need to be the top 1%, you just need to give 100%.

Peach Pellen :)

*This is purely an example. I’ve never watched the entire Harry Potter box set in one night. I think that would take like 20 hours. Also, I’m not that obsessed with Snape, although I do think Alan Rickman is awesome and one of only two men who can pull off hair like that.

30 Responses to What it Takes to be a Developer
  1. Cleo Reply

    Very inspiring, makes perfect sense and I love the term ‘passive income’.

  2. Krista (@kristahouse) Reply

    Great post Peach. Your points ring true. We just started using Corona at my company a couple of months back. We posted our first IOS app, in early December and it was completely unbelievable how quickly we were able to developed the app!

    PS Who is the other man that can pull off hair like Snape?

  3. Peach Pellen Reply

    @Cleo – Thanks. (I’m a fan of the term, too.)

    @Krista – Thank you, I’m glad to hear your company was able to develop an app using Corona and appreciate how fast it can be done, it’s one of the best things about being a Corona developer because time, as discussed above, is money.

    The other man who can pull off hair like Snape? Carlos. (Corona co-founder). He’s cut it now but it was pretty long for awhile there – it looked good :)

  4. Nick G Reply

    Yes, I agree. Passive income is KEY.

    Things on my plate (vague on purpose)

    Game development
    licensing (secret sauce stuff here)
    consulting

    Also, I think it’s worth mentioning something if you haven’t thought about it already.

    Normally, you have a peak and then a trail off. So if you were making $5 a day off an app, that would be finite as over time it would die off slow or fast depeding on how saturated your app is (ie, angry birds sold millions of copies so most people have it now, vs your app only has 1000’s so a lot of room to grow).

    However, if you as you say make multiple apps and keep doing it, then that $5 trails off and slows down to 2$ but now you have a new app that’s getting another 5$ and now you are getting 7$ (until the second app trails off of course)…rinse repeat.

    I think the whole 1% is nonsense too, I think if you are smart about it and diversify yourself you will find success at some level (that’s up to you!).

    -nick

    • Peach Pellen Reply

      True, you do get a spike at first – however the “trailing off” doesn’t mean 3 months after launch you make $5 a day then drop to $2. It can but not always.

      I have one app is a very saturated area that has had the same consistent weekly sales for about a year now. (I have others but not as old, closer to 9 months, 6 months, etc.)

      Of all the apps I’ve written only two have ever fully “died” – take that as you will :)

  5. Guy T. Reply

    Thought-provoking and inspiring. Thanks!

  6. WauloK Reply

    A very inspiring article.
    People may wonder if it’s worth it. Here’s what I have to say:
    Maybe you risk your app not being very popular, but an app never written is guaranteed to make no money. Just try it. Angry Birds was Rovio’s 52nd game. They were nearly bankrupt but got lucky. If they gave up they’d never have become so popular! :)

  7. Husam Abu Sarris Reply

    Great Piece Peach!
    But I must be honest with you, I intend to build the next “Bubble ball”! I wanna make millions! :)

    I love your writings and what you do, it’s really amazing!

    @husamsarris

  8. Peach Pellen Reply

    @Guy T – Thank you :)

    @WauloK – This is very true and excellent advice. The only true failure is failing to try.

    @Husam – Haha, I am sure you have it in you to do so – but if it isn’t an instant success remember good things take time. (Like WauloK said, Angry Birds was Rovio’s 52 app.)

  9. Richard Roberts Reply

    Peach,

    Short and sweet. That’s what I like about you. It doesn’t take you 5 paragraphs to get your point across.

    I completely agree with your statement.

    I started last September (having only 6 weeks with Xcode and a ton of Objective C books) and came across Corona and was immediately hooked. I did get my first app out before Christmas and though it was declined because that area was too saturated (really, shouldn’t apple let the market decide???) I still learned so so very much having gone through the entire process and doing it right the first time. I only forgot one icon@2.

    I just have so many ideas that it gets complicated working on one for a week, then another and so on. I wish I could win the lottery so I could devote the time working for the man to working on my coding ;-P

    Keep up the good work. We appreciate you greatly!

    Richard

  10. Paulo Dichone Reply

    Peach, again, wonderful post. You are a true inspiration to all of us Corona developers. It’s always nice to hear things like “Don’t give up”, “Work hard” ( totally paraphrasing here, but you get the idea).

    So thank you very much again for your thoughtful post.

  11. Peach Pellen Reply

    @Richard – Thank you :) You will get there. (Although if you win the lottery I expect more ducats – my Pepsi Max habit doesn’t pay for itself, y’know;))

    @Paulo – Thank you very much; your paraphrasing is accurate and I’m glad you enjoyed the post :)

  12. Rodrigo RSCdev Reply

    My best friend,

    sorry being so late by here BUT better late than never and SO I have to say I loved to read it and thanks for your “blog-time” going so well. ;)

    Cheers,

    • Peach Pellen Reply

      Thank you my friend – I am glad you liked the post :) (Indeed, better late than never! Very true.)

  13. Steve G Reply

    Good post.

    1) I have no problem with you pimping CoronaSDK. You pretty much get the full product to try before you buy.

    2) If anyone wants more information on why passive income is so important, I highly recommend reading “Rich Dad, Poor Dad” by Robert T. Kiyosaki. It talks about purchasing/creating assets which generate passive income for long term wealth. Apps=Assets. The book is a good motivator too.

    3) Between my day job and development I’m working over 80 hours a week, much to my fiancees dismay.
    I find setting small daily targets this best way to keep motivated and on track. I usually list about 7 things I want to get done that evening/day, most of the time I get about 5 get done and carry the last 2 over to the next day. Keeping the goals achievable is key. Crossing a task off the list feels good! Its also important to set longer term goals too.
    My longer term goal has been to make an android app so good that hundreds of people would download it, play it and want to tell their friends about it. If the app/game/product is good enough then the money side of success should come naturally. I think I have created a good playable game so like so many I thought that downloads and financial reward would be acheived over night. I’ve got to rethink that now, having bought a pro licence I need to be make around $6.75 per week over the year to justify its purchase – double that if I want to renew the licence! If I get close to that or I get hundreds of downloads for an app/game then I may be able to justify buying a mac, but for now unfortunately that’ll have to wait.

    4) Build on success. Ok so I haven’t had any real success, but I’ve successfully got an app in the Android market place and approved on Amazon. So I can build on that. Perhaps this point should also include learning from mistakes. If an app doesn’t go to plan what went wrong, why, what should be different next time etc, at least having produced a failed app we’ll be more educated than we were.

    5) I haven’t shown my game “Harry and the Octopus” to my family yet. They’re the people I want to make proud. I haven’t promoted it quite as well as I could have among all my friends either, for one simple reason. I want to give the game as a surprise birthday present to Harry. Harry on which the game is based, is my nephew and he turns 1 in late March. So aside from his normal presents he’ll get a starring role in his own game for his birthday. He’ll probably be the world’s first baby, to get a smart phone app for his 1st birthday! Ok he is only going to be 1, but his mum (my sister) should be impressed, and give me loads more motivation. Although the first question she will ask is how do I get the game on my iPhone, grrrr.

    Great post Peach thanks for writing it. Now for app number 3.

  14. Mark Reply

    Hi Peach, may I ask, I’m a Kwik user, and Corona subscriber and I want to put up a post to the Corona forum. Thing is, I can’t see a way of registering for the forums and getting post up. I can read other people’s posts ok, of course, but cannot post myself. How do I post onto the forums? I’ve paid my Corona dues, so I presume that means I’m a subscriber.

  15. Mark Reply

    Thanks Peach – form submitted. It’s to do with the dreaded ‘failed code sign verification’ message; an app I’m ready to submit is getting it.

    Whilst I’m waiting to be able to interact with the forums, may I ask a question?

    I’ve got quite a few duplications of my Code Signing IDs in the Corona iOS Build box. Should I delete these duplications and, if so, how? This is probably not the place to ask so apologies if so.

  16. Peach Pellen Reply

    Asking here is OK for now although yes, forum is better in future once you can post for a few reasons. (You’ll get help faster, from more people and it will also be useful to others in the future.)

    In the build box I assume you mean provisioning profiles, you can clear these by deleting them from Xcode. (Open Xcode and press CMD+Shift+2 to open Organizer.)

    For the failed signing, have you previously built an app on this machine, or no?

  17. Mark Reply

    Thanks Peach – I’ll put whatever I find on the Corona forum as soon as I can. Also especially the Kwik forum because there many newbies, like me, using it, are out of their depth with tis sort of issue – so thanks for any help.

    By build box, I mean Corona Simulator > File > Build > iOS > Build for iOS > Code Signing Identity: Choose from the Following. That’s where the duplications appear. The duplications are here, not in Xcode.

    RE: Failed Signing, yes, I have previously built a Kwik app. Its waiting for review with Apple.

  18. Peach Pellen Reply

    What I mean is the options showing up there multiple times are likely doing so because there multiple copies of them in Xcode, where they are stored.

    Are you using a distribution or a development certificate/profile to build currently?

    Lastly, could you try build one of the sample apps in the CoronaSDK > SampleCode folder and let me know results, please? :)

  19. Mark Reply

    I get what you mean – but the profiles are not duplicated in the Xcode organiser.

    I was using only a development certificate/profile to test the app on the device. It was running fine. Then, it started to get the code sign verification failure. The error message included ‘Invalid, disallowed entitlements, and/or, was not signed with a Distribution Certificate.’ So I got a distribution certificate and still no go.

    I’ve just built the red lettered ‘Hello World’ app (i.e. put the code in Dreamweaver txt. Saved as main.lua and opened in the simulator) It appeared fine in the simulator : – )

  20. Peach Pellen Reply

    But they are appearing more than once in Corona? If so that is very strange, I’ve not seen that before. (And I have a LOT of profiles installed. I think around 80 now.)

    It sounds like there is a problem with your distribution certificate that you just made; building for the Xcode simulator would normally use the developer certificate unless you specified a profile that was distribution, which is what it seems you were using when you got the error.

    So you can build Hello Word for Xcode simulator but your app fails, is that correct? If so, same profile or different?

    ( Just FYI we do have a service for this if you get really stuck, Corona 102 – http://www.anscamobile.com/corona/support/ )

    Let me know :)

  21. L Reply

    The main concern about using Corona SDK is, if all things fail, and bills need to be paid for, no mobile app company is ever going to hire a developer with only Corona experience and none with native.

    • Peach Pellen Reply

      I strongly believe you should learn as many skills as you can, including other SDKs and native – however you are mistaken with the notion that no mobile app company will ever hire a developer with Corona-only experience. I have seen multiple studios who work exclusively with Corona looking to hire Corona developers.
      It is still better to have a broader skill set but I wanted to correct the idea these studios don’t exist as they most certainly do – you will find the same for many other 3rd party SDKs also. (Moai, Appcelerator, etc.)

  22. Mars Reply

    L,
    I was in the same boat, but believe me it can happen… I started to lose hope that any mobile company would hire me because of my Corona-only experience, but then after a little over a year (and some all-nighters doing the tuts in Michelle’s book), I got hired at my current company (whose focus is business apps)! At my last company, I had built a proof-of-concept iPad app in Corona for a Higher Ed food service account they were trying to win. That, combined with my graphic design, mobile web experience, and Corona game I showed at the interview was enough for them to decide to give me a chance.

    I was able to leverage what I learned in Lua (thanks to Michelle’s book) to my new job where I now build business apps in C# and Mono. In fact, one of their strengths they talk about at tradeshows is the ability to take a noob like myself (who was a graphic designer for 12 years) and turn them into a bonafide dev. And I still offer to use Corona/Lua when a client wants to build a game. However, the obstacle of course is its lack of support for Windows devices (we are a Microsoft partner). I’m sure they have their reasons, but if Walter and the Corona team were to finally allow it to build for Windows-devices (and package it with its very own free IDE)… Man… it would probably be a game-changer for those of us in the business world.

    I started at my new job first week of August. Granted, I probably came in at a slightly lower salary than our other devs, but my marketplace hireability has skyrocketed. Now I average at least one call/email a week from a recruiter looking for a FT mobile dev, sometimes in other parts of the US! What’s funny is that this was the job that I wasn’t really trying to get, because I didn’t think I was qualified enough. I had three other interviews that week in fact.

    Sorry for the novella!

  23. Peter Reply

    I have been trying out the CoronaSDK for a few weeks now. The idea behind it is promising although I still can’t get the Corona terminal to work properly. Yes, all components reside within the the same directory. Yes, I reinstalled everything a few times. Yes, I tried to type in the commands in the terminal window of Mac OS X to manually start the Corona terminal that way. I just doesn’t work. That’s the first thing you encounter when trying something new. Not very encouraging, not very trust giving. Why would I buy this product?

    /Users/bla/CoronaSDK/Corona\ Terminal ; exit;
    /Users/bla/CoronaSDK/Corona Terminal: line 3: dirname: command not found
    ERROR: Could not find “Corona Simulator.app” in:

    I tried Xcode, TextMate, Eclipse + necessary plug-ins … Mmmm … You just don’t see what you’re doing. Some things are so abstract and hardly anyone can explain why you need to type in what you’re typing in. “Read books”, they say. Sure. Or: “It’s all on the Corona web site!” Sure. To me that sounds like: learn Chinese overnight. Reading books doesn’t provide me with the required agility to ride a bicycle … Why are many of those so-called experienced programmers so extremely unforgiving and harsh in their judgments as if one were a complete moron … How in heaven’s name can one acquire the necessary capacity to turn a real-life situation into an algorithm?! I have been typing in examples out of books and several web sites. I get most stuff, but as soon as I would like to create something of my own, I simply don’t know where to start.

    I think I will try and follow the even more frustrating and endlessly long way of learning JAVA + XML. Or maybe I am simply not autistic enough to be a programmer :-). What a frustrating hell!

    • Peach Pellen Reply

      Hey Peter – I’m not here to sell you on Corona, it doesn’t matter to me which route you go. That said, if you actually want to use Corona, I’m happy to try and assist you. Make a thread in the Corona SDK forum and I will see it, so will others, and be able to help you out. I’d never tell you to go and look at the website or read a book to fix a terminal issue – those who see you as a “complete moron” are likely just put off by the way you are asking or else they’ve been doing this so long they have forgotten how hard it can be at first.
      That or the fact many “expert programmers” are very busy and you may be approaching them without using the proper channels; like their personal blogs which are not for discussing technical issues ;-)

      Seriously though, make a forum thread if you want help with this and I should be able to assist.

  24. Nick Nebelsky Reply

    Peach, I know you’re no longer associated with Corona, but your other points stick really well with me. For most of my life, I’ve had a 9 to 5 job and loved every minute of it. For the most part you work 8 hours a day and then you go home and do whatever you want to do. Working for myself has its pros and cons but in the end, I know what I did is mine to keep. I’ve been doing this full time for two and a half years. And no I’m not rich by any means. But I view it like any new startup, many of the internet successes don’t make money in their first couple of years. It’s those who keep working and striving to be their best who persevere. My wife is my biggest supporter. I’ve talked with her numerous times about whether I should go back to the 9 to 5 routine. And she insists I should stick it out. Most people have never seen my apps, but if I just keep pushing, they will and all of the great work I have accomplished will be noticed. I know that everything I do is for a reason. I’m learning something new, I’m learning more about myself. It’s a lot of hard work, but when I get a new app published, it’s so rewarding! One bit of advice I’ll share with you all. Work with another person on at least one of your projects. Then you’re held accountable for that person, and you will double your marketing efforts. Thanks Peach for all of your words of wisdom!

  25. Sean Reply

    Couldn’t agree more with the dedication to hours. Too many mates can’t believe the hours I put into making games or apps… but it’s nice seeing those hundreds of countless hours pay off. Too many dev’s I’ve met in passing just don’t have the conviction.
    Nice article.

Leave a Reply to Krista (@kristahouse) Cancel reply

Your email address will not be published. Please enter your name, email and a comment.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>