Earnings Report for the Cocoa Nomad

Why Share This?

When I started blogging a few years ago about my development experiences, it was about sharing information. The iOS dev community was particularly welcoming and always willing to share with me. Additionally, I’ve always appreciated the transparency of developers and entrepreneurs who shared their sales data. It’s important to show the entire transition so as to never incorrectly access future successes as instant.

Documenting this experience is also about accountability. I’m making lots of mistakes by commission or omission and making note of them is only part of the process. Quantifying those mistakes is equally as important as sharing them. As Peter Drucker famously stated “you can’t manage what you can’t measure”.

December 2016 Report

Consulting: $0

I’ve not done any consulting work. After leaving my full-time job, I took a 6 month sabbatical as I needed to recharge and wanted to explore other business opportunities. This will most likely change in the next few months as I’m working toward a balance between my passion projects and some paid work.

iOS App Store: $17.20

This number is not the least bit surprising. My existing apps haven’t seen updated in 4 years and the sales reflect that. I have an updated version of Capoeira Songs that needs a bit more art work and it should be ready for release soon. While I don’t expect a huge increase in revenue for this app, I felt the rewrite was worth the effort. Next up is the Team Tryouts rewrite.

Amazon: $13.92

This is the most disappointing figure. My experiment with retail arbitrage has not been nearly as successful as I’d hoped. The toys (which few exceptions) have not sold well and the expected Christmas bump just didn’t happen. I naively assumed that everything would be gone by the new year. I may have been too aggressive/optimistic in selecting products. I could’ve paid closer attention to the sales ranking of certain products instead of focusing so much on margin. What good is high margin on a product that doesn’t sell? I’ll be faced with decisions about how to handle the inventory if the storage fees start to become a problem.
Total: $31.12

You probably have more money in your wallet right now than I made last month. Despite the low numbers, I’m pretty excited about 2017. I have a renewed interest in development and the amazing travel experience of 2016 was vital to that.

Thinking of a Master Plan

I left my job of 3 years in April to focus on developing my own apps and exploring other ways of making a living. I was burnt out and needed a sabbatical. Six months later, I’m looking to pass the mantle of President of Team Hangout to someone else on Remote Year and get back to work. When I left for Belgrade 60 days ago, I assumed that I wouldn’t need to return. I sold most of my possessions. I left someone I trusted in charge of selling my house. I assumed that I would be gone for at least another 6 months, yet I find myself back in the United States.

So What Happened?

The best laid schemes of mice and men, Go often askew

During my presidency, I spoke with a fellow Battuta who is making a living selling private label products on Amazon. I was familiar with drop shipping from an entrepreneurship class in grad school but hadn’t given online selling any serious thought since.

I decided to dip a toe into by creating an Amazon account and selling my books/electronics. While most of the items that I owned were not worth listing, I found a few gems that fetched a decent price, like a chord book of Prince’s The Hits that sold for $100. After watching my sales for a few weeks, I was hooked. The only problem was that I was out of inventory.

So What Now?

  • I’m sourcing products for retail arbitrage for FBA while I’m stateside. I’m both excited and nervous because I’m not sure if this is going to work. I’m currently packing the first shipment of items to send to Amazon. I’m still researching private label products.2016-10-16-12-55-14
  • I’ll continue working on app development (more app-specific posts to come). I haven’t lost my love for creating things, I just needed to diversify my attention (and income sources).
  • The house is still not listed for sale. The situation is further complicated by the effects of Hurricane Matthew. My house sustained damage but thankfully it’s not as bad as the countless others who have been displaced.
  • My tentative plan is to remain in SE Asia after the conclusion of Remote Year. It is inexpensive, the food/weather/people are awesome and there are communities of remotes that are working on both types of businesses where my focus lies.


Coding By Train: Leg 2 (Washington, DC to Chicago)

After a snack in Union Station, I  boarded the train for Chicago. There was an option to make reservations for dinner in the dining car. Seating was limited and community seating is used, providing an opportunity for you to meet new people. I opted to skip dinner in lieu of hanging out in the observation section with few beers (shocker!). This time the only decent offering was a Sierra Nevada IPA. I spent most of the early evening looking at the beautiful trees, which had started changing colors and reinstalling Xcode. I made the mistake of not checking for compatibility of Yosemite with older versions (which I use to support legacy apps). Without wi-fi on this segment, I was forced to consume 1.6 GB my precious data plan’s monthly allocation. Note: Xcode 4.6 still does not run on Yosemite.

The most interesting part of the trip after sunset was listening to a One Direction look-alike try to chat up a young lady traveling solo. All was going swimmingly until his dad came over and started making jokes. I closed out the evening with some light reading (Marcus Zarra’s Core Data). I didn’t get much actual coding done this day but still felt productive.

As the first overnight portion of my trip, the lingering question was “Did I make a mistake in not getting a sleeper?” While the coach seats are roomier than anything I encountered on planes or buses, the reclined position was not optimal for sleeping but I managed to make do. In the future, I’ll have to invest in a neck pillow. Having no idea how far we traveled, I awoke thinking we reached Cleveland but kept thinking “this looks too nice. Why do they call this the Mistake By the Lake?”. After checking my map, I realized we were in Pittsburgh and it was only midnight.

