What I Learned In My First Year Of iOS Consulting

Wow, I can’t believe it has already been a full year since I struck it out on my own.  Last year, I published a post after my first month on doing contract iOS development.  Needless to say, I have grown and learned quite a bit over the past year and I wanted to share some of those experiences.

Income

While I won’t share exact numbers, I left my 6 figure/year job to pursue the indie/consulting life.  During the course of the year, I was able to amass 40% more income in 2013 than I had at my previous position.

In addition to that, I had the time to launch a couple iOS applications and thus upping my Apple income by about 20% this year.

Network Network Network

I would say spending time networking and meeting people is just as important as being able to write code if you want to be successful on your own.  Through out the year, I dedicated at least five to ten hours a week just meeting with people, talking on the phone, and making new connections.

Often times, I would get contract opportunities that I knew for sure that I wasn’t going to take; either because I didn’t love the project, or (more often than not) because I didn’t have the bandwidth to take them on.  However, rather than just writing the client back “I don’t have time“, I would take the call (or meeting in town), make the connection, and even listen to details about the contract.

My wife would tell me to stop wasting my time and that those hours would be better spent on project work that actually made money.  However, these contacts are arguably more valuable than the hours “lost”.  In many situations, I have reached out to those potential clients weeks or months later once I hired a new developer and was then able signed a contract.  If I had declined the meeting to begin with, they probably wouldn’t have been as inclined to work with me so readily.

Subcontractors

Subcontracting has been a mixed bag for me.  It seems to be the only (safe-ish) way to expand your business as a consultant, other than hiring full time developers.  So, if you want to be able to work less yourself (which is almost never the case) or increase your companies revenue, you need to hire out.  

Once I found the right people, subcontracting was a dream.  I was able to reach more clients, still deliver the same value in the work, and achieve the client’s goals, all while expanding my business.

The main challenge I have had is deciding whether to hire subcontractors from here in the states or “offshore”.  They both have their benefits and complications. Here are some I have found:

Benefits of hiring in the states:

  • Communication – Most of the time their timezones are close enough that one of you is not inconvenienced to communicate in real time.
  • Trust From Clients – Some clients still have some issues with “offshore”, especially because many of them have tried their hand at the ODesk lottery and have lost.  So, saying you have US based team members sometimes makes them more comfortable. It’s unfortunate, but I have seen it to be true in some cases.
  • Colleagues – Often times you already know or have worked with these guys since starting with acquaintances/friends is a good place to look for developers.

Complications hiring in the states

  • Cost – US devs are expensive.  Most of the time they have full time jobs and want to do consulting on the side.  So it is important that they get paid more to do contract work than their day job pays.
  • Colleagues – This is on the negative list as well because hiring people you know can get weird if things go awry.

Benefit of Offshore developers 

  • Cost – I put this here, however that doesn’t mean I hire “cheap” developers.  Honestly, if you are not paying a contractor well, you are either under paying him and should give him a raise OR he shouldn’t be working for you as he’s probably too junior.
  • Perspective – I have some incredible developers in other countries that have taught me quite a bit whether it’s about development, process, culture, or even my own code.  It’s a great opportunity to learn.

Problems with Offshore developers 

  • Location – Timezone issues can be a problem if you let them.  For example, I have a developer who lives in a completely different timezone than my own.  However, he does a fantastic job of being available when he is needed.  I have had other instances where it was very challenging to reach my developer in an event where I needed information on short notice.
  • Vetting Process – Finding developers is a little more tricky.  With devs in the states, you can just head to a local meet up or conference, but finding GOOD “offshore” devs is a little trickier.  I have lucked out a few times, but for the most part it’s a bit more work.  I would suggest spending a little of your own money to adequately search and vet each candidate.
  • Language – While doing iOS development, you may need your client and your developer to communicate with one another.  That being said, it’s vital to find a developer who you can understand and who can understand you in order to make communication possible.

Hiring An Assistant

Taking a page from Tim Ferris’ 4 Hour Work Week, I decided to hire an assistant.  Ferris suggests “virtual”, however, I have hired one locally (she’ll be proofreading this post ;) ).  I think it’s one of the best decisions I have made as a business owner.  Here is just a short list of things she handles for me:

  • Contracts
  • Invoicing
  • Payments of contractors
  • Research
  • Phone calls
  • Personal issues (like returns, purchasing equipment, etc.)

