Annoucing Classic Computer Science Problems in Swift

I am pleased to announce the availability of my second book, Classic Computer Science Problems in Swift. Starting today, you can purchase early access to the book from Manning (use promo code mlkopec for 50% off through June 27th). I have completed drafts of the first six of eight chapters; three of which are available today from Manning, with the next three to follow over the summer. The final version of the book will arrive in Fall 2017, shortly after the release of Swift 4.

Classic Computer Science Problems in Swift is a great “second book on Swift.” It is aimed at those with some basic knowledge of Swift’s syntax who want to delve deeper into the covered problem solving techniques, brush up on core algorithms, or learn more Swift using problems familiar to them from other languages. It is suitable for professionals looking to deepen their understanding of the covered topics, students with some programming background looking to expand their computer science knowledge, and anyone preparing for coding interviews.

What is a “Classic Computer Science Problem?” It is a problem one typically finds in an undergraduate computer science curriculum. The topics covered in the book span the gamut from core computer science algorithms you would find in a data structures & algorithms class to artificial intelligence and its sub-discipline machine learning. There are both practical and whimsical problems. They include classic search problems, constraint satisfaction problems, graph algorithms, genetic algorithms, k-means clustering, simple neural networks, and more!

The book is not your typical app development book. You will not find any UIKit, App Kit, or full blown apps. Instead, you will be learning problem solving techniques (in Swift) that will make your apps more powerful, more efficient, and more featureful. All of the code in the book is Linux friendly (server-side Swift friendly) and available for easy perusal via a Playground on GitHub.

To learn more, checkout the Classic Computer Science Problems in Swift page on Manning’s website where you will find a full table of contents and free access to the Introduction and Chapter 2 (Search Problems). If the table of contents looks appealing to you, dive in with promo code mlkopec which will give you 50% off through June 27th!

Remember that you are purchasing a pre-release version of the book, so you will be joining me on the journey to its final release in the fall. You will be receiving rough drafts of chapters before they have been fully developed. I encourage you to send me your feedback, but keep-in mind that these are early days and everything is not yet perfect. You will receive the final version of the book upon publication.

Posted in , , , , , , | 2 Comments

Five Months on the Apple TV App Store

Apple launched the fourth generation Apple TV on October 29th, 2015. That was also the first day of the Apple TV App Store and the first day that my tvOS app, Chess TV!, was available. Chess TV! is an app that I created as a side-project in about 30 hours of my time after receiving a free Apple TV dev kit from Apple prior to the official launch of the device. I have been pleasantly surprised by its sales. This is the story of its first five months.

Building Chess TV!

I have quite a bit of experience with chess programming. I studied chess AI as my culminating experience in graduate school and I have developed prior chess apps as well as the main (only?) chess programming library for the Dart programming language. Yet, I felt there was no reason to reinvent the wheel. My goal was to create a great big screen chess playing experience, not to create a cutting edge AI.

To that end I searched through the repositories of the many open source chess engines. All of them (even the weak ones) are strong enough to be competitive for all but the most elite players. My criteria instead was:

  • Will this engine be easy to integrate with my code?
  • Is this engine well documented (or its source easy to understand enough), so that I will have no problem utilizing its public interface to implement features I want like undo/redo, algebraic move output, etc.?
Surprisingly, many of the popular engines are so concerned with performance that things like ease of integration and documentation take a backseat. I ultimately settled on integrating Mister Queen by Michael Fogleman. Mister Queen is not a well known engine by any means, but in my testing using The Bratko-Kopec Test it scored a 13/24 when provided 8 seconds per position (12 at 4 seconds and still 13 at 16 seconds) which indicates it’s about expert strength (ELO ~2000, stronger than 99+% of users).

Mister Queen is written in clear, concise, C. For a one-man project, as with most of Michael Fogleman’s projects, it’s surprising for its completeness and depth. I think I made a great choice, as it’s been a joy to integrate and has provided several features off-the-shelf (like built-in testing positions (more about that later)) that I would have otherwise needed to write myself. I do not regret at all choosing Mister Queen over the more popular alternatives. Sometimes in programming software, just as in using it, ease-of-use trumps all else.

