About a year ago now, I was contemplating leaving my day job and becoming an indie* iOS developer. My last day working in a cube farm was June 30th, 2011. Now, as I pack to leave for WWDC in the morning, it occurs to me how much my life has changed since I made that decision.
When examining my finances in preparation for this trip, I determined that in my first year as an indie I've made within $1000 of the amount of money I made in salary my last year as an employee, while spending more time with my family and enjoying my work so much more. Personally, I consider that to be a success.
Looking back, I can think of 5 things that I did that I think contributed most to that success, and I wanted to take this opportunity to share them with you all.
- 5. Project Focus
I think of my work (and speak with clients about my work) in terms of projects. I use traditional project management tools (often Gantt charts) to plan my work and track my progress, and I try to arrange for milestones to happen every week or two. That seems to help alleviate any concerns that my customers might have about doing business with a one-man shop. It's helped me develop a "specialty" (if you can call it that) of cleaning up Apps that other bigger but lower-bidding developers (often acquired through Elance/oDesk) have made a mess out of.
- 4. Books/Videos
I read a lot, and I watch conference videos while I'm on a treadmill or rowing machine. I think that's the biggest difference between me and many other developers whose work I often end up straightening out.
My favorite book this year was iOS Recipes by Paul Warren and Matt Drance, although I've read at least a dozen others.
My favorite video was the Core Data Performance series from Marcus Zarra, although the WWDC, NSConference and 360iDev videos were all very useful (and very cost-effective).
- 3. Conferences
If it weren't for the 360|iDev conference in 2010, I would never have had the confidence to try to be an indie iOS developer (full disclosure: I'm Speaking at 360|iDev this September). I agonized over making my reservations for the September 2011 conference, because it meant I wasn't getting paid while I was attending, but I'm so glad I did. I also went to 360|MacDev this February, MicroConf in April, and I'm about to leave for WWDC.
As I mentioned earlier, I buy and watch conference videos for many conferences, so you'd think that it wouldn't be worth actually going to the conferences. I thought so, too, once, but I was wrong. What I get from conferences is networking, making (and renewing) contacts and topping up on the motivation that I need when things don't seem to be going well.
- 2. CocoaCoder/NSCoderNight/CocoaHeads/etc.
Many major areas have meetups where iOS (and sometimes Mac) developers get together to work and learn and talk. I've been attending CocoaCoder Austin for a couple of years now, and I've been one of the organizers for about a year. Austin also has a South group SAiD, and a more entrepreneurial-focused group. These are great opportunities to learn, figure out what's going on in your town. Check Meetup or ask around. If you can't find one, start your own.
- 1. Co-Working facilities
But I think the biggest factor in my success as an iOS contractor was my decision to spend time at a local co-working facility (mostly CoSpace, although I spend some time at Tech Ranch, where we have most of our CocoaCoder meetings, as well).
Co-working isn't just a place to go to get out of the house and have some non-family human contact (although it does do that), but a good Co-working space facilitates introductions and a sense of community. Co-working became a source of contacts and contract opportunities for me, and I can safely say that, if it weren't for some of the people I met while I was there, I would have completed this year having made far less money than I actually have.
Of course, your mileage may vary, but I hope this has been useful. It is possible to give up your day job and make the same money, while enjoying your work more and spending more time with your family - I know, because I did it. It hasn't been perfect, and I've made my share of stupid mistakes, but I'm declaring victory on my first year as an Indie, and I'm going to go enjoy WWDC and look forward to my next year of making my own way in the world.
* Some people may take issue with my characterization of myself as "indie." Some people define indie as "Only works on your own stuff", and that's certainly not true of me (although I do work on some of my own projects). Personally, I choose to define indie as "Not sure month to month (or even day to day) when or how much you're getting paid next."