Even if she saves me two hours per week, she has paid for herself, and believe me, she saves me much more than that.

Never Decline A Contract

I mentioned this earlier in the post, but I want to reiterate it here.  I seldom tell clients “no” and I really feel that it has worked out to my benefit.  At the very least, I hear them out and add them as a contact to keep in mind for the future.

What I generally do when I can’t take on a client is I will give them an estimate of when myself or a member of my team will be available.  That way, if they are okay with the timeline, I can keep the pipeline open.  If not, there is no harm done.  Also, if I hire another developer before the time I said I was available, sometimes the client will still have the need and I am able to fill it.

If I absolutely don’t have time or don’t want a particular contract, I will refer the client out to other dev shops.  I don’t look at this as competition, but rather opportunity as I would hope they would do the same for me one day.  As an added bonus, some of them have a referral fee so you can at least profit from pairing the client up.

Taxes

I have found out that taxes are less fun when you are self-employed than when you are employed by a business.  Luckily my wife is MUCH better at money management than I am, so she set up a separate tax account where roughly 40% of our income would go.

One of the other good decisions I made besides hiring an assistant was hiring a CPA.  She has saved me countless hours and fees and is worth her weight in gold.

Hire a CPA from day one; you will never regret it.

Family

I know this is a “business” related post, but I have to mention this.  Having a wife and kids, I am very much a family man.  Working for myself has been such a blessing since I have been able to spend considerably more time with my family than when I was employed by someone else.

For example, if it’s a nice summer day and the family decides to head to the zoo, I can just go without asking a boss for time off or taking PTO.  I simply work in the evening or more hours the next day to recoup the time.  Personal time management is key to be able to have this kind of freedom.

Summary

Overall, 2013 was an incredible year.  While I did make mistakes (a ton), I gained so much knowledge and had a blast doing so.  Going solo isn’t for everyone (some days I wonder why everyone isn’t doing it, and others I wonder why I am), but it’s been one of the most exciting experiences of my life.

I look forward to what 2014 brings and seeing how I can continue to grow my consultancy.