Because Mister Queen is written in C, I chose to use Objective-C, instead of Swift, in writing Chess TV!. Although Swift has good support for C, it can’t beat Objective-C on that front! Working with UIKit on tvOS is almost identical to working with it on iOS. The main difference is thinking about focus (what UI element is currently selected by the Apple TV’s trackpad like remote). Once I had implemented a chess board using custom UIViews for each square with intelligent focusing behavior, I chose to use off-the-shelf widgets for the rest of the interface. The result is a UI that looks plain and no-nonsense, but also fits well with the rest of tvOS.

I’ve noticed a lot of bugs in other apps with regards to how the remote’s menu button operates. Misbehavior in this regard can even lead to rejections by app review. By using a standard tab bar controller, I’ve managed to avoid this.

I wanted Chess TV! to be more than just a chess playing app. Conveniently, Mister Queen is bundled with ~400 famous chess puzzles (positions where you choose the best move) from famous chess books (you cannot copyright a chess position - that was settled in the legal system). So, I built Chess TV! so that in addition to its playing mode it also has a puzzle mode, something none of its competitors have…

Competition

When the app store launched, Chess TV! was the only chess app on the store. By the second day of the store a competitor, also priced at $0.99, appeared. We dueled it out for chess app supremacy. Because there were so few apps on the store at the time, throughout November it was not unusual to find both apps in the top paid apps list.

In the last couple of months two free competitors have also appeared on the store as well as two apps related to chess (a chess clock and a chess watching app). For whatever reason, the two free apps do not seem to have diminished my sales. I have done zero marketing of Chess TV!. I think it may be that users are trying out the other apps and then deciding they want something more substantial. It’s possible that my higher price point (see next section) has actually signalled to the market place that Chess TV! is a premium product. If that theory is true, then the marketing efforts of the free competitors may actually be boosting Chess TV! sales.

I will say that I think Chess TV! is the most featureful (especially considering the puzzles) tvOS chess app. There are a couple features (3D, saving and resuming games) that other apps have that Chess TV! does not. Since launch, I have added features like support for background music, board flipping, and alternative board patterns based on feedback from users and the inclusion of these in competitors’ apps. I have also added Spanish localization, but it’s unclear how much this has boosted sales.

Pricing & Sales

Chess TV! launched at $0.99 cents and sat there for several months. I have experimented with prices ranging from $2.99 to $4.99. I tried each price out for about a week and compared sales to the prior week. Eventually I settled at $3.99, not based on much science other than these weekly examinations. I’m not sure it’s the ideal price, but I do think the signalling of Chess TV! as a premium product has helped it. Units are of course down from the $0.99 price point, but sales (in dollars) are actually stable or up.

Sales average $150-$200/month (before Apple’s cut). It’s not going to make me rich, but if these sales continue for the rest of the year (a big if), then for something I did as a hobby in about 30–40 hours of time (including updates, excluding me thinking about it, talking about it, and checking up on it) I would consider the sales more than satisfactory. They’re certainly higher than I expected, especially considering I’ve done zero marketing.

The tvOS App Store Needs Work

One reason I’ve done zero marketing is that as of now, there’s no way to link to a tvOS only app’s store page (or purchase an app for that matter) from any other device. That’s right, unlike iOS apps which you can link to the store page of in a web browser and purchase through iTunes, there’s no equivalent for tvOS only apps. This is a huge problem. What do you link to (for people to purchase from) on a marketing page? I have a simple page for Chess TV! that I don’t send to anyone since it doesn’t have real links.

I’ve brought up this issue with Apple developer relations and also at the Apple TV Tech Talk in NYC. Apple seemed sympathetic to the issue, but it’s been five months and there’s been no resolution. It’s a major sore point for anyone who wants to develop and market a tvOS only app.

When the tvOS app store launched in October it definitely was not ready for prime time. It didn’t even have categories! Now it has some rudimentary categories, but still not subcategories. This is despite the fact that we are able to select a subcategory for our tvOS apps when we submit them. Perhaps Apple is embarassed by the lack of apps that would appear in some of these subcategories. It definitely hurts Chess TV! which would likely dominate the board game subcategory if the subcategory was browsable by users.

