Realm Blog

Adam on Breezeworks

BWApphero

Adam Block is the co-founder and CTO of Breezeworks, an app for service professionals providing everything from scheduling and customer communication assistance to invoicing and payment services. We’re thrilled that Adam took the time to chat with us about his background, his highly rated app, and his experiences using Realm.

Tim Anglade, VP of Product at Realm: I’m curious about the origin of Breezeworks. I read you’re one of the two founders of the company. Are you originally from the Bay Area?

Adam Block: Yeah, my co-founder and I are both from the Bay Area. We grew up together in the East Bay. We’ve known each other for 37 years.

Tim: Wow. And you got started with this about a year or two ago?

Adam: We started two years ago. We’ve talked about starting companies forever. My co-founder’s previous work was largely on the investment side. He’s been a venture capitalist and in private equity after starting his career on the treasury side at Intel. He’s been doing that stuff for 20 years, so he’s extremely well-connected in the Valley.

Adam

We had always wanted to do something, but the timing was never quite right for either one of us. Then, a couple of years ago, we found that we were both kind of in the same place at the same time, and having spent some time thinking about business opportunities, we decided to focus on service professionals — plumbers, locksmiths, handymen. Really anyone who finds that their place of business is the customer’s home or the customer’s office.

Looking at the market, we were very intrigued by the fact that there was a huge number of these companies and literally billions of dollars of venture capital invested in the discovery problem of service professionals — companies like Yelp and Angie’s List and Thumbtack and Porch, as well as Google Local and Yahoo — but basically no money invested in facing the challenge of helping these people actually run their business.

That was kind of the conceptual genesis, and we went from there.

T: You all seem to have raised a lot of money — quite a few members of the so-called PayPal Mafia are investing in the app. So I’m assuming you’re in the growth phase right now? Can you share how many people are working at the company at this point?

A: We’ve got a team of about eight, all considered.

T: Cool, it’s good to be a small business yourself, and understand some of those pain points of customers [laughing].

And now the app is live and has really great reviews — like 4.5 stars in the App Store. That’s pretty amazing. Could tell me a little more about it?

A: Breezeworks is basically mobile software for service professionals. We started the company with the intent of bringing technology to a category of business which had been basically ignored by software companies, by IT companies. And it’s a giant category. Our numbers show that 8 to 10 percent of all businesses in the United States are service-professional businesses with fewer than 20 employees. But it’s a very fragmented space. Historically it’s been difficult for software companies to reach these people with technology. They didn’t have any infrastructure; they were in the field; they didn’t have time for training; they didn’t have any budget for system integration or even really a sense of what that would mean.

The transition to everybody having a smartphone represented the “why now?” moment for us. And what we saw was that these people were all small-business entrepreneurs using smartphones in various ways. Some were managing their businesses with it, but in a very ad hoc fashion — using to-do lists to track their calendar items, or trying to cobble together a set of tools with an invoicing app and a payments app and a calendar app, etc.

They didn’t have the tools that everybody else has.

It was clear to us that part of the reason that this business category had a reputation among consumers for being late or slow to bill, or just generally disconnected from the way consumers think that modern businesses should run, was because they didn’t have the tools that everybody else has. Big business obviously has this stuff. Even white-collar small businesses have been totally transformed by software running on the desktop. These people kind of represented the last greenfield market whose businesses could really benefit if they were given access to the same kind of tools that all the rest of American businesses have. We saw this as an opportunity to be an equalizer and to let these people compete on a level playing field with larger companies who do have IT teams and training budgets and system integration budgets and so forth.

In some ways we see our mission as… not the opposite of, but kind of the complement of the move toward the marketplace of businesses in these categories — the Uberization of things like plumbing and housekeeping. Which obviously works for some people and is great for consumers, but isn’t always great for small businesses. At the same time, you’ve got a 100-person technology company creating a marketplace and also making tools to give to the people who sign on to that marketplace, to contrast with the five-person small business who doesn’t have access to tools like that.

T: Absolutely. I’m originally from Europe, and I’ve always been kind of surprised by that gap. You mentioned 8-10 percent of businesses here are service professionals, and I feel like in Europe it’s even higher. And nobody really has any kind of good invoicing tool. Nobody can, like, send an invoice by email, or even just take your payments. There’s definitely a gap there in terms of people having access to these modern tools.

It also seems representative of a trend where a lot of businesses don’t have a website. They barely have a Yelp page. And a lot of them are jumping straight into mobile because that’s something they understand, that’s something they literally have in their pocket and can take with them and don’t mind editing and updating. So it’s quite an interesting market to be in.

I was also surprised by how featureful the application was, in terms of really trying to cover all the needs that people may have. Could you tell me a bit more, feature-wise, about what you’re trying to cover today in the app, and maybe some of the stuff that you’re trying to do later on?

A: Yeah, there were three key things that we heard when we went out to talk to these people. One, they were frustrated by scheduling problems — particularly customer no-shows, when they would go to a customer’s location and the customer wasn’t there. So they spent gas money and wasted an appointment window, and they didn’t get to do the work and collect a payment, with no penalty to the customer.

The second issue was managing their receivables. And it’s almost an axiom in this business that these people take payments by check. And they do so because it’s free. A credit card costs them 3 percent. But then, the fact is, they end up driving around with the center console of the van full of checks, or they forget to send invoices, and so you just have the whole range of expenses: the payment process being expensive or just slow and delayed.

The third complaint was related to what you were just talking about with Yelp, which is their general inability to understand where their revenue is coming from and where they should be investing their marketing.

