On November 23 White Peak Software celebrated 10 years of being in business. This is a huge milestone for me as there have been times, even recently, when I’ve thought about quitting. But despite the rough patches, I can’t image being happier working elsewhere.
The idea to start White Peak Software came during my honeymoon 10 years ago. My lovely bride and I were at a swim-up bar in Hawaii having a couple of drinks while watching the Yankees play in the 2003 World Series. Out of the blue I said to her, “I think I’m going to start my own company when we return to New York.” She thought the idea was great. She knew I was unhappy with my current employer, and she felt I would be much happier working for myself. Little did she know what she was agreeing to. Obviously she was still high from the buzz of getting married.
I started the process of incorporating the moment we returned from our honeymoon, and on November 23, 2003, White Peak Software was born. The problem was, I didn’t know what I wanted to do with White Peak. The company was born out of frustration more than anything else. I had a good paying, six-figure job, a nice two-bedroom West Village apartment, and no debt. Life was good, but I had become very bitter towards the company I was working for. I knew I needed a change and starting my own company seemed like the right thing to do at the time.
Within a couple of weeks of White Peak’s official start I had my first part-time consulting gig. I wasn’t sure what I wanted to do with my company, so I took advantage of the fact that I had been a consultant for most of my career. This was how I was able to land the contract gig so quickly. However as quickly as I got the contract, I quickly realized the client wasn’t the ideal client for me so I fire them.
Firing my first client wasn’t a big deal at the time because I was still employed full time with my previous employer. I hadn’t quit my full-time job because I was in the middle of a project. I didn’t want to abandon the project, so I agreed I would stay on until the end of the project. Given the experience with my first White Peak Software client and the fact that I still had my full-time job elsewhere, I decided to put White Peak on hold until I could work on it full time.
I used this “on-hold” time to get affairs in order for White Peak. I worked on building the company website, I setup a corporate bank account, hired an accountant, bought computer equipment, read many books on building a company, and did other tasks so that when the time came White Peak would be ready for me to start full-time.
My first day as a full-time employee at White Peak Software came on Monday, August 2, 2004. I remember the day like it was yesterday. I was sitting in my “office,” which was actually our spare bedroom overlooking Christopher Street in the West Village. I thought to myself, “Now what?” I sat in my office all day just starring at a blank screen on my computer. Occasionally I would spin my chair towards the window to watch the many people walking up and down Christopher Street.
This went on for a few days. I was, for the first time ever, working for myself full time, but I had no clue what I should be doing. I knew I needed to make money, after all we were living in Manhattan where the rent ain’t cheap, but I didn’t know what I should do to make money. I couldn’t use my contacts from my previous employer due to legal agreements, so I sent out emails to my professional contacts made while living in St. Louis a few years earlier. Those contacts were more than 5 years old, and a lot had changed in those 5 years. Still, I was hopeful I would land something. Unfortunately it didn’t happen.
I went 3 months without any income, and I blew through all of our savings during that time, most of which was my wife’s money. It was probably around this time when she first started worrying about what she had agreed to and helped encourage a year earlier at that swim-up bar in Hawaii.
Things did start turning around during the second 3 months. I signed up on websites like guru.com to find freelance projects. I didn’t land anything big, but I had a little cash rolling in. My big break came 7 or 8 months after I started working full-time. A friend of my wife’s family owned a web design studio and they needed a contract programmer to do some ASP.NET work. I jumped on the opportunity, and I was finally feeling busy. In fact, it was around this time that more work started coming in, even from my old St. Louis contacts. A year after going full-time I had more work than I could handle.
I had so much work coming in that I started hiring freelancers to help out. Unfortunately this didn’t free up as much of my time as I had hoped. I was becoming a manager, and that wasn’t something I wanted to do. One of the things that excited me about having my own company was being a code monkey. Past employers wanted me to move up the corporate ladder, managing and leading others instead of coding. It was because of my coding skills and ability to deliver quality software that my past bosses thought I should play a bigger role. But they were clueless about the fact that what I love most is slinging code.
I hired freelancers to handle the growing demand for project work, but I found myself doing exactly what past bosses were doing with me. I was moving myself into a higher role, managing other developers and doing business development work to land new business deals. This wasn’t what I wanted to do with my company, but at the same time I didn’t know exactly what I wanted to do. All I knew was I needed to make money if I was going to continue being self-employed.
It was around this time that I hired a good friend of mine, Brian Harp. I hired Brian to be my small business coach, and each week for three months we met and talked about what I needed to do with my business. It was like going to therapy sessions but for my business. In the end, Brian helped me realize that what I needed to do was turn White Peak Software into a product company. It would be a small company, a company of one, focused on making and selling software products. Back then (and still today), those in the Microsoft world called this type of company a Micro-ISV, but I preferred the Mac community term of indie developer.
The term “indie developer” resonated with me. It conjured up thoughts of indie musicians, artists, and movie directors, people who are independent, people who pursue a love, a passion instead of focusing on making tons of money. Even to this day, I would rather do what I love than have infinite amounts of cash. Sure, having tons of cash makes it easier to do what you love, and most people think they have to pursue and acquire that large amount of cash before doing what they love. But I believe differently and I follow a different path. I’d rather do what I love today and be broke than to do what I hate just to make money so that hopefully, some day in the future, I might be able to do what I love.
My sessions with Brian made it clear to me what I wanted out of White Peak Software. I want to do what I love, which is to write code and build software that I care about. Also I want to make enough money to pay the bills by selling my own software. So in the summer of 2005 I released my first software product, SMTP Diagnostics.
SMTP Diagnostics was a tool I had written for myself to test email connections between web services and mail hosts. I found that often times while working in the corporate world, the web server didn’t have access to mail server, and yet, the web applications I worked on needed to send emails. And often times the IT infrastructure guy responsible for configuring the server, firewall, and so on would forget about email. So I wrote this little tool to test the connectivity between the web and mail servers. I would then report my findings back to the Mr. IT Infrastructure Guy proving the two servers were not in communicating with each other.
I enhanced and polished SMTP Diagnostics, then I released it into the wild. I didn’t really expect a lot of people to buy it. Instead I used the app as an opportunity to learn what is needed to sell software online. I learned how to implement trial periods, licensing keys, hosting an online shopping cart, payment processing, and most importantly handling customer support. To my surprise people did buy SMTP Diagnostics though not a lot. Still I deemed the app a success because I learned what I needed to take on a bigger product.
With my first product out the door and people buying it, it was time to start work on my second app. At the same time contract work and the cash that comes with it distracted me. It would be almost two years later before I shipped my second product.
Killink CSV Editor was released in March 2007. My dev friends made fun of me, and still do, for releasing a CSV editor. We dev types think of CSV as being an out of date file format. JSON and XML are where it’s at. But the truth is, many large corporations including banks, hospitals, and online marketing companies use CSV files every day, and the people who deal with CSV files need a better way to edit their files. Killink CSV Editor was a great success, and it has been White Peak Software’s flag ship product since 2007.
With the excitement of Killink CSV Editor I decided to make a key decision about the future of White Peak Software. I told myself that if I hit a certain financial goal by the end of June 2007, I will stop providing consulting services for the rest of the year with the goal of focusing on improving Killink CSV Editor and starting work on my third product. If I missed my financial goal, then my plan would be to provide consulting services full time for 6 months to raise cash. This cash would allow me to focus on product development throughout 2008 without needing to do any consulting.
Unfortunately I missed my financial goal by a couple of thousands of dollars. Because I missed my financial goal I accepted a full-time consulting gig that would have me splitting my time between New York City and Bermuda. Not a bad gig, and it paid well.
A week after accepting the gig I found out my wife was pregnant. Within a couple of months the nesting feelings started to take effect on my wife and me. Long story short, I ended the gig early and instead of using the cash to invest in my business we bought a house in Salem, Massachusetts.
To this day, I have mixed emotions about buying the house. We bought it in December 2007 just as the market was crashing. It was not a good time to buy, but at the same time, I felt it might be the last time an indie developer could get a “no-doc” loan. By the way, the name no-doc isn’t a fitting name because I had to provide hundreds of pages of documentation including statements from my accountant explaining my income, where the money for the down payment was coming from, and how we would be able to make monthly payments. Needless to say, it was a very stressful time.
By December 2007 I owned a house, had zero cash because we spent it all as the down payment on the house, and I had left a great consulting gig. Oh, and we had a baby coming. On top of this I took 6 weeks off from work to get the house ready for us to move into.
We finally moved into our house at the end of January 2008, and with the kid due in 2 months I decided to avoid any long term client projects. Because of the extended time off, I let the pipeline of work dry up. Between leaving the gig early and focusing all my time and energy on preparing the house, I put myself into a situation where I had no potential client work and the only income I was earning was from my software product. It would seem I was living the dream, but unfortunately my two apps were not making enough money for us to live on.
It was around this time, March 2008 to be exact, that I learned about the iPhone SDK beta. I had made the move to the Mac in 2007, and I was planning to release a Mac version of my CSV editor. A neighbor of mine was a Apple fanboy who was super excited about the potential opportunity with the App Store. I wasn’t doing any client work at the time, and my son Rowan had just been born. I thought it was the perfect time to partner with my neighbor and get an app into the App Store just in time for the store’s launch.
After a couple of months it was clear to me the partnership wasn’t working out. My neighbor wasn’t doing anything to help build our app. I was doing all the work while he day dreamed about us making tons of money. I decided it was time to step away from our project, but there wasn’t enough time remaining for me to create my own app before launch day of the App Store, so I returned to consulting.
In August 2008, I won an iPod touch as a door prize for the second ever Build Guild. Up until this time I didn’t own an iPhone or an iPod touch. I relied on the iPhone Simulator and my neighbor’s iPhone for testing. But ending our partnership meant I had no test device. I felt winning the prize was a sign that I needed to revisit the iPhone SDK, and in October 2008 I released my first iPhone app, Labor Mate.
Labor Mate is a contraction timer for pregnant women. The first version, which was never submitted to Apple, took me a weekend to write. That was enough time to realize I needed to make the app real. Plus, the app was the perfect small app for me to work on since the whole experience with having a kid was still fresh in my mind.
The goals for Labor Mate were similar to SMTP Diagnostics, to learn the ins and outs of the App Store. I didn’t expect it to sell. But to my surprise, people did buy it. In fact, this 99 cent app started making more money per month than the CSV editor. Ah, the good ole days of the App Store…
It was around this time I decided I needed to refocus on my goal of turning White Peak Software into a product company. I set a company goal of releasing a new product each year. My thinking was to offer 5 to 7 apps total with hopes of having at least 4 of them bring in between $700 to $1500 per month in net revenue. This would put me well beyond the financial goal I set back in 2007, and once I met that goal I could stop consulting. However, I had a problem. I still didn’t feel comfortable with Cocoa, Objective-C, and the iPhone SDK. And without the necessary knowledge, I knew it would take me a lot of time to write those additional apps.
I decided what I needed was to work with Objective-C full time, and given that I worked for myself I knew I could make that call. At this time I had a good set of repeat clients for consulting gigs. Sure, there were times I would let the pipeline dry up, but I could get it flowing again in a short amount of time thanks to these repeat clients. The consulting work I did centered around web development with .NET, and writing C# code wasn’t helping me advance my Objective-C and Cocoa knowledge. So in January 2009 I “fired” all clients so I could focus on Mac and iPhone development full time.
I didn’t exactly fire them, but I told all my clients that I would be transitioning from web development to mobile development targeting the iPhone. If they had a need for a mobile (or Mac) app, then I was their guy. But if they did not have a need, then I would help them find a replacement. Unfortunately none of my clients were interested in mobile development at that time. (Side note, that has since changed and I have built iOS apps for some of them in recent years.)
In many ways, my decision to focus on mobile development meant I was starting over with my company. My goal was to write and sell my own apps, but I also had to pay the bills. We owned a house and had a kid. I couldn’t just live on pennies eating nothing more than ramen noodles every day. So I used my consulting skills and started looking for work as an iPhone developer.
Similar to when I started working for White Peak Software full time in August 2004, I went nearly 6 months before I started making money as an app developer. The game changer for me was 360idev. The people I met and the connections I made at my first 360, as well as at other 360idev conferences, made it possible for me to make a living as an app developer.
By 2010 I had released a number of apps into the App Store. Granted these apps were for clients, but still, I was writing apps and loving it. I was also getting more involved in the Mac and iOS developer communities. I not only attended more conferences, such as NSConference and WWDC, I started speaking at conferences. I also got involved with the local Boston CocoaHeads, and eventually I started my own monthly gathering of Mac and iOS developers in Salem called NSHappyHour. My career was booming, so much so that I was approached to write a book for Addison Wesley on learning iPad programming. I also released White Peak Software’s third app, Hey Peanut, which was a photo app for toddlers (and a total flop).
The original hope for the book was to have it completed in 6 months. I viewed it as another product, and I felt it fit into my goal of having 5 to 7 products. Friends and family, including my wife, suggested I not pursue the book idea. But writing a tech book was a goal of mine, it had been for years. Even back in 2005 I had typed up an outline for a programming how-to book, but I never got around to submitting the proposal to publishers. Here was an opportunity for me to write a book, and the publisher had approached me. I saw this as a once in a life time opportunity with a well respected publisher. How could I say no?
I was thrilled about writing the book, but it turned out I had no clue what I was doing. I knew how to write software and more specifically I knew the iOS SDK — by this time Apple renamed iPhone SDK to iOS SDK — inside and out, but I didn’t know a damn thing about writing a book. I got a couple of chapters out quickly then I hit a block. I’ll save the details of my writing experience for another time, but suffice to say, I didn’t finish the book in 6 months. Instead it took me 18 months.
Riding the buzz of finishing the book, I agreed to do a video training session based on the book, which was released a few months after the book. Woohoo! Another product in my mind. I then started thinking about the second edition of the book. In all, I devoted two and half years to Learning iPad Programming.
The time spent on the book wasn’t a full-time gig. There were small periods of time when I did consulting work to help pay the bills, and I had a couple of really good years selling my software products. While it seemed like I was living the dream, I made one critical mistake. I was ignoring White Peak Software.
In December 2012, I finished the manuscript for the second edition of the book. It was finally time to return my focus on White Peak Software. And so here we are, the year 2013.
2013 has been a rough year, and I’m paying the price for ignoring White Peak Software while working on the both editions of the book. App sells are way down, and even the second edition of the book isn’t selling well. I’ve had some success this year with client work, but over all this year hasn’t gone as planned. Not only that, I’ve lost the momentum, and product revenue, that grew each year up through 2011.
I decided 2013 would be a reboot year for White Peak Software. It’s my third time starting over. I retired two apps at the first of the year. This action might seem sad, but it wasn’t. In fact it felt good to say bye to those apps, and it lifted a mental burden from my shoulders. Also this summer I started work on a new app, but I realized it will take me a lot of time to finish the app given its size.
Deciding I needed a quick win and a motivational boost, I wrote and released Big Screen a couple of weeks ago. I don’t know if Big Screen will be a hit or a dud, but it doesn’t matter. My goal with this app was to get me back into the “ship it” mindset and to remind me how great it feels to create and release my own app. Just the simple act of shipping Big Screen had already made it a success for me.
So that’s the 10 year history of White Peak Software. Things haven’t gone quite as planned, and there are times when I thought of calling it quits. But looking back I see I’m happier than ever working for White Peak Software. It’s been an amazing 10 years, and I’m looking forward to another 10 years.
Before I go, I would like to share a few key things I have learned over the last 10 years in hopes that it will help others succeed at being an independent software developer.
Don’t give up. There are going to be some hard times, and giving up will seem like the easy way out. Giving up is easy to do and very tempting, but as Kevin Hoctor recently said on ADN, “The only true failure is giving up.”
Learn from your mistakes. You’re going to make mistakes, and you’re going to have setbacks. But without them you will never learn. You learned to walk by first falling, and you’ll learn to succeed by making mistakes and having setbacks.
Seek feedback, advice, and opinions from others, but make your own decisions. I have found seeking the advice from other indie developers, business owners, and entrepreneurs helps me see all points of view. But at the end of the day, it’s up to me to make the decisions. If I always listened to and followed the advice from others, then I would have never created apps like Killink CSV Editor and Labor Mate. Listen to what others have to say, but make the decisions you feel are right for you.
Take chances. My second passion in life is snowboarding. One of the things I’ve learned from snowboarding is to push myself beyond my comfort zone. If I never pushed myself, I would never have discovered the joys of snowboarding. Likewise, if I didn’t take chances, if I didn’t push myself beyond my comfort zone, I would not be sitting here writing about the 10th anniversary of White Peak Software.
You never know if your app will be a hit or not. This is also true for your business or whatever else it is you want to pursue. You just don’t know what will work and what will fail. But I can guarantee you instant failure if you never take a chance and try. You’ll never know if you can write a hit app if you never take the chance to write the app. You’ll never know if you can survive as an indie developer or business owner, if you never take the chance to work for yourself. Take chances and push yourself beyond your comfort zone. The worse can happen is you fail, but that’s a good thing because we learn from our failures. Taking chances and pushing yourself out of your comfort zone will make you that much better in whatever you pursue.
Define what success means to you, and don’t be swayed by others telling you their definition of success. Success means different things to different people, and one person’s definition of success might not align with your definition. For some, success means making a ton of money. For others, it is spending quality time with family. What does success mean to you?
You may have picked up on the fact that I define what success means for each of my apps and the definition isn’t necessarily the same for each app. Success doesn’t have to mean millions of downloads or thousands of dollars earned. Success can be based on what you learned, experience or how the experience motivates you to do more.
My definition for success with White Peak Software is to live the life I want here and now, today, and not wait for some future time after I have, quote un-quote, retired. Sure, I’m not where I thought I would be with White Peak Software after 10 years and we’re definitely not living on Easy Street with regard to our finances, but the last 10 years have still been successful. This year, for example, is the year my family and I moved to a ski town, which has been a goal of ours for years. The likelihood of this happening would have been much less if I hadn’t taken the chance of starting White Peak Software 10 years ago.
White Peak Software has been successful in helping me reach my goals in life, and it will continue to help me reach new goals…hopefully for at least another 10 years if not longer.
Happy anniversary, White Peak Software.