Apple has never featured Chess TV!, which I understand since it’s not graphically impressive nor does it utilize any of the unique features of the Apple TV. The least they could do for us lowly chess developers would be to give us store page links and subcategories.

Summary

In building Chess TV! I was able to leverage a great open source chess engine, Apple’s free dev kit (to get a jump on the competition), and my UIKit skills from iOS, to build an app in a relatively short amount of time that resonates with more users than I expected. Thanks must go to Apple, Michael Fogleman, and all of the early adopters who took a chance on Chess TV!. Yet, the tvOS app store needs some tweaks before it will be truly developer friendly.

Posted in , , , , , , , , , , , | Leave a comment

Three Options for App Owners Facing the End of Parse

I originally wrote this post for Crew’s Backstage blog and it originally appeared there on March 1, 2016. Special thanks to Jory Mackay for his many superb edits and improvements. Note that the original audience is non-technical app owners. I have made a few minor edits from the original post here.
If you’re one of the 500,000+ app owners that use Parse—the most popular mobile backend-as-a-service (BaaS)—to power your app, January 28th was a particularly bad day. After half a decade providing app developers with flexible data storage, and everything from user authentication to push notifications, the team behind Parse announced they’d be shutting down their services.

Which should’ve come as a surprise. Since Facebook acquired Parse in 2013, they have only provided positive indications about their commitment to Parse. If you have an app developed using a Parse backend, it’s time you started looking for an alternative.

First off, it needs to be stated plainly that this most likely won’t be a quick and easy fix. The backend is a major component of your app. In many cases, the backend and the code that connects to the backend can make up as much as 50% of your app, especially if your app is a social network, messaging app, or other app centered on storing large amounts of user created data.

Changing backends is obviously a big endeavor. Luckily, you have both time and options. Parse has provided a one year window (until January 28th, 2017) in which its services will continue to operate. If you feel that your app has not yet gained enough traction to warrant a partial rewrite, consider taking a wait-and-see approach. You could wait until the late Spring/Summer with the existing backend and then begin the rewrite if your app has taken off. But keep in mind that the longer you wait, the more dangerous your situation becomes (software development is a fickle business).

So, if it’s time to move, what are your best options?

Option 1: Open Source Parse Server (or the Path of Least Resistance)

Despite shutting Parse down, Facebook has graciously open sourced a large amount of its technology. This will allow you to run your own ‘mini-Parse’ on your own hardware or your own virtualized server (through AWS, Heroku, Azure, Linode, Digital Ocean, etc…).

Unfortunately, it’s not as feature rich as Parse was/is, and of course it comes with no formal support contract. You’ll also have to maintain your own server or virtualized server, which is more than some developers/clients want to do.

But, ultimately, this option will entail the least development work/code changes.

Pros:
  • Free
  • Complete control of your own destiny
  • Fewest code changes

Cons:
  • No formal support
  • Have to maintain your own server or virtualized environment
  • Still missing some features other BaaS providers have

Option 2: Switch to Another Established BaaS Provider (CloudKit & Firebase)

Apple provides a comprehensive BaaS known as CloudKit. It offers many of the same services that Parse offered and its resource limits are very similar to Parse.

CloudKit backs Apple’s own services like iCloud Drive and iCloud Photo Library, so you know the infrastructure is industrial strength and unlikely to go away in the near future. There are ample tutorials and book chapters to help developers get up to speed on it.

But, there is a catch. CloudKit has no native SDK for Android (or Windows, Linux, etc…). While the recently introduced webhooks may allow you to cobble together a cross-platform solution, CloudKit is clearly designed only for iOS, Mac, and Web apps (an official JavaScript SDK does exist). If your app is only on these platforms then it may make a lot of sense.

Firebase, acquired by Google in 2014, is perhaps the BaaS most similar to Parse. Like Parse it’s backed by a big company with a great reputation in the field of big data, is feature rich, and works cross-platform.