We initially focused on addressing the first two challenges: around scheduling and customer communication, and payments and invoicing.

Breezeworks has the ability to handle everything from the initial customer contact through notifying the customer of when appointments have been made, and then reminding them the night before so that you minimize the customer no-show problems. Once the vendor is on the job, they can take notes and photos, and annotate them and share them with customers. Finally, when the job is over, the vendors can send invoices instantly from their phone or collect payment instantly or record payments by paper, check, or cash — which many of them still want to do. But they can also take credit card payments, and soon eCheck payments. And we recognize that these people are super pricing-sensitive, so something we’ve been very focused on there is keeping our rates lower than the alternative.

We’ve got a year’s worth, at least, of stuff on the product road map, and these aren’t things that we just dreamt up as fun ideas. They’re things that our customers are asking for. Number one is Android, which is going to launch in the next couple of months, but there are lots of other things coming as well that we think will make the customer base super happy in terms of how they manage their workflow.

T: That’s great. I saw you have quite a few user quotes on the website, and it shows in the app — how much user feedback has gone into this.

I was wondering if you could tell me a bit more about how you use Realm inside Breezeworks?

A: Yeah, it’s pretty simple. We have to store some medium-sized databases inside the app in order to let users do things like tax lookups, even if they don’t have a network connection. We have all of the tax rates for every municipality in the United States. We also have every bank and attendant routing number in the U.S. maintained by the Federal Reserve. So those are essentially flat database files, but we need them to be searchable, and at least with the implementation of SQLite on iOS, the performance when doing full-text searches against potentially 50,000 rows of databases was pretty bad. And since our UI involves doing things like autocomplete and instant lookup as people type against those databases, having it take a second to query the database for text was not a good experience.

So when Realm came out and we found that the use case of storing a prefilled database in an app bundle was something that Realm developers had thought about, we became interested in doing a test to see whether we could improve our performance. And we found that we could. It was about a 4x improvement, with minimal tradeoff in the implementation time. It took basically a few hours — certainly a tradeoff worth making.

It was about a 4x improvement, with minimal tradeoff in the implementation time. It took basically a few hours.

T: It’s funny that you found that — we weren’t sure if anybody was going to notice that feature. We spent quite a few cycles optimizing post use cases and the ability to ship read-only files without having to copy them. We’re happy we spent the time to do it. And implementation time is something we always want to hear more about because we try to make sure that people don’t have this misconception that it takes so, so long to get into Realm. I think from the outside people can imagine it might take them about the same time it took them to learn Core Data or SQLite. Months and months. We try to keep it more to minutes and hours, if possible. It’s good to hear that that worked out as well.

Are you considering extending your use of Realm at all, for storing more types of data in the app?

A: I think as a long-term choice we’re open to it. The big reason that we cannot do it today with the existing Realm feature set is that we have built a pretty sophisticated sync framework. We spent a lot of time building an environment that would allow users to work seamlessly offline and then — when they went back online or when they got phone coverage back — synchronize all of their changes, potentially where other users might be making changes to the same object.

As you probably know, it’s a super-hard problem. One that lots of companies bump their heads against. It seems like every eight years or so, the Valley is on this cycle of companies that don’t sync for some reason. So it’s pretty amazing that there’s no good, generic cross-platform sync environment that works with mobile right now.

We needed one that would work generically with any API in-point server — in our case it’s Rails, but it could be anything — as well as iOS and Android. That requirement led us to build one syncing system for iOS and one for Android based on the set of principles that we assume should work. One of those is that, when we save a local object to the data store, we need to get a call-back for that specific object. Core Data makes that pretty easy, because it has a merge and save notification that gives you exactly what object was updated in the whole structure. We entirely rely on that. Realm doesn’t do that. There’s a single notification that says that something was saved, but it doesn’t tell you what. To implement Realm would require that we essentially rebuild the introspection and object tracking of Core Data so that we could keep track, ourselves, of what was saved. That’s doable, but it’s not something that we want to do. We have to do it in Android because ActiveAndroid doesn’t have that and it’s a big pain. But in Core Data, you get it for free.

T: That makes sense. We’re actually adding single-object notifications in either the next release or the one after that. I know we’ve been working hard on that. A lot of that stuff is working on the C++ level, but we haven’t gotten around to exposing it at the Objective-C and Swift level. But you’re definitely not the only one who’s hitting that current limitation of the API. That should end very soon, but I completely understand.

We’re also working on built-in sync cross-platform. That should be coming up a little bit later because we’re working really hard on the protocol to make sure it’s efficient and works well. We have quite a nice solution coming up for that that’s going to be available fairly soon for people who don’t already have a sync system that works for their purposes.

As you probably know, we’re also doing Android. So if you’re looking for something less bare bones than using SQLite and ActiveAndroid, we’re going to have something coming up very, very soon.

A: That is something we’ll certainly be looking at.

T: Thank you again so much for all the insights and the feedback. I’m happy Realm is working for you for what you’re using it for, and I wish you all the best. Breezeworks sounds like an amazing app.

Follow Adam on Twitter @ablock.


Realm Team

At Realm, our mission is to help developers build better apps faster. We provide a unique set of tools and platform technologies designed to make it easy for developers to build apps with sophisticated, powerful features — things like realtime collaboration, augmented reality, live data synchronization, offline experiences, messaging, and more.

Everything we build is developed with an eye toward enabling developers for what we believe the mobile internet evolves into — an open network of billions of users and trillions of devices, and realtime interactivity across them all.

Get more development news like this