Happy New Year and Happy Hacking!

  • Bman

    Time for a new assistant. “waisting” and “hime” Just kidding, nice post, I enjoyed reading it.

    • http://brandontreb.com/ Brandon Trebitowski

      haha fixed thanks!

  • Jjack

    How to find good CPA?

  • sdbeng

    Nice article Brandon! I am an independent ios & ruby dev, started about a year ago like you and so far I being using my own apple store to submit the apps. I have now a client that wants to get the code/submit app from her own apple store account, do you give access to the code on github? Will what would you suggest?
    Thanks for pointing in the right direction:)

    • http://brandontreb.com/ Brandon Trebitowski

      It depends on your contract. Mine is structured in such a way that the client owns all of the code, however I don’t deliver it until all invoices have been paid.

      Typically, I have them add me as a team member to their developer account. I will generate the certificates and submit it to the store for them (through their account).

      Does that make sense?

      • sdbeng

        Yes, I understand, that’s a valid case. Now, what if the client doesn’t have a dev account? and it’s just interested in the final product but she just want to own the code and stay in their property. How would you manage the code distribution in this case?

        • http://brandontreb.com/ Brandon Trebitowski

          I would suggest if they want it in the App Store, tell them they NEED a dev account. If they want the code (and you are fine letting them have it), email them a zip or add them as a contributor to github. Does that answer?

          • sdbeng

            Yes, good suggestion Brandon. They must create a dev account, otherwise I would have to sign-up on a private Github account to let them access the code. For sure will have your advice in mind for the app business.

          • http://www.groovedevelopment.com/ Rick Richard

            If you plan on doing this for a living, I suggest getting your private Github setup and add each client as a contributor as Brandon suggest. I consider it part of a professional service to secure a clients code and give them reliable/easy access.
            With the lowest Github plan $7-$10/month you get at least 5 repos.

            Also, I may have read your reply wrong, but it sounds to me like you mis-read Brandon’s reply. The dev account Brandon mentioned is for the iOS Developer Account, which allows them to submit the app to the app store, not related to Github.

          • sdbeng

            Thanks Rick! I was talking about ios dev, too.

  • amorbytes

    Hi Brandon,
    I enjoyed your post a lot. thanks for sharing your business owner experience.

  • IOSTrain

    did I miss it or did you talk about IOS in the article?

    • http://brandontreb.com/ Brandon Trebitowski

      The post isn’t so much about iOS as it is my experience starting a consultancy. I just happen to do iOS development.

  • wsul

    Brandon, did you hire a PT or FT assistant? Where’d you find her? I assume you plan to work with this person for a while? (Trust with accounting/bank credentials etc.) Any tips related to making a relationship like this work well?

    • http://brandontreb.com/ Brandon Trebitowski

      I was fortunate enough to know my assistant personally before hiring her. Shes PT but works whenever I ask her to and handles billing and payments without my interaction.

      I wish I had some advice on this front other than hire someone you know. Sorry.

  • DrWatson

    How did you get healthcare coverage? Did you get it through your wife’s work? That’s one of the things that always get in the way of a married person. The high cost of it.

    • http://brandontreb.com/ Brandon Trebitowski

      So this was one of the biggest pains going indie. I should have mentioned it. Wife stays home with the kids so no coverage there. We have individual coverage which costs ~$800/month. Not cheap at all, but not bad considering I was able to make more money than at a job which provided insurance.

  • miguelin

    Great post. How did you do the networking? Where did you get leads for work?

    • http://brandontreb.com/ Brandon Trebitowski

      Meet ups, blogging, twitter, linked in, former clients, personal recommendations, ooomf, google, job boards. The list goes on and on. Ill blog about it at some point.

  • bradleymgreenwood

    I’m also an iOS developer and have had very similar experiences as yours starting my consultancy Scal.io (http://scal.io). We were also working on our own product for a good amount of time. However due to the amount of work that (venture backed) companies need in the SF/Bay Area, we found it much more lucrative to focus on client work for the time being. The end goal for us is really to develop our own product and we always say we will, but when you put real dollars up against potential dollars, it can be hard to execute on the internal. Freelancing and small dev shops have become so prevalent as of late, I’m surprised there is not yet a social network around connecting us. Great post Brandon, keep me in your list of companies if you ever feel like trading work.

    • http://brandontreb.com/ Brandon Trebitowski

      Thanks Bradley. I have the same thought “someday I will do product work”, but like you said client services are just way too profitable right now.

      Let’s chat via email at some point about trading.

      Thanks for the comment.

  • http://brandontreb.com/ Brandon Trebitowski

    Approve—
    Sent from Mailbox for iPhone

  • http://digitizormedia.com/ Debjit Saha

    Great Post. I like how you have taken your finances so seriously within your first year of starting solo. This is one the gravest mistake that I committed of not taking care of finances well when I started out. Since you work alone and at home, it might be good to put in at least 30 mins of physical activity. Just saying.

    • http://brandontreb.com/ Brandon Trebitowski

      Good call. I’m a fitness nut. should have included exercise. Thanks for the comment

  • JohnP

    Really great and informative post Brandon, thank you. Following up on sdbeng’s post, how do you handle making sure you get paid on time when you are contributing directly to the client’s repository of already existing code? In that situation you can’t really withhold delivery until all invoices are paid, correct?

    Just wondering how you protect yourself in that case…

    • http://brandontreb.com/ Brandon Trebitowski

      It’s tough and I have been burned. Sometimes, I require a couple weeks up front. Also, you have to develop trust with the client and pay attention to signs that things might go awry.

  • Alex Espinoza

    Thank you for sharing… This is also my dream, to work on my own. It is all about freedom. :D

  • ryandetzel

    Hey, do you typically do fixed rate projects or hourly and do you find a difference in what the client wants?

    • http://brandontreb.com/ Brandon Trebitowski

      Im a fan of hourly(time and materials). I tend to follow an agile development process and this type of billing is more conducive to that style.

      Also, it ensures that everyone is getting what they want. If a client decides to add a new feature in the middle of development, I can tell them “it will increase the scope, but yes” rather than telling them “no” since it’s out of scope or having to draw up a completely new contract.

      • ryandetzel

        Any clients are okay with this? Do you give estimates at the start for a ballpark?

        • http://brandontreb.com/ Brandon Trebitowski

          Yes and yes.

  • Chris Comeau

    Thanks for the article Brandon, very motivating! I’m also starting out in iOS consulting in Montreal, Canada. Getting a part time assistant sounds like a good idea!