Firebase offers realtime capabilities that make it ideal for messaging apps and also offers clearly tiered pricing that makes sense for most startups. Firebase is relatively popular and there are many more tutorials available surrounding it than some of the lesser known BaaS providers, so it is likely one of the easier options for a developer to get up to speed on. However, some developers dislike Firebase’s API.

Pros:
  • Free for apps with a small userbase
  • Backed by Apple or Google
  • Feature rich
  • Well documented
  • Realtime messaging support (Firebase)

Cons:
  • iOS/Mac/Web only (CloudKit)
  • No built-in support for push notifications (Firebase)
  • At the mercy of another tech giant (like Parse was to Facebook)

Option 3: Roll Your Own Backend

Writing a custom backend can be as daunting a task as writing a mobile app, depending on the complexity of that backend. There are a myriad of frameworks, languages, servers, and development environments to choose from. If your developer does not have previous experience writing a backend, it’s likely to be a laborious, error-prone task.

However, it’s also the only path that puts you completely in control of your own destiny (even beyond the open source Parse Server).

Your custom backend is built specifically for your app. It can include whatever features you need and you can scale it however suits your growth. However, it also means maintaining your own servers. You can somewhat get a jumpstart by utilizing cloud data stores provided by services like Azure, AWS, and Google Cloud Platform.

Pros:
  • Complete control of your app’s destiny
  • Customized for the features your app needs
  • Cheaper to scale
  • Can use cloud data stores from AWS, Azure, and Google

Cons:
  • Unsupported by a big company (no Apple or Google backing your server code)
  • Have to maintain your own servers or virtualized environments
  • Highest development cost
  • Longest development time

So what’s the best option?

Choosing what direction to take your Parse-powered app is ultimately both a technical and a business decision. Utilizing Parse’s open source solution will be the least costly in terms of both programmatic effort and maintenance costs. Porting your app to CloudKit, Firebase, or a lesser-known BaaS Provider will be costly and time consuming but will provide you with comprehensive support and eliminate the need to maintain your own server. Finally, building your own custom backend provides the ultimate in control but also will be the most costly and time consuming to develop.

If none of these sound right for you, there are a myriad of lesser known BaaS providers like Kii, Kinvey, FatFractal, and many more out there. The risk, however, is that you build against one of them and then they cease to exist. Using one of these options may make sense for an MVP but is unlikely to make sense for something you expect to scale.

You must consider the development work involved, platform needs, pricing, and your timeline. As well as the future of the platform that you’re building upon.

No option is perfect, but continuing with Parse Server on your own server probably makes sense as the path of least resistance for most apps. If you’re interested in porting your app from Parse, get in touch with me.

Posted in , , , , , , , , , | Leave a comment

The Real Estate Market does not Reflect Global Warming

Whether or not you believe the phenomenon of global warming* is man-made, there's no doubt the Earth has been getting warmer over the past century. Naturally, a warmer Earth leads to melting ice which as a consequence creates higher sea levels. The only point of contention is how fast sea levels will rise. There are many models.

The most extreme of these models expect major devastation in rich and highly populated areas in the United States like Miami by as soon as 2050. Yet Miami seems almost oblivious to the threat. The real estate market in Miami continues to boom.

How can respected scientists' prediction that an area will be under water not change the value of its real estate? There are three possibilities:

  • The players in the market do not believe in sea level rise/global warming.
  • The chronologic window for the devastation is still too great to affect prices. Perhaps when predicted calamity is within the window of a 30 year mortgage, banks will think twice.
  • Market actors do believe in sea level rise, but act irrationally through some sort of group think.

Markets are not always great predictors of long term trends.

*I use the term "global warming" because I feel "climate change" is a kind of doublespeak. Global warming describes the Earth on average getting warmer, whilst the now more politically correct climate change can be deemed an accurate prediction regardless of what happens to the Earth's average global temperature. Yes I understand its defense is that global warming will not be a universal trend - some areas will get colder. I still think of it as doublespeak though.

Posted in , , , , , , , | 1 Comment

American Customer Service Downfall