For breakfast, I opted for scrambled eggs and grits, a brave choice considering I was no longer in the South. My fears were unfounded though, as whoever is in the kitchen knows their hominy. Perfect balance between thick and thin and paired well with the eggs. I was seated with a nice couple from England and a young man from Chicago. It was a nice conversation, mostly swapping travel stories and sharing options for exploring Chicago prior to my next departure.

Coding by Train: Leg 1 (Wilson, NC to Washington, DC)

For the next week and a half, I am experiencing a new form of travel. Rail. Rather than take my normal flight from RDU to DEN for one of our company meetings, I’ve decided to take the scenic route via an Amtrak train. The first leg of the trip is the Palmetto line from Wilson, NC to Washington, DC.


The cost of a ticket from Wilson, NC to Washington, DC is pretty reasonable at $51 each way. It’s a 4.5 hour ride and allows me to travel without dealing with the traffic issues that has aggravated me in the past.


The seats in the coach class are comparable to those on an airliner. The main difference being that if you aren’t comfortable, yo are free to get up and move about, I spent about half of the trip in the dining car. The food selections are bit limited but not without some variety. They ran out hot dogs pretty quickly but had pizza, sandwiches and tons of snacks. The beer selection was about all I could expect.  Lots of American standards with the only “real” choices being Heineken, Dog Fish and Sam Adams (my choice). Hoping for a better selection on the next leg as I am all about that barley life.


Internet is free on Amtrak and works well enough for pushing commits and general usage (email, Facebook). The connection is a bit spotty, particularly between Rocky Mount and Richmond, VA. While testing an app, I got tons of errors when calling remote services. I didn’t have to resort to using my phone’s data plan, though, which has allowed me to save my precious bytes.


People on the train have been very courteous and I had no worries about leaving my carry-on in the coach cabin while I went to the dining car (unless you have a sexy underwear fetish, why would you want my bag anyway?). The train does jostle a bit at times, reminding me of some of the more turbulent flights I’ve experienced but for most of the ride it’s pretty easy to read/write/type without trouble. If you are prone to motion sickness, it might be a bit difficult in spots. I was unable to fall asleep but that may have been due more to my excitement at starting the trip.

Lessons learned so far

I really enjoy not driving. And not having to sit still for hours on a plane. And not having to take my shoes off. And not going through metal detectors.

Bring an ample supply of snacks that you like. You are also not allowed to consume your private stock of alcohol outside of your sleeper cabin. With the price of the available sleeper at $1100, I’ll settle for Sam Adams.

My first thought upon arriving in DC was “why didn’t I do this sooner”. It took only a few minutes walking from Union Station to remind me why I loved working here years ago. There will be a lot more train rides to DC (an possibly points north) in the future.

App Challenge

As part of my transition to freelance, I’ve challenged myself to complete important projects that had been languishing. The goal is to deliver a version 1 for 3 apps in 6 weeks. Though it’s a daunting task, I expect an informative and productive experience.


I’ve recently adopted the BDD (using Kiwi) approach to building products and want I ingrain the process. The simplest way I know to do this is repetition. By having 3 apps in development over such a short period of time, I can ingrain the habit of creating tests before coding and allow that to drive the design. Because each app is different in nature, I can gain more varied experience in the types of tests that I write. For example, one app requires connection to an external API so I will gain experience with asynchronous tests.

Product Scope

The constraint of a short development time forces me to concentrate on the core value of each product. The initial version of each app is confined to the bare minimum needed to ship. As I work on features, I always come up with ideas for additional features (or products). Anything outside of the scope of version 1 is added to the icebox. I allocate time each week for retrospectives and backlog grooming to evaluate progress and scope out future work. This practice helps me escape the ground-level implementation details and return to the high-level overview of the app to keep it on track.

Current Status (Week 2)

The beta for the first app, TouchCase, shipped yesterday. It’s functionality is simple. It’s UI is plain (honestly, it’s as ugly as homemade soap) but it gets the point across and the momentum has been established (objects in motion, right?). The other two apps, PomoTracker and Haggler, have each been  story carded for the version 1 and design work has started. BDD has been a little slow going as I’m learning the what and how to creating effective Kiwi tests.

Up Next

Week 2 concludes the current sprint for TouchCase. Next week will include model/service tests for both PomoTracker and Haggler. PomoTracker will be the next app to get to beta (hopefully by the middle of week 4). In hindsight, I should’ve built it first as it’s the product that I need to better track my progress through development.


As We Begin Again

This week marks my return to independent development. I’ve had the pleasure of working with a great team, a mix of experienced developers and enthusiastic newcomers. The pay was good, the work flexible (100% remote was available), and I had direct input into the products. I worked for this company 11 years ago and it was the best job I’d ever had. I returned 11 years later and it was still the best job ever.

So why leave?

Several ideas for products have come my way over the last two years. Some of the ideas were my own, some came from others, and some are the offspring of those ideas. I’ve attempted to bring these ideas to light in my spare time. After a year of trying, I realized that there was never going to be enough spare time to make the things I wanted.

Making something worthwhile requires dedicated time. Time to plant the seeds of an idea. Time to nurture the idea and watch it grow. Time to prune it, so that it can find its intended form.

I’ve learned that you can do something full-time or part-time but never sometime.