
Sign up to save your podcasts
Or
Richard Moot: Hello and welcome to the Square Developer Podcast. I'm your host, Richard. Head of Devrel here at Square. And today I'm joined by David and Arielle from Blue Rocket. Thank you so much for being here. Can you go ahead and just give us a quick little intro and tell us about Blue Rocket.
David Foote: Blue rocket is a boutique design and development firm, and we kind of cut our teeth on restaurant apps very early in the history of the iPhone. We were the ones that put together Chipotle's first mobile app. And, today, we're still loving restaurants, but we're also spreading out into a lot of AI applications, especially where AI meets the phone.
Richard Moot: Very cool. And, what is it that each of you do here at Blue Rocket? Just to set the context for any of our listeners here so we can like, be sure like who's who and who does what.
Arielle Watson: So my name is Ariel. I do a little bit of everything. My technical title is VP of Client development. But, in any given week, that might look like working with our development team, working with clients, coding, if I'm lucky, and some design work as well.
David Foote: And I'm the CEO at Blue Rocket and haven't always been, but my, my partner retired a couple years ago, and so I stepped up from CTO to CEO, but I'm still I still code on a weekly basis on a daily, daily basis because there's lots of admin and overhead to worry about as well.
Richard Moot: I feel like you're describing a little bit of my life. So the majority of like, you know, your expertise within Blue Rocket is like these mobile apps. How is that like your approach to mobile app development sort of evolved over time? Or is it like you came in with, like a certain level of expertise or like, I'd love to know, like a little bit more of like, you know, how you approach those things.
David Foote: Well, historically we were very iPhone centric. You know, we've done Android apps along the way, but we've always kind of been more likely to be involved in an iPhone first sort of situation where, where everything was sort of vetted and, and figured out on the iPhone. And then an Android app was created later recently. You know, we tried in like 2016, I think it was we we tried out React Native, and it was just changing so fast that we just couldn't it was just too unstable for us to to do production apps on. But, we tried again recently and we really enjoyed it. It's been a good experience. Retention. So we're actually developing for both Android and iOS at the same time with that.
Richard Moot: Excellent. I think you're describing, like, exactly what my feeling has been with React Native for a very long time. And like, there's this very strong love hate relationship where I love it because I'm, I'm mainly a web developer. I know how to build stuff and react. So I felt like, oh, I suddenly feel powerful. I can make web apps or I can make mobile apps.
But every time I would come back to an app after, like, I don't know, three, six months, I mean, I'm mostly going to be, like, shocked by my own code. You like who wrote this? But I would also get endlessly frustrated, like, oh, I'm going to go upgrade my dependencies. And oh my gosh, like, I can't get anything to build.
And you know, actually X code's on a different version. And it was always a nightmare. So I'm glad to see that there's a little bit more stability here. It feels a little bit more reliable. Have you found that like most of this like expansion with React Native? Do you still do like native Android development or is it still kind of like iOS is like the deeper expertise and then like React Native enables this, like cross-platform, like code reuse?
David Foote: We still do Android native development as well. For instance, we're doing some SDK work for a client right now. That's all. It's Java. It's not Kotlin, but it's all Java.
Richard Moot: Very cool. And so part of the reason that we wanted to, like, have you on here and chat a little bit is that you've recently for one of your clients, actually started exploring building within Square's ecosystem. I'd love for you to like, tell a little bit more about, like, what brought you into adopting Square and like, how's it going?
Arielle Watson: Yeah. So we were approached by a prospective client last year and given what they were out to accomplish, we evaluated a few different vendors. Square was one of them. And for the functionality that we were looking to build, Square had everything that we needed. When we looked at your guys' documentation and looked at the different APIs that you had.
And so that was I think that was part of why, from a technical perspective, we recommended going with Square and then, for our client, they had a previous relationship with Square for some other of their businesses. And so they were also leaning that direction. So it worked out really well.
Richard Moot: Also. And like, what was it that sort of like, stood out for you in like, sort of meeting the needs of, like, what it is that you were looking for for a platform because, I mean, like, you know, there's I'm going to be honest, there's we know there's a lot of platforms out there, you know. So what is it that sort of stood out and like sort of meeting it? Was it like something within our product sets or like I'd love to know more about what really met the client's needs.
Arielle Watson: Yeah. So it was mainly the APIs that you guys offer. So one of the things that they wanted to accomplish was, kind of this dynamic macro calculation as your ordering. And so when we were looking specifically for a way to do that, Square was really the only one that had something that we could leverage for that. So we're using the catalog custom attributes.
Richard Moot: And so, can we talk a little bit more about the app in sort of like what it is that you're building. Maybe like we'll roll back a little bit and sort of like you met with a prospective client that like, to what extent you can like to sort of discuss this, like who are they? What were they actually like looking to, to build. And then how did you sort of arrive at, like what you're going to sort of create for that mobile experience?
Arielle Watson: Yeah. So bull is a fast casual restaurant that's opening this year in Elk Grove, California. Their offering is to be fast, be customizable to use high quality ingredients. And so when they approached us, being able to appeal to really any user that's on any diet was something they wanted to be able to do. And so the app that we're building supports mobile ordering of course supports loyalty, their rewards.
So one of the features that they wanted to support was group ordering. So that a group of people working in an office could just submit one order, make it really simple. And so that's one of the things that we've done. And it was really important to us from a technical perspective, to be able to rely on whichever vendor we chose as the source of truth, so that our backend server could be as lightweight as possible.
Richard Moot: Very cool. I feel like you're describing something that's like a dream of mine, my own. I have been really into macro writing for a while. I won't go on like a whole tirade around that, but because I'm, I'm sure nobody actually wants to hear that this isn't like some sort of fitness podcast. But you had previously sort of mentioned Chipotle and like I they're one that like I've seen have like a form of a calculator.
I'm not I'm not gonna pretend like this may be the one that you built for them, but like, I know they had like a similar sort of thing of like breaking down calories, like, as you add certain things in, but I think the gap that I've seen in most things is like, I actually want to know, like how much protein, how much fat, how much carbs are in this because I'm basically measuring myself to like, I can only have this much.
I love budgeting, and that's probably why I work at Square. I love finance, I love numbers, I'll budget my own food. So it's really cool to, like, be able to leverage something like custom attributes within Catalog. I've been dying to get people to use the custom attributes in this way for this exact reason. I can't tell you the number of developers that I have come in and like, kind of like stuffed stuff into, like different places on the object or put it in somewhere else, or they might just be tracking it on their own somewhere. So it's really great sort of here that you can actually sort of leverage this directly on the catalog and have that kind of nutritional breakdown.
Arielle Watson: Yeah, it's been pretty awesome because we're using it for things like macro values on modifiers and on items, but we're also able to utilize it for flags, on those same items for that, that tell the app how it should render something. And so that's been something we didn't necessarily expect to be able to do from the beginning, but it's been really useful.
Richard Moot: So one of the things I'm curious about with the app that you're building, because I think, I'm kind of like trying to draw from memory when we sort of talked before the the podcast we're recording here is that there's both a client facing like a customer facing experience, like mobile app. They would have, sort of, on their phone. But there's also like an in-store experience that you guys are also building for them.
Arielle Watson: Yeah. Yeah. So we're building the consumer app, which will be on iOS and Android. And then we're also building a kiosk app for them. So that will allow people to just come in and order without needing to log in. And if they want to, they can get their loyalty points.
Richard Moot: One of the things I was like, kind of curious about it, like kind of, a little bit change directions or kind of like roll back a little bit, when somebody sort of, like, coming in, like, you have this prospective client and I really kind of want to, like, paint a picture for other folks because, you know, I think I've mostly been in the realm of, like, I've worked for some company and like, I kind of just build software based on, like, their usual process.
And I want to sort of understand, like how you approach this because you don't just like, sort of like build apps, like there's a whole experience that you have to sort of walk people through, like what is the actual business need, what are all like the different metrics? I'd love to sort of paint a picture for listeners and like what agency kind of development looks like.
So, like, maybe we can start from, like, you have an inbound inquiry come in and you're sort of fielding a request, like what sort of happens from there as you work with the client?
David Foote: So, usually we arrange for a half hour meeting, you know, a video conference meeting just to get a better picture of what their unmet need is what we're trying to accomplish. And, depending on kind of where they're at, what their experience in the software life cycle is, we might recommend that they come in for like a, a free three hour consultation where we, where we kind of build out a more complete definition of the product that they're hoping to build.
Or if, if they're very, very early or very new to, to software, we might recommend, a little bit longer of a workshop where they come in and really get, get situated and we can really help them develop, an intuition and a, an overall sense of what it's like to build software. So that might take, you know, we might do a few hours each day for, for three days in a, in a week span in that case. But often we can get somewhere where we're ready to talk about dates and schedules and numbers, in that first three hour workshop.
Richard Moot: Okay. So, like in the case of, like this mobile app where you have, like, both an in-person like or, sorry, like, a consumer app and then like sort of an in-store experience, is that something that was like sort of known ahead of time as I was sort of like found through discovery and like trying to figure out, like what it is that they were ultimately solving for.
Like, I love to like, sort of understand, like how you sort of like, the best way that I put this, like, when I, like, talk to people in my, my community, is like, sometimes I'm having to sort of, like, pull the, the actual problem out of, like, okay, like, what is it? It's like we're really trying to drive towards here.
Like we don't want to have like, really long lines. So you're like, okay, like maybe we want to have a sort of kiosk, like I'm sort of understanding, like was this something that was maybe known ahead of time or is like found through the discovery process?
Arielle Watson: Yeah. If I remember, I think Kyle came to us knowing he wanted to do a kiosk app in store.
David Foote: And in it definitely, you know, not having or giving people a shot, you know, to avoid the line was definitely a big motivator for that. Because it is an attended the concept is an attended sort of assembly there in the store where they can say, oh, I want some of that, and I want some of that. Like my pizza. I'd like Chipotle. Although my pizza's a bad example. They're kind of disappearing.
Richard Moot: I do love my pizza. It is too.
David Foote: I like them too, you know.
Richard Moot: Because like, I'm always curious. Also, like in the, approach to like user experience between the two of them. And I always have this, like, running theory. I'm maybe validating myself by, like, asking this in different contexts on the podcast. But, one thing I sort of learned was that, like, but it was very different to me, like, say, building an in-person experience versus a consumer experience.
Is it in-person? I do feel like a user has maybe like a lower tolerance for waiting on things or load times or like any kind of delays. Whereas like, you know, you would maybe even in a mobile app you might have something slightly more tolerant, like, oh, like it took a little bit like to fetch this data and like rendered in a view.
And so I'm just kind of, curious, like what are sort of like the little nuggets of things that you sort of had to sort of change when approaching for, like an in-store experience versus the consumer one.
Arielle Watson: I would say we really had to optimize for simplicity and efficiency, because it may be their first time using the kiosk, it may be their first time using any kiosk. And a lot of the kiosk experiences that are out there are really hard to use. So really, we tried to pare down what the user needed to do in order to create an order, even to like where they're entering their name. You know, we just wanted to remove as many roadblocks as possible for them.
Richard Moot: And like, are there like sort of in the, in person experience, I guess, like there is like always like a little bit of, like the record of like, oh, I can go because it's intended. So like you could be like, hey, I'm, I'm running into the issue that they can at least have somebody at the store there to hopefully help them in troubleshooting it.
If they did run into an issue. Do you have you found like having to implement any kind of like ask for help within there where they can sort of just say like I got stuck or is it kind of like just sort of a they hopefully just back themselves out and start over again.
David Foote: We're not open yet. So we haven't had a lot of user feedback for that kind of thing. And I know it's not clear to me yet what the staffing situation would be like for there would be somebody available to come out and help with the kiosk or not. So I guess we'll figure that out.
Richard Moot: Yeah. Because I've seen a lot of, like, some other people have built in store experiences. And I mean, I don't want to like, tell like the, the power of, of our platform or tools. I think we actually just get lucky that we have good developers building intuitive apps, on our stuff. But it's more often that like, they've just sort of had a way of resetting back at the beginning again.
The only other thing I've sort of heard is from when trying to sort of troubleshoot, I said, like the, a common thing that might that has happened for some folks is, wait a minute, why is mitigating this is like, you know, that for an employee to like, get trained on, like say, how do I reset the the kiosk?
That's actually fairly intuitive and not requiring a huge amount of training because, we provide some stuff on like, hey, pear, the reader does this and then it's, it's good to go. But I have heard that like that's like the only other thing that likes tends to need consideration. When, when rolling this out, the only other one I thought was like, accessibility.
I wonder, like, is that something that, like, is something that you're thinking about for the initial version of this app or something that's considered like an important requirement? Upfront.
Arielle Watson: I would say, one thing that we're kind of always keeping in mind is trying to kind of have multiple cues. So it's not just color, you know, we're trying to use different, different shapes or things like that. So in that sense, I would say it's part of this first version, but anything beyond that, we're definitely interested in.
Richard Moot: So for the consumer side of the app, that's mostly to sort of understand like the use case, it's like that's like for like I want to order ahead, maybe curious like is there also going to be a delivery component or is it primarily for like, oh, I want to order online.
Arielle Watson: Yeah. So there's going to be a delivery component. And actually the integration with DoorDash, this Square just kind of upgraded was perfect timing for us. Excellent. So yeah, they'll be doing their delivery option, their pickup option. And then they also can save favorites. They can track their loyalty progress. And then the group ordering is another big one.
Richard Moot: And then, kind of changing gears a little bit, I'm curious, like, as you're, you know, I know that like, success might be defined as like, hey, you know, we've found, like the right use case, we've landed the client, you've got the work done, we deliver. What does it look like in terms of like, defining success metrics?
Like once something is like live and running, and like to what extent do you like, sort of like, continue on in, like maintaining those things? Or is it usually that you would sort of build like an off boarding plan to be like, here's how you can sort of take on maintaining this for your, for you and your, your team going forward.
David Foote: So with a, a concept and a company is new is bold. I don't think it would be wise for them to take on the burden of software development, maintenance for some time to come. So, you know, when, when they've gotten big enough that it makes sense to staff that internally, then we'll help them. We'll try to help them transfer that to internal staff. But I wouldn't see that happening for a couple of years yet.
Richard Moot: And so like, do you usually sort of. Well, I'm sure it probably works both ways, but do you have a preferred hosting platform that you sort of generally like to build your stuff on, or is it usually just more determined by the client? Hey, I'm sure that some might be more opinionated. Some might be like, yeah, we don't have, we don't really care as long as the backend works.
David Foote: Yeah, usually we're the ones that are recommending, a fairly strong recommendation because we've got, you know, our own routines and reflexes, you know, set up to, to work with certain platforms. Historically, we've been very likely to deploy on Heroku. But more and more, AWS is sort of our default. So in this case, we're using the AWS landers and gateway and probably a couple other things.
Richard Moot: Now, one thing I do want to touch on, since you mentioned it, and it's like a fun hot topic and a new personal interest of my own is, you know, working on AI, incorporating AI. I'm just curious, like, how much is it like sort of incorporating or building this for client projects? How much are you actually incorporating it into your own development flows or creative process?
David Foote: Well, if they took away ChatGPT tomorrow, we'd be helpless, I feel. Yeah, there, work. Yeah. And we're shifting more and more to Claude for actual coding, for generating code. But, we use ChatGPT for more general questions and, yeah, we use it every day. All day. It makes things possible that before we would have had to, you know, build expertise over several months to tackle, we've got one client that we're doing that we're doing really intricate camera work on, on the iPhone.
And that's that's fairly rarefied, you know, that expertise. But, you know, the AI is just helping us just tackle it and not have to be scared. Awesome.
Arielle Watson: Yeah. We found it to be really powerful. And as long as you can architect your prompts in a way to get what you need. And then I think David kind of alluded to it earlier, but we've found that, like ChatGPT, has been great for kind of our general questions. But sometimes when we run into, you know, troubleshooting, it can get a little stuck in the loop. And so then the cloud has been really useful for that.
Richard Moot: Yeah. I think one tip that I've heard and I'm, I'm, I'm actually starting to like to subscribe to it is that, at least when it comes to coding, it can be very helpful and sort of like building out certain pieces, features, functions, that kind of thing. But I have found that like when you start wrestling with it around debugging, I've had like so much headache and that I've, that's when I've kind of found like, oh, having my software engineering background has been very helpful in these instances of like, oh, if I just go fix the bug and then like, let it keep going, we're going to go ten times faster. If I try to sit here and be like, hey, can you go ahead and fix this bug? It's just going to keep introducing new ones and new ones and new ones and new ones. And then you're just like, okay, this is not. I'm actually taking more time than if I just wrote the function myself.
David Foote: You definitely have to wrangle it.
Arielle Watson: Yeah. And we found that the more rare the bug is, the less useful, really, any AI has been.
Richard Moot: I'm also curious, like for an agency, has it helped in sort of tackling areas where maybe previously you've been like, oh, we don't. It would take us too long to sort of ramp up in this particular area. But at least I'm just curious, like you use it as a tool or to see like, hey, can we maybe figure out like these, like, like what we would think are like hard unknowns to get enough to say yes to like, a certain type of project. I'm just curious, like how is it sort of like unlocked your sort of view of approaching certain types of projects?
David Foote: Well, I wouldn't say that. It's made more projects accessible to us. Exactly. So with existing customers where we already sort of have the right to, to work on, certain problems, you know, then we're able to expand how much of that problem we can tackle, maybe replacing some libraries we've relied on before. But, for new customers, it's not enough to give us, you know, bragging rights to say, oh, yeah, we can do that, you know, because we haven't done it yet. We just know that we have good tools to tackle it. If we do, it becomes necessary.
Richard Moot: I found like, it's like from a, from a DevRel side of things and just like, sort of exploring things, at least for like when I'm reviewing like code in the language that I'm like, maybe less familiar with, I've even found it, like, helpful to be like, hey, can like you convert this into, like TypeScript or like, explain how this function is working to as if I was a TypeScript developer and it's like suddenly like, oh, okay.
Like I see how these different ways that, like you say, rust is working. It's one it's a language that I would love to like, learn but don't have the patience for or, I mean, I probably should have the time, but I definitely realize I don't have the patience for it, so I've definitely found it like very useful for like exploring like these other areas where I would feel like absolutely no confidence to at least be like, well, I'll at least try and see, like what I can come up with.
David Foote: That's good to hear. I have a dream of taking one of our Swift UI apps and using AI to generate the Android version of it, so we'll see if that works out.
Richard Moot: I would love to know if it does because like, that's like for me, that's like the dream of like, oh, I wrote this example app. I wrote it in TypeScript. Can you go ahead and convert this into Python or Django or some other framework? Like that'd be amazing. And so it would be really, really helpful.
David Foote: I'm hoping it's the perfect excuse to spin up cursor AI, because I haven't used that yet, and I understand it has a little wider context across the project than just, single file.
Richard Moot: And I mean, I'm no, I'm not supposed to probably be, like, going over here, but I don't really care. That, plug in other tools, but I've definitely tried that one out. And it has been extremely useful. The other one I would recommend that you try out is a shameless plug is that we actually have an AI coding agent that's open source called goose.
And it's like it has a CLI and a desktop component. Highly recommend that you try those out. I think all you have to do is you just, like, give it an API key for your line of choice, and it works pretty well. Like you can just sort of say like, hey, I want to like, go do this thing and like, it will actually do what they call like a genetic behavior where it, like, will create files, edit files.
You can like, enable all different types of things. I do hope to, like, get, more people even like coming to build on Square to be leveraging that for like even just hammering out your initial proof of concept. I mean, that's the one thing that I found very useful for, like for AI in general, especially for using these agent behaviors.
It's not necessarily my default. But sometimes if I have a more complex idea that I want to convey to someone, maybe it involves something like having a small web app or a small website, it would sort of like put everything in a way that would better describe what it is that I'm trying to talk about.
It has been really useful for saying, like getting 80, 90% of the way there, where it would probably take me a couple of hours to like, create like a slide deck that would sort of describe this whole thing. And so that part I've actually found to be really handy, just in like a way of using it as a way of expressing the complex thought.
Arielle Watson: Yeah, I would agree. I think that being able to take an idea or even a design and turn it into not just an interactive prototype, which like you could do with Figma, but to turn it into like a working POC in a very short period of time. I think that's going to affect our industry hugely in the next few months.
Richard Moot: And so one thing I do want to bring this back to Square, just for like kind of coming up towards the end of this in in your experience of sort of building with Square for, you know, these initial like, you know, consumer app in-person experiences, I'd love to know like, and this, you know, be honest with us.
What's the good, what's the bad. I'd love to know a little bit more about the overall experience of like, you know, did it make a lot of sense at the beginning. And then you kind of got like a little you stub your toe in places like, I'd love to learn a little bit about, you know, your overall experience with Square and our platform.
Arielle Watson: Yeah, I would say overall we've really appreciated the documentation and the API explorer. That's been huge. And I've been leveraging your guys's postman collection a lot more in the last, last month or so. Nice. I think one area that's been more difficult is with using the SDK. Particularly because we are on React Native and we're using Expo, and so there wasn't really out of the box support for that. So it was a little bit of a learning curve to get them working and that we got there.
Richard Moot: Don't worry. I'm taking very, very meticulous notes here to remind somebody like you spoke to something that's very close to me. Like I've been wanting them to like have this exposed support. I can say that I've been told that this should be working for mobile payments. SDK should be working with Expo. I'm going to put like a little asterisks in this for the listeners, because I've yet to test this personally.
So I have a hard time saying like, yes, this totally works with Expo. But it has been told to me from the people who worked on the React Native, plugin for a mobile payments SDK that it should be working with Expo. I want to say that because like, there's a little bit of caveats when somebody on my team is building an AR tutorial for React Native, which I am preempting, but by the time this comes out, that video will probably be published and you can all watch it and like learn how to use mobile payments SDK with React Native.
And then we hope to follow on with another video on how to, how to make this actually work with Expo, specifically because Expo has been like a dream come true when it comes to making your app and your development process so seamless.
Arielle Watson: Yeah, kind of go more.
Richard Moot: And so I'm sorry for jumping straight in there. I don't know if there was anything else that you wanted to touch on in terms of, overall experience, as you said, Expo. And I got super excited.
David Foote: Yeah, yeah.
Arielle Watson: No, I think those were the main points for us.
Richard Moot: Well, I see that we have come up to our time here. And so I want to thank you both for coming on to the podcast. Big thanks to David, Ariel and all of Blue Rocket, really. And I would love to know if there's anything where folks can go to learn more if they wanted to talk to you about their own mobile app or their own project?
Richard Moot: Where can they find you?
David Foote: You can find us at www.bluerocket.us.
Richard Moot: Awesome. Yeah, yeah. And if you've got a project with Square, we'd love to hear about it. Reach out to us in Discord. Or X at SquareDev. Don't forget to subscribe and check out developer.squareup.com for more. Keep building and catch you next time.
Richard Moot: Hello and welcome to the Square Developer Podcast. I'm your host, Richard. Head of Devrel here at Square. And today I'm joined by David and Arielle from Blue Rocket. Thank you so much for being here. Can you go ahead and just give us a quick little intro and tell us about Blue Rocket.
David Foote: Blue rocket is a boutique design and development firm, and we kind of cut our teeth on restaurant apps very early in the history of the iPhone. We were the ones that put together Chipotle's first mobile app. And, today, we're still loving restaurants, but we're also spreading out into a lot of AI applications, especially where AI meets the phone.
Richard Moot: Very cool. And, what is it that each of you do here at Blue Rocket? Just to set the context for any of our listeners here so we can like, be sure like who's who and who does what.
Arielle Watson: So my name is Ariel. I do a little bit of everything. My technical title is VP of Client development. But, in any given week, that might look like working with our development team, working with clients, coding, if I'm lucky, and some design work as well.
David Foote: And I'm the CEO at Blue Rocket and haven't always been, but my, my partner retired a couple years ago, and so I stepped up from CTO to CEO, but I'm still I still code on a weekly basis on a daily, daily basis because there's lots of admin and overhead to worry about as well.
Richard Moot: I feel like you're describing a little bit of my life. So the majority of like, you know, your expertise within Blue Rocket is like these mobile apps. How is that like your approach to mobile app development sort of evolved over time? Or is it like you came in with, like a certain level of expertise or like, I'd love to know, like a little bit more of like, you know, how you approach those things.
David Foote: Well, historically we were very iPhone centric. You know, we've done Android apps along the way, but we've always kind of been more likely to be involved in an iPhone first sort of situation where, where everything was sort of vetted and, and figured out on the iPhone. And then an Android app was created later recently. You know, we tried in like 2016, I think it was we we tried out React Native, and it was just changing so fast that we just couldn't it was just too unstable for us to to do production apps on. But, we tried again recently and we really enjoyed it. It's been a good experience. Retention. So we're actually developing for both Android and iOS at the same time with that.
Richard Moot: Excellent. I think you're describing, like, exactly what my feeling has been with React Native for a very long time. And like, there's this very strong love hate relationship where I love it because I'm, I'm mainly a web developer. I know how to build stuff and react. So I felt like, oh, I suddenly feel powerful. I can make web apps or I can make mobile apps.
But every time I would come back to an app after, like, I don't know, three, six months, I mean, I'm mostly going to be, like, shocked by my own code. You like who wrote this? But I would also get endlessly frustrated, like, oh, I'm going to go upgrade my dependencies. And oh my gosh, like, I can't get anything to build.
And you know, actually X code's on a different version. And it was always a nightmare. So I'm glad to see that there's a little bit more stability here. It feels a little bit more reliable. Have you found that like most of this like expansion with React Native? Do you still do like native Android development or is it still kind of like iOS is like the deeper expertise and then like React Native enables this, like cross-platform, like code reuse?
David Foote: We still do Android native development as well. For instance, we're doing some SDK work for a client right now. That's all. It's Java. It's not Kotlin, but it's all Java.
Richard Moot: Very cool. And so part of the reason that we wanted to, like, have you on here and chat a little bit is that you've recently for one of your clients, actually started exploring building within Square's ecosystem. I'd love for you to like, tell a little bit more about, like, what brought you into adopting Square and like, how's it going?
Arielle Watson: Yeah. So we were approached by a prospective client last year and given what they were out to accomplish, we evaluated a few different vendors. Square was one of them. And for the functionality that we were looking to build, Square had everything that we needed. When we looked at your guys' documentation and looked at the different APIs that you had.
And so that was I think that was part of why, from a technical perspective, we recommended going with Square and then, for our client, they had a previous relationship with Square for some other of their businesses. And so they were also leaning that direction. So it worked out really well.
Richard Moot: Also. And like, what was it that sort of like, stood out for you in like, sort of meeting the needs of, like, what it is that you were looking for for a platform because, I mean, like, you know, there's I'm going to be honest, there's we know there's a lot of platforms out there, you know. So what is it that sort of stood out and like sort of meeting it? Was it like something within our product sets or like I'd love to know more about what really met the client's needs.
Arielle Watson: Yeah. So it was mainly the APIs that you guys offer. So one of the things that they wanted to accomplish was, kind of this dynamic macro calculation as your ordering. And so when we were looking specifically for a way to do that, Square was really the only one that had something that we could leverage for that. So we're using the catalog custom attributes.
Richard Moot: And so, can we talk a little bit more about the app in sort of like what it is that you're building. Maybe like we'll roll back a little bit and sort of like you met with a prospective client that like, to what extent you can like to sort of discuss this, like who are they? What were they actually like looking to, to build. And then how did you sort of arrive at, like what you're going to sort of create for that mobile experience?
Arielle Watson: Yeah. So bull is a fast casual restaurant that's opening this year in Elk Grove, California. Their offering is to be fast, be customizable to use high quality ingredients. And so when they approached us, being able to appeal to really any user that's on any diet was something they wanted to be able to do. And so the app that we're building supports mobile ordering of course supports loyalty, their rewards.
So one of the features that they wanted to support was group ordering. So that a group of people working in an office could just submit one order, make it really simple. And so that's one of the things that we've done. And it was really important to us from a technical perspective, to be able to rely on whichever vendor we chose as the source of truth, so that our backend server could be as lightweight as possible.
Richard Moot: Very cool. I feel like you're describing something that's like a dream of mine, my own. I have been really into macro writing for a while. I won't go on like a whole tirade around that, but because I'm, I'm sure nobody actually wants to hear that this isn't like some sort of fitness podcast. But you had previously sort of mentioned Chipotle and like I they're one that like I've seen have like a form of a calculator.
I'm not I'm not gonna pretend like this may be the one that you built for them, but like, I know they had like a similar sort of thing of like breaking down calories, like, as you add certain things in, but I think the gap that I've seen in most things is like, I actually want to know, like how much protein, how much fat, how much carbs are in this because I'm basically measuring myself to like, I can only have this much.
I love budgeting, and that's probably why I work at Square. I love finance, I love numbers, I'll budget my own food. So it's really cool to, like, be able to leverage something like custom attributes within Catalog. I've been dying to get people to use the custom attributes in this way for this exact reason. I can't tell you the number of developers that I have come in and like, kind of like stuffed stuff into, like different places on the object or put it in somewhere else, or they might just be tracking it on their own somewhere. So it's really great sort of here that you can actually sort of leverage this directly on the catalog and have that kind of nutritional breakdown.
Arielle Watson: Yeah, it's been pretty awesome because we're using it for things like macro values on modifiers and on items, but we're also able to utilize it for flags, on those same items for that, that tell the app how it should render something. And so that's been something we didn't necessarily expect to be able to do from the beginning, but it's been really useful.
Richard Moot: So one of the things I'm curious about with the app that you're building, because I think, I'm kind of like trying to draw from memory when we sort of talked before the the podcast we're recording here is that there's both a client facing like a customer facing experience, like mobile app. They would have, sort of, on their phone. But there's also like an in-store experience that you guys are also building for them.
Arielle Watson: Yeah. Yeah. So we're building the consumer app, which will be on iOS and Android. And then we're also building a kiosk app for them. So that will allow people to just come in and order without needing to log in. And if they want to, they can get their loyalty points.
Richard Moot: One of the things I was like, kind of curious about it, like kind of, a little bit change directions or kind of like roll back a little bit, when somebody sort of, like, coming in, like, you have this prospective client and I really kind of want to, like, paint a picture for other folks because, you know, I think I've mostly been in the realm of, like, I've worked for some company and like, I kind of just build software based on, like, their usual process.
And I want to sort of understand, like how you approach this because you don't just like, sort of like build apps, like there's a whole experience that you have to sort of walk people through, like what is the actual business need, what are all like the different metrics? I'd love to sort of paint a picture for listeners and like what agency kind of development looks like.
So, like, maybe we can start from, like, you have an inbound inquiry come in and you're sort of fielding a request, like what sort of happens from there as you work with the client?
David Foote: So, usually we arrange for a half hour meeting, you know, a video conference meeting just to get a better picture of what their unmet need is what we're trying to accomplish. And, depending on kind of where they're at, what their experience in the software life cycle is, we might recommend that they come in for like a, a free three hour consultation where we, where we kind of build out a more complete definition of the product that they're hoping to build.
Or if, if they're very, very early or very new to, to software, we might recommend, a little bit longer of a workshop where they come in and really get, get situated and we can really help them develop, an intuition and a, an overall sense of what it's like to build software. So that might take, you know, we might do a few hours each day for, for three days in a, in a week span in that case. But often we can get somewhere where we're ready to talk about dates and schedules and numbers, in that first three hour workshop.
Richard Moot: Okay. So, like in the case of, like this mobile app where you have, like, both an in-person like or, sorry, like, a consumer app and then like sort of an in-store experience, is that something that was like sort of known ahead of time as I was sort of like found through discovery and like trying to figure out, like what it is that they were ultimately solving for.
Like, I love to like, sort of understand, like how you sort of like, the best way that I put this, like, when I, like, talk to people in my, my community, is like, sometimes I'm having to sort of, like, pull the, the actual problem out of, like, okay, like, what is it? It's like we're really trying to drive towards here.
Like we don't want to have like, really long lines. So you're like, okay, like maybe we want to have a sort of kiosk, like I'm sort of understanding, like was this something that was maybe known ahead of time or is like found through the discovery process?
Arielle Watson: Yeah. If I remember, I think Kyle came to us knowing he wanted to do a kiosk app in store.
David Foote: And in it definitely, you know, not having or giving people a shot, you know, to avoid the line was definitely a big motivator for that. Because it is an attended the concept is an attended sort of assembly there in the store where they can say, oh, I want some of that, and I want some of that. Like my pizza. I'd like Chipotle. Although my pizza's a bad example. They're kind of disappearing.
Richard Moot: I do love my pizza. It is too.
David Foote: I like them too, you know.
Richard Moot: Because like, I'm always curious. Also, like in the, approach to like user experience between the two of them. And I always have this, like, running theory. I'm maybe validating myself by, like, asking this in different contexts on the podcast. But, one thing I sort of learned was that, like, but it was very different to me, like, say, building an in-person experience versus a consumer experience.
Is it in-person? I do feel like a user has maybe like a lower tolerance for waiting on things or load times or like any kind of delays. Whereas like, you know, you would maybe even in a mobile app you might have something slightly more tolerant, like, oh, like it took a little bit like to fetch this data and like rendered in a view.
And so I'm just kind of, curious, like what are sort of like the little nuggets of things that you sort of had to sort of change when approaching for, like an in-store experience versus the consumer one.
Arielle Watson: I would say we really had to optimize for simplicity and efficiency, because it may be their first time using the kiosk, it may be their first time using any kiosk. And a lot of the kiosk experiences that are out there are really hard to use. So really, we tried to pare down what the user needed to do in order to create an order, even to like where they're entering their name. You know, we just wanted to remove as many roadblocks as possible for them.
Richard Moot: And like, are there like sort of in the, in person experience, I guess, like there is like always like a little bit of, like the record of like, oh, I can go because it's intended. So like you could be like, hey, I'm, I'm running into the issue that they can at least have somebody at the store there to hopefully help them in troubleshooting it.
If they did run into an issue. Do you have you found like having to implement any kind of like ask for help within there where they can sort of just say like I got stuck or is it kind of like just sort of a they hopefully just back themselves out and start over again.
David Foote: We're not open yet. So we haven't had a lot of user feedback for that kind of thing. And I know it's not clear to me yet what the staffing situation would be like for there would be somebody available to come out and help with the kiosk or not. So I guess we'll figure that out.
Richard Moot: Yeah. Because I've seen a lot of, like, some other people have built in store experiences. And I mean, I don't want to like, tell like the, the power of, of our platform or tools. I think we actually just get lucky that we have good developers building intuitive apps, on our stuff. But it's more often that like, they've just sort of had a way of resetting back at the beginning again.
The only other thing I've sort of heard is from when trying to sort of troubleshoot, I said, like the, a common thing that might that has happened for some folks is, wait a minute, why is mitigating this is like, you know, that for an employee to like, get trained on, like say, how do I reset the the kiosk?
That's actually fairly intuitive and not requiring a huge amount of training because, we provide some stuff on like, hey, pear, the reader does this and then it's, it's good to go. But I have heard that like that's like the only other thing that likes tends to need consideration. When, when rolling this out, the only other one I thought was like, accessibility.
I wonder, like, is that something that, like, is something that you're thinking about for the initial version of this app or something that's considered like an important requirement? Upfront.
Arielle Watson: I would say, one thing that we're kind of always keeping in mind is trying to kind of have multiple cues. So it's not just color, you know, we're trying to use different, different shapes or things like that. So in that sense, I would say it's part of this first version, but anything beyond that, we're definitely interested in.
Richard Moot: So for the consumer side of the app, that's mostly to sort of understand like the use case, it's like that's like for like I want to order ahead, maybe curious like is there also going to be a delivery component or is it primarily for like, oh, I want to order online.
Arielle Watson: Yeah. So there's going to be a delivery component. And actually the integration with DoorDash, this Square just kind of upgraded was perfect timing for us. Excellent. So yeah, they'll be doing their delivery option, their pickup option. And then they also can save favorites. They can track their loyalty progress. And then the group ordering is another big one.
Richard Moot: And then, kind of changing gears a little bit, I'm curious, like, as you're, you know, I know that like, success might be defined as like, hey, you know, we've found, like the right use case, we've landed the client, you've got the work done, we deliver. What does it look like in terms of like, defining success metrics?
Like once something is like live and running, and like to what extent do you like, sort of like, continue on in, like maintaining those things? Or is it usually that you would sort of build like an off boarding plan to be like, here's how you can sort of take on maintaining this for your, for you and your, your team going forward.
David Foote: So with a, a concept and a company is new is bold. I don't think it would be wise for them to take on the burden of software development, maintenance for some time to come. So, you know, when, when they've gotten big enough that it makes sense to staff that internally, then we'll help them. We'll try to help them transfer that to internal staff. But I wouldn't see that happening for a couple of years yet.
Richard Moot: And so like, do you usually sort of. Well, I'm sure it probably works both ways, but do you have a preferred hosting platform that you sort of generally like to build your stuff on, or is it usually just more determined by the client? Hey, I'm sure that some might be more opinionated. Some might be like, yeah, we don't have, we don't really care as long as the backend works.
David Foote: Yeah, usually we're the ones that are recommending, a fairly strong recommendation because we've got, you know, our own routines and reflexes, you know, set up to, to work with certain platforms. Historically, we've been very likely to deploy on Heroku. But more and more, AWS is sort of our default. So in this case, we're using the AWS landers and gateway and probably a couple other things.
Richard Moot: Now, one thing I do want to touch on, since you mentioned it, and it's like a fun hot topic and a new personal interest of my own is, you know, working on AI, incorporating AI. I'm just curious, like, how much is it like sort of incorporating or building this for client projects? How much are you actually incorporating it into your own development flows or creative process?
David Foote: Well, if they took away ChatGPT tomorrow, we'd be helpless, I feel. Yeah, there, work. Yeah. And we're shifting more and more to Claude for actual coding, for generating code. But, we use ChatGPT for more general questions and, yeah, we use it every day. All day. It makes things possible that before we would have had to, you know, build expertise over several months to tackle, we've got one client that we're doing that we're doing really intricate camera work on, on the iPhone.
And that's that's fairly rarefied, you know, that expertise. But, you know, the AI is just helping us just tackle it and not have to be scared. Awesome.
Arielle Watson: Yeah. We found it to be really powerful. And as long as you can architect your prompts in a way to get what you need. And then I think David kind of alluded to it earlier, but we've found that, like ChatGPT, has been great for kind of our general questions. But sometimes when we run into, you know, troubleshooting, it can get a little stuck in the loop. And so then the cloud has been really useful for that.
Richard Moot: Yeah. I think one tip that I've heard and I'm, I'm, I'm actually starting to like to subscribe to it is that, at least when it comes to coding, it can be very helpful and sort of like building out certain pieces, features, functions, that kind of thing. But I have found that like when you start wrestling with it around debugging, I've had like so much headache and that I've, that's when I've kind of found like, oh, having my software engineering background has been very helpful in these instances of like, oh, if I just go fix the bug and then like, let it keep going, we're going to go ten times faster. If I try to sit here and be like, hey, can you go ahead and fix this bug? It's just going to keep introducing new ones and new ones and new ones and new ones. And then you're just like, okay, this is not. I'm actually taking more time than if I just wrote the function myself.
David Foote: You definitely have to wrangle it.
Arielle Watson: Yeah. And we found that the more rare the bug is, the less useful, really, any AI has been.
Richard Moot: I'm also curious, like for an agency, has it helped in sort of tackling areas where maybe previously you've been like, oh, we don't. It would take us too long to sort of ramp up in this particular area. But at least I'm just curious, like you use it as a tool or to see like, hey, can we maybe figure out like these, like, like what we would think are like hard unknowns to get enough to say yes to like, a certain type of project. I'm just curious, like how is it sort of like unlocked your sort of view of approaching certain types of projects?
David Foote: Well, I wouldn't say that. It's made more projects accessible to us. Exactly. So with existing customers where we already sort of have the right to, to work on, certain problems, you know, then we're able to expand how much of that problem we can tackle, maybe replacing some libraries we've relied on before. But, for new customers, it's not enough to give us, you know, bragging rights to say, oh, yeah, we can do that, you know, because we haven't done it yet. We just know that we have good tools to tackle it. If we do, it becomes necessary.
Richard Moot: I found like, it's like from a, from a DevRel side of things and just like, sort of exploring things, at least for like when I'm reviewing like code in the language that I'm like, maybe less familiar with, I've even found it, like, helpful to be like, hey, can like you convert this into, like TypeScript or like, explain how this function is working to as if I was a TypeScript developer and it's like suddenly like, oh, okay.
Like I see how these different ways that, like you say, rust is working. It's one it's a language that I would love to like, learn but don't have the patience for or, I mean, I probably should have the time, but I definitely realize I don't have the patience for it, so I've definitely found it like very useful for like exploring like these other areas where I would feel like absolutely no confidence to at least be like, well, I'll at least try and see, like what I can come up with.
David Foote: That's good to hear. I have a dream of taking one of our Swift UI apps and using AI to generate the Android version of it, so we'll see if that works out.
Richard Moot: I would love to know if it does because like, that's like for me, that's like the dream of like, oh, I wrote this example app. I wrote it in TypeScript. Can you go ahead and convert this into Python or Django or some other framework? Like that'd be amazing. And so it would be really, really helpful.
David Foote: I'm hoping it's the perfect excuse to spin up cursor AI, because I haven't used that yet, and I understand it has a little wider context across the project than just, single file.
Richard Moot: And I mean, I'm no, I'm not supposed to probably be, like, going over here, but I don't really care. That, plug in other tools, but I've definitely tried that one out. And it has been extremely useful. The other one I would recommend that you try out is a shameless plug is that we actually have an AI coding agent that's open source called goose.
And it's like it has a CLI and a desktop component. Highly recommend that you try those out. I think all you have to do is you just, like, give it an API key for your line of choice, and it works pretty well. Like you can just sort of say like, hey, I want to like, go do this thing and like, it will actually do what they call like a genetic behavior where it, like, will create files, edit files.
You can like, enable all different types of things. I do hope to, like, get, more people even like coming to build on Square to be leveraging that for like even just hammering out your initial proof of concept. I mean, that's the one thing that I found very useful for, like for AI in general, especially for using these agent behaviors.
It's not necessarily my default. But sometimes if I have a more complex idea that I want to convey to someone, maybe it involves something like having a small web app or a small website, it would sort of like put everything in a way that would better describe what it is that I'm trying to talk about.
It has been really useful for saying, like getting 80, 90% of the way there, where it would probably take me a couple of hours to like, create like a slide deck that would sort of describe this whole thing. And so that part I've actually found to be really handy, just in like a way of using it as a way of expressing the complex thought.
Arielle Watson: Yeah, I would agree. I think that being able to take an idea or even a design and turn it into not just an interactive prototype, which like you could do with Figma, but to turn it into like a working POC in a very short period of time. I think that's going to affect our industry hugely in the next few months.
Richard Moot: And so one thing I do want to bring this back to Square, just for like kind of coming up towards the end of this in in your experience of sort of building with Square for, you know, these initial like, you know, consumer app in-person experiences, I'd love to know like, and this, you know, be honest with us.
What's the good, what's the bad. I'd love to know a little bit more about the overall experience of like, you know, did it make a lot of sense at the beginning. And then you kind of got like a little you stub your toe in places like, I'd love to learn a little bit about, you know, your overall experience with Square and our platform.
Arielle Watson: Yeah, I would say overall we've really appreciated the documentation and the API explorer. That's been huge. And I've been leveraging your guys's postman collection a lot more in the last, last month or so. Nice. I think one area that's been more difficult is with using the SDK. Particularly because we are on React Native and we're using Expo, and so there wasn't really out of the box support for that. So it was a little bit of a learning curve to get them working and that we got there.
Richard Moot: Don't worry. I'm taking very, very meticulous notes here to remind somebody like you spoke to something that's very close to me. Like I've been wanting them to like have this exposed support. I can say that I've been told that this should be working for mobile payments. SDK should be working with Expo. I'm going to put like a little asterisks in this for the listeners, because I've yet to test this personally.
So I have a hard time saying like, yes, this totally works with Expo. But it has been told to me from the people who worked on the React Native, plugin for a mobile payments SDK that it should be working with Expo. I want to say that because like, there's a little bit of caveats when somebody on my team is building an AR tutorial for React Native, which I am preempting, but by the time this comes out, that video will probably be published and you can all watch it and like learn how to use mobile payments SDK with React Native.
And then we hope to follow on with another video on how to, how to make this actually work with Expo, specifically because Expo has been like a dream come true when it comes to making your app and your development process so seamless.
Arielle Watson: Yeah, kind of go more.
Richard Moot: And so I'm sorry for jumping straight in there. I don't know if there was anything else that you wanted to touch on in terms of, overall experience, as you said, Expo. And I got super excited.
David Foote: Yeah, yeah.
Arielle Watson: No, I think those were the main points for us.
Richard Moot: Well, I see that we have come up to our time here. And so I want to thank you both for coming on to the podcast. Big thanks to David, Ariel and all of Blue Rocket, really. And I would love to know if there's anything where folks can go to learn more if they wanted to talk to you about their own mobile app or their own project?
Richard Moot: Where can they find you?
David Foote: You can find us at www.bluerocket.us.
Richard Moot: Awesome. Yeah, yeah. And if you've got a project with Square, we'd love to hear about it. Reach out to us in Discord. Or X at SquareDev. Don't forget to subscribe and check out developer.squareup.com for more. Keep building and catch you next time.