I'm not an expert on customer service. On some level, though, we're all experts on customer service because we all interact with hundreds of different service workers in our regular day-to-day errands. Anecdotally, I believe customer service generally used to be better here in the States. When I was growing up, I feel like service with a smile was the norm, not the exception.

I worked retail at music & movie chain Sam Goody when I was 17 for 7 months for $6/hour (I got a raise to $6.24 near the end). As soon as the holiday season started and I needed to quit for tennis season anyway, I did. Even though Sam Goody's prices were a rip off and the management sucked, the floor people there genuinely cared about the customer experience. Everyone worked hard to make customers happy and "the customer is always right" was nearly true.

I've had an incredibly bad customer service experience amongst six different organizations during the past 24 hours. Again these are just anecdotes, but I believe them to be part of a larger pattern. It all started when I decided I need a new Windows PC. Most of my work is on the Mac, but I have a little bit that crosses over onto Windows. TigerDirect was having an incredible Black Friday sale on DIY bundles, so I purchased one that included the AMD A10-7870K APU.

The shipment email (as you can see in this screenshot)
shows I ordered a bundle with the A10-7870K a part worth about ~$130. The shipment arrived yesterday by UPS with the wrong microprocessor (A8-7670K instead). It turns out the email for the shipment already showed them sending me a different CPU .
What's nefarious is not the mistake, but that TigerDirect changed the bundle (without changing the bundle's item number) and then shipped me the new bundle, even though my order email proves I bought the original bundle. The customer service agent that I waited 65 minutes on the phone to talk to (TigerDirect does not accept returns by chat/email for this part) acknowledged the mistake. The entire conversation was 98 minutes.

She acknowledged that they changed the bundle after I had already ordered. It's a true bait-and-switch! They said they had no more A10-7870K's in stock and wouldn't for a while. So they offered me to send it back and they would refund me for the cost of the A8. The A8 is $25 cheaper and that's not what I paid for! $25 is not going to make or break me, but it's the principle. I contacted Google Trusted Stores and someone higher up at TigerDirect is supposedly going to contact me according to the original customer service rep. I'm not holding my breath.

