We live in interesting times in the world of technology. Google’s working on self-driving cars and potentially space elevators, Apple recently bought out a mapping company, and Amazon, the internet’s bookstore, recently launched its own custom tablet computer. So, it shouldn’t be too suprising that most successful software companies feel the need to quickly expand into new markets and stay ahead of the computing curve.
Marketcircle is a company loved by Mac users for their award winning applications, Billings and Daylite. They’ve had great success with Mac and, more lately, iOS apps, but for the most part wouldn’t be thought of as a web app company. However, they’ve also created a hybrid Mac and cloud app, Billings Pro, and built up their own custom infrastructure to host their own Marketcircle Cloud service.
Marketcircle’s CEO, AJ, was kind enough to sit down for a chat with us and talk about their thoughts about the cloud, how their company got started, and what they’ve learned from running a cloud service. It was a very interesting talk, with a number of bits of info you might find surprising about a company you already knew about!
How did Marketcircle get started?
We actually started on the completely opposite side. When we started in 1999, we were a .com. Think of eBay, but instead of an auction engine we had a negotiation engine, where you could suggest a price and people could come back to you with a counteroffer. By the time we got the VCs, though, the bubble was imploding and we were just too late. So we had a choice to make, myself and Mike, were we going to shut the company down or do we do something to pay back our friends and family that invested.
We decided to do web development consulting, specifically WebObjects, to pay them back. We did that for a little while, and then Daylite was sort of an accident. We did that app, and that’s where we found success, and we kind of stuck to the Mac and native apps since then. That’s how we got started.
So web development fueled your Mac development, actually?
That’s right. And you know, we started with just me, and then Mike joined me, and a couple others. When we went through our droughts we had to downscale, and it was just Mike, Christine and I at one point, and now it fluctuates between 31 and 35 people on the team.
You talked about doing consulting work. Did that give you the idea for Billings?
We actually did Billings after we completed our consulting work. Billings came out in 2005, when we were just at the tail-end of our life as a consulting company. What inspired us for it was requests we would get from people with our Daylite product. We wanted to solve this problem with another app rather than add it on to Daylite, since it already has tons and tons of features. So that’s how we started with Billings: we wanted a simple app which people could use without a steep learning curve. It’s been a good tool for us to hone our interface design skills, too.
Was Billing Pro an afterthought, or was it an obvious progression from Billings that you’d planned?
I wouldn’t say it was planned from the get-go, but it was an obvious progression. We wanted to do Billings Pro many years ago, and we had a couple false starts on that project, and finally we got it. It wasn’t planned from day 1, but it was obvious pretty early that we needed to do something in that front.
It’s just that, we’ve got Daylite, we’ve got all these projects, and where do you balance your resources? We tried it two times, it didn’t work out, and finally the third time we got it.
When you first started with Billings Pro, was the general idea for it to be a centralized application as a server that everyone’s connected to?
No, actually, that’s how Daylite works to a degree. What we learned from Daylite is that people are getting more and more mobile and are less and less desktop orientated. This means that your connection to a “server” or service is not consistent. You close your laptop, go to the other side of the office or across the street, and you’re on a totally different network but you want to continue working. Potentially, sometimes, you don’t have a network. One of the big features of Daylite is the offline mode, and one of the things we learned is that often customers think they’ll have ‘net access when really they don’t.
So what we decided to do with Billings Pro, we wanted that offline model from the get-go. You would never connect directly to the server; instead, you’d have a local cache of data like we have now, and in the background we would synchronize with the server. This way, you’d always have your data, whether your connection was there or not, and you could continue working without a problem. Then, when the connection is there, it automatically syncs in the background.
We tried a couple different techniques, and it didn’t work out, and that caused a couple of our false starts. But we finally got it. That’s what we have with Billings Pro today. Then with Billings Pro Cloud, instead of you running the server, we run that backend.
Are you actually running Marketcircle Cloud on Macs on your end?
Yes we are. That was another thing that we knew, even early-on, that we have to do something with the cloud, though wasn’t called the cloud back then. But we have all this code in Objective-C. So do we write the backend in something else, or do we try to make Objective-C run on server-grade hardware?
We tried looking at using some kind of bridge, scripting languages like Ruby connected to Objective-C or various other techniques. That didn’t work out. Then we tried to look at a back-end language that we could use in both places, and that didn’t work out because of a lot of decisions we’d made earlier on. Then we said, Ok, Objective-C is open source, so we could get the GNU Objective-C, and run our stuff on that, which some people have done. However, we were using some of the more advanced Objective-C 2 stuff by this time, and that’s not readily available in the Linux side of things. So finally we came up with an architecture which basically uses Linux in the front, Linux in the back, and a bunch of disposable Mac Minis as little workhorses. It works out really good, in the sense that it’s got the best of both worlds.
Indeed, though, since we’re using our own architecture, running a cloud service has been challenging, but nothing that we can’t overcome. The thing is, you don’t know what’s going to hit the edge cases of the infrastructure. So we’re continually learning, and we’re getting better at it, improving our monitoring processes and efficiencies, finding out how to better balance things across our various servers and virtual instances, and all that fun stuff. So it’s very interesting.
So if I’m running a Billings Pro server on a Mac, it’s actually quite a bit different from using Marketcircle Cloud, but the end result is the same?
Correct. To the application, there’s only a few things that are different. For example, we have a few processes in the back, like Timecards and the sync server. On self-serve, all of that is on one host, but in the cloud, that can be across different hosts. That’s the awareness we have to give the app.
What we’re doing here is a bit different. We have an app that you can use on you’re own, without a connection to the server. If there’s a problem, you may not even know it as a user. The next release will have better tools to help the user understand the source of the problem and for us to know there is a genuine problem.
Do you find sync challenging, more than just syncing files via something like Dropbox?
We have two challenges. First, it is challenging to make sure that your data doesn’t get corrupted somewhere. Second, we are dealing with the multiuser space. It’s not just an individual’s behavior that we have to worry about, but it’s multiple users, and the complexity increases. We’ve been doing this type of synchronization with our first engine in 2003, and we’ve had to evolve the engine over the years. Now, with the efficiencies we’ve done on the cloud side, I could almost call that our fifth generation. Still, it is very challenging.
On the consumer end of things, do you think you’ll end up using iCloud or another service to sync standard Billings data?
We’re keeping an eye on iCloud for sure. We’re currently tied up with all the stuff we’re doing with the cloud, and stuff that I cannot talk about right now, but once we can come up for some air, we’re definitely keeping a close eye on iCloud and seeing what we can do on that front.
Do you think Marketcircle will make more web apps in the future, perhaps a full Billings web app?
I think what’s happening now, with the success of the App Stores, is that it’s becoming a bit murkier. Before the App Store, you would see a trend towards web apps especially for business applications, but now there’s a resurgence of native apps. I like what we’re doing with Billings Pro, where you have a native front end and a cloud back end, so you’ve got the best of both worlds. When we do do web apps, which we will do, they’ll be more to augment our native apps as opposed to replacing them completely.
Could you share any web apps you personally love?
I was thinking about this for a while, what’s the web apps I do love? First of all, I love the convenience of the web. I don’t use the 37signals apps, since we have competing apps, but I do like them. I use Twitter, but I use the native Twitter app. I use the web more in terms of consuming content, and the actual apps I use, with the exception of some internal apps we use, are mostly native apps.
Do you use Dropbox, Google Apps, or iCloud?
I personally don’t need to use Dropbox since we have file sharing at the office, but I know a lot of our employees do. I do use Google Apps, but I don’t love them. I prefer to use the native apps with the web services instead of the web apps themselves. In terms of the apps I use for work, I’ve been veering towards native apps for sure.
Native apps with cloud services are the future. We like that idea and we released Billings Pro + Cloud a few months before iCloud was even available. There’s going to be some hiccups along the way, but it’s getting better, and in my view I think that’s the future. I don’t think we’re going to change the way we consume content, and I still prefer to read content on their own websites so you can see the design of the sites. But for apps, native apps with cloud back-end is my current shtick, and that’s definitely my preference.
Billings Pro’s Timecard has a natural-style interface, similar to the direction Apple has taken with new apps like iCal. Do you like design style, or do you think native OS interfaces are better?
We thought we’d give that a try. Our inspiration was that one of our designers wanted to use the same metaphor in the desktop browser and in the mobile browser. Our interface is cards, so on the desktop you have three columns, each is a card-width, and on the mobile version you see one card at a time, and you swipe to see the other columns. I think that idea is great.
However, we’re looking to change our use of the natural design. I think it works good on consumer apps, but in terms of business apps, people aren’t liking that too much. So we’re going to be redesigning that. We’re going to be rethinking that pretty seriously, and we’ve already sketched out a few options there. We’ve got to come up for some air and get that done.
We’d like to extend a special Thank You to AJ for taking the time to talk with us. While Marketcircle isn’t a traditional web apps company, it’s interesting to see their thoughts on the cloud and how they’ve built their own cloud service. I’ve personally always admired their apps, and use Billings myself on my Mac. There’s always more than one way to accomplish something, and it’s easy to forget how much work it takes behind the scenes to keep our devices and apps in sync and our favorite apps running online.
If you’d like to learn more about Marketcircle and their Mac apps, be sure to check our Mac.AppStorm’s interview with AJ about Mac development and design from earlier this year.