So to go with this new computer I also ordered several items from Amazon. USPS claims they were delivered yesterday at 6:49 PM (strange because that's after when the mail comes). I told Amazon they haven't been delivered even though USPS has marked them as delivered and they told me to wait a couple more days. So when they say "Thursday delivery guaranteed" they don't mean it.

I went to the UPS Store today to ship back the A8 to TigerDirect. The first customer service rep barked at me "need a receipt"? But I couldn't understand what he was saying. When I  asked for clarification, he didn't reply. The second scanned it in and seemed friendly enough, but as I was leaving I distinctly heard him toss my A8 package across the room.

I then went to the Apple Store to return an item. There are no lines at the Apple Store, you just walk up to someone and ask for help. I asked someone who turned out to be a manager and he found the most disinterested employee you can imagine. The guy was playing on his phone and the manager actually had to chastise him for being spaced out. The guy hardly communicated with me/made eye contact as he returned my item.

I went to T-Mobile on the way out of the mall to change a cell phone plan. Not only did the service representative assume I wasn't a T-Mobile customer, he also told me their cheapest plan for my configuration was $120 (he was hoping to up-sell me it seems), and I had to correct him that it was indeed $90, but he also then acted almost with disdain that I was bothering him to do this switch for me. Then he espoused more misinformation about the plan I had switched to not including Binge-On, even though it does, to again try to up-sell me to a higher priced plan.

I went to MicroCenter to get the right A10 APU. I went to the notoriously commission driven "Build Your Own PC" center. I was obviously lost looking for their poorly marked "processors" section. Nobody came to my aid. Maybe I don't look like the typical nerd, or maybe they were all too busy chatting and on their cell phones. I found a guy and asked him for help. I think he was on his cell phone too. He told me to wait for him at a glass case he pointed in the direction of. I waited quite a bit even though he didn't seem to be helping any other customer. Then he walked with me to the checkout (security procedure there for high price items) and took another call on his cell phone.

I understand being a service worker in retail is a low-paid job with few benefits. But having these kind of experiences is certainly another incentive to shop online. The TigerDirect bait-and-switch, changing the components of the bundle after I had already ordered and paid, is completely unacceptable. That they further refused to refund me for the value of the original item is so ridiculous it's hard to believe. If this post got at least one person to not shop there, that's justice.

Posted in , , , , , , , , , , , , | Leave a comment

Open Source Plagiarism

It seems the world cares less and less about intellectual property rights. Many people don't blink when mention of stealing music and movies comes up in conversation - an action that was taboo just a decade ago when the newspapers still covered music industry lawsuits against individuals. Today, students download PDFs of textbooks with nary a worry. And many of them don't even see such practice as dishonest. How does this attitude apply to open source software?

I care about intellectual property rights, because I think they help the world economy by encouraging the pursuit of art and innovation (I'm a little biased as an author and software developer). I think some of those rights go too far (excessively long copyright terms, patentable genetics, etc). But what we can all agree on is that there's a line to be drawn between taking someone else's work, and claiming someone else's work as your own. Where is that line in open source software?

Students who have grown up in this permissive, anti-intellectual property rights era not only don't care about the rights themselves, they don't care about that line either. Plagiarism is a rampant plague in the school system. I am very disappointed to see this disease of dishonesty infecting the open source world as well.

By its nature, open source software has a unique relationship with intellectual property rights. Whether it's the battle between copyleft (GPL) and permissive (BSD/MIT) style licenses, or concerns about corporations leveraging the work of individuals without contributing back to their respective projects, there are interesting and legitimate issues to debate. One thing that's not up for debate in most circles is that it's dishonest and disingenuous to take someone else's project, modify it slightly, and call it your own.

Technically, that's a derivative work. But spiritually, there is a line between a truly new project and a rip-off of the original. And you know it when you see it. Further, regardless of whether or not a project crosses that line, it must (by the terms of most open source licenses) acknowledge the original work/author.

I was very disappointed to see the appearance of RunKit on GitHub (Update: GitHub has now removed the repository due to a DMCA takedown notice by @duemunk) a Swift project by @khoiln. RunKit is a rip-off of Async by @duemunk. The first version of RunKit posted to GitHub didn't even acknowledge Async or @duemunk despite the entire project being a line-for-line copy of Async with a few name changes, comments removed, and very slight data structure changes (I inspected the two myself side-by-side). Despite this rip-off, @khoiln marketed RunKit with a banner image, a rewritten README and postings to public places.

Developers noticed this disingenuousness and posted issues on GitHub specifically calling out the plagiarism of Async (with no acknowledgement). @khoiln closed the issues. Then @duemunk himself opened an issue on RunKit specifically highlighting the MIT license's requirement that @khoiln acknowledge him and Async. He subsequently did. He went on to claim that he "...created this for internal projects since Async keyword is being used in our other framework." (Update: this quote was removed shortly after this blog post was published). That makes no sense - why then publish it publicly with a banner graphic and rewritten README? Why close the earlier issues? Now @khoiln has closed the project to issues on GitHub all together (yet RunKit continues to trend on GitHub).

Writing most open source software is not glamorous. One of the few things open source authors get is acknowledgement of their authorship (for resume, glory, or reputation purposes). It's sad to see even that challenged by plagiarism. One can imagine a very realistic scenario, where a developer writes an open source project, it gets little notice, and then another rips it off, gets a lot of notice, and lands a job based upon it.

Ultimately, unless you're a lawyer or a big corporation that can hire one, there's very little one can do against the limits of monetary resources and across borders to enforce an open source license. Yet, it would be nice if in the world of open source, we as a community enforced an honor code. I don't know how to instill such an honor code into young developers. I fear given their generation's widespread anti-intellectual property attitude, it may already be too late.

Addendum: For an example of this in a big company setting - checkout this GitHub issue in which Microsoft is called out for stripping the MIT license/acknowledgement from several files in their first release of WinObjC.

Posted in , , , , , , , , , , | 7 Comments

Starting a Podcast

Over the summer, I started the podcast Consult. It mainly consists of interviews I conduct with fellow consultants on Apple platforms (those that build apps for others on a contract basis). I've loved podcasts since they first came on the scene a decade ago. I very much wanted to do my own show. Consult is about a niche that A) I know about and B) was not covered by an existing podcast. It's also a great bit of professional development for me (both meeting other iOS/Mac consultants and learning about their businesses).

As a new podcaster, I'm still learning the ropes, but frankly podcasting is pretty straightforward: You need to record good content applicable to your audience at decent sound quality and do so regularly. I originally was ambitious and thought the podcast would be bi-weekly, but now at episode 5, it's turned out to be a monthly schedule.

On the sound quality front, I did struggle at first, even though I've invested in good software and have a great microphone. Manton Reece (my guest on episode 3) gave me a great tip in the form of recommending The Levelator. This abandoned (but still functioning through a hack) program has been a lifesaver for a non-audiophile like me with regards to automatically adjusting episode volume to make it consistent throughout.

How much of an investment has Consult been? Roughly ~$200:


All of these tools make life a lot easier. There are free alternatives, but I find these costs very reasonable, the products better than the free alternatives, and I get support if I need it. I got a high quality free-standing (Larry King style) microphone for free as part of an instructional video series I did before. That would run another $100 I believe.

So how has the reception been? The feedback I've received has been really great. A few people I don't know have reached out to me on Twitter and email to tell me how much they enjoy the show. The majority of listeners are using Overcast (which makes sense given the community), so I haven't received any iTunes Podcast directory reviews yet. If you want to help the podcast, leaving a review in the iTunes Podcast directory is the number one way to help.

The number of listeners has been in the hundreds (~600), not thousands yet, but that makes sense given that I'm an unknown, have no marketing, and that the podcast is about a niche within a niche. I would even call it a success. I remember Saul Mora saying that the first couple episodes of NSBrief had only about 20 listeners each, so I feel really good about the numbers at this early stage. Part of that success has been the fact that I've had some really great guests on the show. A couple of them would even be considered "well known" in the Apple platforms programming community.

Here's a quick rundown of the five episodes thus far in reverse chronological order:

  • Michael Fellows - Michael is a fast rising star in the iOS/Android consulting world. He's the founder of Broadway Lab which he's grown from working solo to being a six person team in just three years. In my opinion he shared an incredible amount of wisdom in this episode that was hard earned through his rapid rise. 
  • Marcus Zarra - Marcus is a true software development and Apple platform veteran who is venerated for his wide ranging knowledge. Whether as a well known blogger, leader of a large consulting firm, or author of popular books, Marcus has truly made his mark on the community. It was an honor to interview him.
  • Manton Reece - Thus far this is the most listened to episode, probably because of Manton's celebrity in the community and his mention of the episode on his popular blog. I captured Manton at a very interesting time - just as he was transitioning into being full time indie (including doing quite a bit of consulting work). I'm a big fan of Manton and his must-listen-to in the indie community podcast Core Intuition.
  • Tobias Due Munk - Tobias was brave enough to be the first real guest on the show and I'm grateful to him for taking the leap. We had a wide ranging and very interesting discussion covering everything from his interesting path into consulting, to business differences between USA and his native Denmark. Tobias piqued listeners' interest and really set a great precedent for future episodes of the show.
  • David Kopec - How do you start an interview podcast as a relative unknown? Interview yourself! In retrospect this sounded like a much better idea than it actually was. Listening to it now, it does come off as a little eccentric, but you have to start somewhere.

I hope to continue having great interview episodes with great guests moving forward on the show. I also plan to experiment with topical episodes. I encourage any and all feedback - reach out to me on Twitter @davekopec.

I truly think Consult is a fantastic podcast, and not just because I created it. You can find the show notes, a link to the RSS feed, and iTunes directory link at ConsultPodcast.com


Posted in , , , , , , , , | Leave a comment
Copyright 2012-2016 David Kopec. Powered by Blogger.

Search

Swedish Greys - a WordPress theme from Nordic Themepark. Converted by LiteThemes.com.