From Chicken to Chatbots: Generative AI in Hospitality with Justin Kaufman
In this episode of "How Many CTOs Does It Take?" podcast, hosts Scott Porad and Brad Hefta-Gaub interview special guest Justin Kaufman. Justin discusses his unique journey from working in health tech to founding the Mount Joy restaurant, where he's implemented innovative tech solutions to enhance customer engagement. The conversation covers topics such as AI-assisted coding, the benefits and challenges of monolithic architecture, and the future of customer relationship management through modern LLMs. Justin also shares anecdotes about his time working with both hosts, revealing different aspects of their management styles.
- 00:00 Introduction
- 00:48 Guest Introduction: Justin Kaufman
- 01:29 Justin's Prepared List of Topics
- 03:49 Justin's Journey: From Health Tech to Chicken Shack
- 06:14 Innovating the Restaurant Experience
- 08:56 Building a Custom POS System
- 14:20 Leveraging AI for Personalization
- 17:41 The Power of Small Teams and AI Tools
- 28:05 Engaging Customers with Interactive Games
- 33:15 Evolution of Chatbots and CRM
- 34:09 Expanding Beyond Restaurants
- 35:17 Technical Challenges and Solutions
- 36:24 Monolith vs. Microservices
- 45:38 Serverless Architecture and Tech Debt
- 49:55 The Future of Small Teams and AI
- 57:05 Reflections on Management Styles
- 01:01:27 Conclusion and Farewell
Resources:
- How Many CTOs Pod: https://howmanyctospod.com
- Scott Porad: https://www.linkedin.com/in/scottporad/
- Brad Hefta-Gaub: https://www.linkedin.com/in/bradheftagaub/
- Justin Kaufman: https://www.linkedin.com/in/justinkaufman/
#TechPodcast #EngineeringPodcast #DevTalks #PodcastForDevs #HowManyCtos #Podcast #Ctos #CtoPodcast #Technology #Engineering #SoftwareDevelopment #Entrepreneurship #Leadership #Management #EngineeringLeadership #TechnologyLeadership #EngineeringManagement #AI #LLM #OpenAI #ChatGPT #CRMSolutions #SmallBusinessTech #LangChain #RAG #AIEngineering #RealWorldAI #AIAgents #CustomGPTs #VectorDB #LLMStack #PromptEngineering #FullStackAI #AIInfra #AIUX #StartupEngineering #TechInnovation #AIForSMB #ChickenTech #GPTInTheWild #AppliedLLM #SemanticSearch #LocalBusinessTools
Guest
Brad: For me,
coding has always been the tool that I've had to pay.
I've figured out how to do it, and I enjoy doing it,
by the way, but I've figured out how to do it because I have things I want to make.
And it's the things that I want to make that are who I am.
Welcome everybody to another episode of the How Many CTOs Does It Take podcast.
I'm Brad Hefta-Gaub and my co-host is.
Scott: Scott Pohrad.
Brad: And today we have a very, very special guest.
Justin: I don't even know. I can't even dare to introduce him.
Justin Kaufman,
you and I and Scott all work together.
But why don't you introduce yourself to the audience?
Brad: Oh, really the only important thing that I have to say is I reported to both of you back to back. And if we don't at some point in this conversation,
do a heads up comparison of who was the better manager.
Justin: I Oh,
Brad: feel definitely. like what are we even doing here, right?
A shack bank of some sort,
right?
There's two people.
Justin: Yeah.
So is that one of the 13 items on your list that you wanted to talk about?
Brad: You want me to share? There's only five items because I only spent about 10 minutes on my list. You want to hear the items?
Justin: Well, before I want to – I do want to hear them, but I want to say to our –
listening audience that Justin is the first person to come on this podcast with a prepared list of things they wanted to talk about.
Brad: Take it seriously, you guys.
I wish I could just show it to you.
Is that something that I can share my screen or share
Justin: You can share your screen.
I don't think it'll
Brad: a window?
Justin: it won't show up in the.
uh ultimately in the audio podcast but uh yeah
Brad: Well,
but you guys are always doing video.
So this is this is my list.
The the best one maybe is the first one,
though, because I don't know if you guys are making bank on this or not,
but incredible.
Justin: we are we we have we have actual revenue yes we have a patreon uh subscriber so
Brad: Well,
let's let's multiply that,
you guys.
Let's.
Let's start marketing the drinking game version,
and we can add rules.
The other ideas on here that I'm particularly fond of are the do dump marry question.
I do feel like we can do a viral meme right there with AI models. It hasn't really been done yet.
Justin: Yeah.
Brad: like i'm thinking of you guys i'm thinking of like six second
viral tech clips because you know that a huge market for the for the tech clips out
Justin: There
Brad: there it
Justin: are there is there is and if we would just figure out how to actually like use our social medias to broadcast some of these things other than just posting them on LinkedIn,
then we might have something.
Brad: reaches me reaches me
Justin: First of all, love chatting with you,
Justin, because you're always such a funny guy and you know how to bring the heat when it comes to like.
like just making things interesting um i honestly think that people would be interested to hear a little bit about what you're working on nowadays because i think that that like a bunch of your little topics here are about ai like obviously ai ai assisted coding ai um you know how we can use these large language models for actual business purposes and you know i don't want you to necessarily reveal too much about what you're working on feel free to tell us
tell us as much as you want to but i know this is an area that you have spent a lot of time on and you're particularly interested in and you're particularly i believe quite bullish on and so to me that seems like where we should start a little bit
Well, this is very interesting,
Brad,
because where I left off in the Justin story,
he was working at a chicken.
restaurant
He was working at a chicken shack.
That's true.
That's true.
so
So,
we
Justin, give us
let's
a quick timeline.
let's set up an update
The
here
three of us work together in health tech.
And then what happened?
like uh i went unibomber and i was like i'm gonna move to a chicken shack in the woods and i'm just gonna i'm gonna shuck and sell chicken out of that little hut and
Brad: The reality is the co-founder of the company that we all worked for for a time and CEO Robbie left 98.6 and it was right around the time when I was starting to feel like it might be a good time for a change or to try something new.
So I was looking and I wasn't finding the next step and I called Robbie.
I mean, it was a weird call to make. I really hadn't spoken to Robbie at 98.6, but I was curious what he was up to.
And, you know, actually, I remember why I called him.
I called him because he left the week before it was supposed to be my first skip level one-on-one with Robbie.
It was actually like a triple skip level. Somehow I achieved like the most number of skips you could do all the way up to...
go up to the top and i was i was actually excited because i was like this is a chance to really like get in with the ceo it's going to be great and then he leaves and he's gone and i was like the real insult here is to me not to him like i got cheated out of my one-on-one and so i called him and i was like i'd still like to have this one-on-one with you and so we so we talked and um uh
I asked him what he was up to. He said, I'm starting a restaurant.
I have, as you know, as you both know, I'm a man of many ideas,
many bad ideas, but also maybe sometimes an interesting one.
And of all of my like topics for ideas, the restaurant topic is one of the biggest.
Like, it's hard for my wife to go out to dinner with me because like the entire dinner conversation is just like, well, if they just introduced a Bluetooth sensor at the hostess table, like they could probably make this more efficient. So it's
It takes a lot of the romance out of dates,
but at the same time, I have all these ideas for how the restaurant thing could be.
modified in a positive way in a more human way actually to make people feel less like strangers when they come back to a restaurant and so when Robbie told me that he was starting a restaurant I just said me too we're doing it together and he was like well I don't need a software engineer to there's no role in the kitchen for that for that kind of work
And I just honestly,
I think he would agree,
I just wore him down. Like I kept messaging him ideas and I was like, this is what we're going to do and this is why we're going to build this.
And, you know, eventually,
you know, he's got a tech background,
obviously. So I think I had a better chance getting in with him than I did with perhaps a pure restaurateur,
but eventually said yes.
And that that led to.
Yeah, just building all kinds of interesting things that you can still try.
It's all still there in the Mount Joy restaurants if you're ever in Capitol Hill or South Lake Union.
Justin: Yeah, and a big piece of what that was all about,
right?
If I recall correctly,
I went and enjoyed some Mount Joy a couple times,
and it was about kind of like this notion of personalization and engagement and sort of kind of trying to use tech in a humanizing way that then made the...
restaurant experience more humanizing.
That's what I felt like it was. Is that a fair characterization?
Brad: Yeah, I mean, honestly,
if I had fed you some lines to read about what we were building and those were the lines that came out,
that would have been perfect.
So you just improv that.
That's exactly what it is.
So for me, I think the main, like I'm a lazy person, I go back to the same restaurants over and over because, and I always order the same thing, just a creature of habit to a fault.
And in all the places I've lived, and all the restaurants that I've picked to be that place that I'm going to go grab lunch at,
I'm always struck by the fact that when I walk in.
The same question gets asked,
you know, have you been here before?
And like, I was there like an hour ago,
I'm still hungry,
I'm coming back for more. It's, it's, it's like you are, it's like you're just getting read a script.
And so I felt like
So there's lots of cool ways that we can change that narrative for restaurants and for hospitality,
maybe in general. And so I'm glad that that was sort of your takeaway from your experience,
because that's what it's all about.
Justin: Cool.
So you exited the chicken shack and then what?
Brad: Well,
not exactly.
So.
As part of the restaurant thing,
I ended up building out a new platform.
whole different story as to why we didn't use toast and build on top of that or square or any of those existing pos platforms but uh but you know the short of it is there's a lot of customized things that i wanted to do and it was not possible to extend any of these sort of out of the box platforms and so wound up really built like everything at mount joy is 100 homegrown there's no like we're not we're not
Not using any vendors for our technology,
which like, by the way, do not recommend that my advice to other people is not to do that.
However,
if you make that mistake and you do that and you stick with it long enough that you work out the problems that are inherent in that approach.
There are incredible benefits and synergies that you get and there's no other way to get them like in a minute I'll explain to you where the messaging platform that I'm working on today.
comes into this but uh that whole thing is integrated 100 into every aspect of the pos into the kitchen system in the back is uh it's a synergy like i just haven't witnessed really before because it's not usually the way people build things so anyway um
Built this platform for the restaurant,
and it took, like, I would say six to eight months before just the basic point of sale aspect of it worked well.
I could tell you some real horror stories about how it didn't work along the way and, you know, having chefs behind me yelling,
when are the tickets going to print?
It was like an episode of The Bear.
It was really quite traumatic as a software engineer.
engineer but um but eventually it started to work and then I got the chance to start experimenting and doing the stuff that was you know really the reason I got into this business and the first the first thing that I tried uh was elaborating on the text message like at Mount Joy you get a text after you place an order it tells you about how long we think it's going to take and um and then you get another one when it's ready to come pick it up right
And I always sort of felt like that period of time is just empty space as far as hospitality, like waiting time at any place, I don't care if it's like a dentist's office or a restaurant,
is just completely taken for granted and certainly not taken advantage of by the company.
Justin: I'd like to note that
Justin referred to the dentist office
Brad: As
Justin: as hospitality.
Brad: hospitality.
Yes.
Well,
you know, my definition of hospitality has definitely broadened since I've started this venture.
But I really do I see all of these places as opportunities to serve people and largely opportunities that we don't really do a good job serving people.
Justin: So you're waiting for your sandwich.
Brad: You're waiting for your sandwich.
I thought maybe people would be interested in having a conversation with us during that period of time.
And so I started with a small thing,
actually.
somehow hooked into our juke to our speaker system where we play music at the restaurant and i figured i'll see if people want to make song requests like it's always more fun to be at a place when it's your kind of jam going on right and everyone did it like uh as soon as they got their text telling them that they could do it people did it and it was i don't remember if this was always part of it i'd love to say it was always
It's always part of the plan or if it just occurred to me after the fact, but there was this beautiful thing about that feature that now I know what kind of music this person likes.
The next time they walk in the door,
they don't need to ask for it.
we can just start putting on the music that they enjoy and so it was like this magical thing where like my goal was just to make people not feel like strangers the second time they come to to our place and like this just this accomplished that so easily and people noticed it like they were like people like the messages early on from people were just uh number one they were like
shocked and delighted and incredibly complimentary of what they were seeing and the other thing I would say about it it was it was sort of sad that that was the bar like it was so easy like you don't even need a messaging system that to accomplish that like you just write down like if you have someone coming in all the time so anyways you know that's not that's not something that I'd seen done and it's not something apparently anybody who came to our restaurant has ever seen done and so
That was the first little bite of the apple there.
And then it sort of evolved with anything else I could think of.
One of the nice things about being a tech organization and product organization combined of one person is I can try everything.
Like I don't have much standing in my way of friction. And so I did.
Justin: Right about this same time that you were doing all this experimentation with.
with personalization and you know you kind of found this magical moment of um just the the fact that just knowing the person's favorite songs gave them this sense of connection to the hospitality that you guys were providing right about that same time that's kind of when the llm boom started to really happen and i have to imagine that that that was a nice serendipity
Yeah, no,
for sure.
I think, well, as you probably know about me, I'm the earliest of the early adopters. And in fact, I had actually been using GPT, I think it was GPT2.
Brad: When we were all at 98.6, and there's, I confirmed it like a couple months ago, because I was just curious,
there's still a message in the data science channel where I'm pitching as a non-data scientist, of course, we should use GPT-2.
I like have a whole demo of how it could work. And so I've been following this stuff for a while.
But it definitely became better over the last, obviously, over the last couple of years.
And so, you know, it occurs to me, I have this messaging platform.
Why would I ever even send a single canned transactional text,
period.
And so.
Once that sort of light bulb went off,
everything about the conversation changed.
In fact, if you go to Mount Joy today and place an order,
your text with Mount Joy doesn't look like a text thread with a company.
It looks like a text that you're having with,
I wouldn't call it like a friend,
but it's somewhere between a person you know and a company instead.
So every message is personalized and it uses the entire conversation history to inform how it acts and what it does.
And there's all these cool things you can do with that.
Like we ask people,
for example, how they like the food at the end of their meal, like how their experience was,
which,
by the way, is how we are able to.
get more positive Google reviews,
which is very important for restaurants because our LLM can rank and determine what the likelihood of this person giving us positive feedback is and then we send them a link.
But beyond that,
there's just all this information besides the music and their feedback that we're getting on a regular basis from people who are just talking because they're waiting.
with us and we operationalize that like somebody will say after one meal you know I loved the
the chipotle lime sauce with the fries that was so amazing so the next time they come you know we'll we'll give them a free sample or a sample of sauce on top of their order just so that they can try the other ones and stuff like that and there's all these surprises that get baked into the experience because we have this conversation that you know extends over the lifespan of the customer history
So, the LLM is the only way that's possible.
You know, being able to take all this loose text content and actually understand what you can do with it until,
you know, these modern APIs became available,
you could not,
it was not possible to do what we're doing.
Justin: Yeah.
So I think that one of the things that's pretty cool about this story,
Justin,
and I think it's.
It's useful to kind of unpack this is that you you're really like you said earlier a few minutes ago, you kind of said like one of the reasons you've been able to move as fast as you have is because essentially you're you're a small team.
I don't I don't know how big your team is at this point. I don't know if it's just you or if you've got a couple other folks on the team as well, but you're small and you sort of like unencumbered unencumbered by.
tech debt unencumbered by process maybe what so so tell us a little bit about that like you know you know a small dev team what's that experience like and maybe contrast it to where you and Scott and I worked together most recently which was health tech company with hundreds of engineers and and lots of process and bureaucracy behind it
Brad: Well, I think you guys both knew at the time that I was frustrated at 98.6 often.
And I wouldn't say that this was a pervasive feeling there necessarily, but given my sensibilities,
I often felt like, why aren't things changing?
Like, why isn't the ball apparently moving?
And so, you know, I think the thing that I've learned over the past several years since then is the bigger the team gets,
the slower you're going to go and there's nothing you can do to change that. That's just human dynamics.
And you asked if the team is small or just me. And the truth is the team is just me.
Like you don't have a budget for a second.
technology person in the restaurant business and so um yeah you barely have a budget for the one um and so the the reality is uh it's just been me and that has been uh as fast i think as you can get now the the interesting thing for me along this story is when we started
There were, you know, it hadn't been like the, this was before ChatGPT was released. Okay.
And so while there was some stuff out there,
it had not become mainstream and coding tools certainly like there was Copilot that could sort of help you auto.
complete some of your, you know, enum switch statements and stuff like that, but you didn't have AI writing code,
right?
And it wasn't that fast.
Like, it took a while to write some of this stuff.
I remember I was writing our, like, iOS and Android guest ordering apps right up until the day that we opened.
And it didn't work that great for that reason.
And so...
Fast forward to the release of ChatGPT and then fast forward a little bit farther to a tool like CloudCode,
which I now use pretty much every day.
This is a true story. It just happened over the past week.
We've had iOS and Android guest ordering apps since the restaurant started,
and we've had an iOS based staff.
platform i always wanted like the staff whether you're working at the restaurant on a tablet or you're at home and you have your phone i wanted people to be able to have the entire restaurant at their fingertips like in their pocket and so i built that on ios but i'm not as fast of an android developer and i don't particularly enjoy it as much just because it's not what i'm used to and so i never got around to doing it and at some point in time like the person who needs
who needed it most ended up being someone who was never going to switch off of Android.
So this guy Antonio,
he's the president of Mount Joy,
has for the last seven to eight months been operating,
needing to go into the restaurant onto one of our tablets to access our data,
which is crazy.
And I know you're probably thinking, why didn't you just build a web thing?
I'm going to push that question aside and answer the question that I wanted to answer,
which is, what did I do to get that Android thing off the ground?
Last week, I put Claude code on the job of taking the iOS app and creating the Android variant,
and it took two days, and it's done, and it's out.
And so when
Scott: wait it
Brad: I...
Scott: took you two days or it took claude two days
Brad: It took the two of us two days.
Scott: The two of us.
Brad: Yeah,
Scott: Just
Brad: well, it's
Scott: for the two of us.
Brad: it's interesting because
Scott: We
Brad: it is
Scott: can make
Brad: the two it it
Scott: if we try.
Brad: is the two though like you're i've heard some of your guys clips from this podcast and people come on and talk about ai with you know the whole range of opinions right like on how good it is and uh and often i hear people say well you know it doesn't get it all right like you need a human to moderate and um my hot take on ai
Is that it's quite, quite a bit better than any of the devs who are talking about how it's not quite that good.
The challenge today is in how you're using it.
When I say I was able to get Claude code to transform the code base into Android in two days,
I think.
That's actually where my background in writing native mobile apps was helpful because it's an incredible technical code or it can come in on like a cute section of your code base and just do things probably better than you.
That's my opinion.
will struggle to do something like a big task like let's refactor an entire code base without the right direction and it doesn't get everything right and so it would have taken two weeks it could have taken forever had I not had some background in what I was trying to have it help me do and so I think it's it's you know we're talking about velocity and the bottom line is now I go
faster than I think I thought ever possible.
And it's scary.
Scott: You know, I think there's something interesting about your situation with relationship to cloud.
You've been the only engineer working on your app.
So when it went to go make an Android version for your iOS version,
it was kind of probably a pretty consistent set of patterns within your app.
versus if you and I and Brad were all working on it, we would try to align and follow the same patterns, but I'm sure we'd all do stuff differently, right?
You asked, I saw in your questions earlier,
you asked about tabs or spaces.
I mean,
that's a little pedantic example,
but like I wonder if the AI was able to be especially effective in a world where only one person wrote the source because it was able to interpret that more easily.
Brad: That's an interesting question.
Scott: Here's the other thing I wondered,
totally different than AI,
this comes back to Mount Joy,
which is not only were you kind of the whole, the truly full stack team.
what you are doing well maybe i could be wrong it seems like mountain joy actually makes its money doing something else which is selling chicken sandwiches or other types of food products i'm not sure the whole menu i've never been to a mountain but maybe i'll go today as a matter of fact and um i wonder if having the technology be in a you know
In addition to the core business actually gave you gives you in addition to being a solo person gives you some freedom to experiment maybe in ways that if it was the business it was the core you know companies feel more apprehensive about that experimentation.
Because the consequences were different. If the music experiment didn't work,
the consequences were very low, right?
Brad: Yeah, yeah.
I don't think it existed in the kind of silo that maybe I've depicted it as being in or the way that you're framing exactly.
Certainly not at first.
The way the restaurant evolved,
like all the founders,
myself included,
we were all working pretty closely together and we
Scott: It was decentralized.
Brad: had.
It was. And I think the things that I owned really were product,
non-food product and tech.
And as time went on, it did, and the team changed, it did sort of evolve into more of an isolated thing. But just to give you an example.
One of the things that really moved the ball in a big way with this platform,
maybe in the biggest way,
was our marketing team was frustrated at our lack of ability to get email addresses on our website.
Yeah,
most people just don't go to a restaurant website.
And if they do go, they're there for one reason and it has nothing to do with giving you an email address.
And
Scott: What's the reason?
Brad: check in your menu.
I was going to go a different direction with it, but I think you're right,
Brad,
that's that is the answer.
The.
The truth is, personally,
I hate giving my email address ever in any circumstance,
and I was very protective of all of the sort of levers that I had control of.
in terms of like asking people for it. I resisted the entire way from the very beginning asking for an email address at checkout,
even an optional one where you can not check the box and not put in your email just because I hate that experience and I feel like ordering food should be about ordering food.
It shouldn't be about like ordering food and opting into marketing.
So anyways,
this is an example of how we were able to move fast, but how we were actually a very integrated unit.
Robbie was like, you need to sit down with Carrie.
Carrie was the person helping us with marketing at the time. She's like, you guys got to sit down and just figure this out because like marketing is frustrated. They can't reach, they can't talk to people and you're obviously gatekeeping quite a bit in, you know, in the name of a good cause, in the name of a good consumer experience. But even so, there's more to running a business than the customer experience.
And so we met and
That led to this idea,
which has gone big,
I guess you would say, of a game.
One thing I had been thinking about doing anyways as my next sort of like random idea was putting a leaderboard on the screen at the restaurant,
like unlike 98.6 or really any other.
kind of business restaurants like this incredible thing that exists in a neighborhood in a community it's a physical space there are very few examples of businesses these days where people willingly come in and even stay to experience your product like that's part of the thing and uh and so i was always looking for an opportunity to try to like
Build a community around that place.
Make people feel like they're part of something more than just a discreet transaction,
eat and leave.
Not to mention one of the challenges restaurants have is you come in and you eat and then you're not interacting with the restaurant again for another month.
So all that time in between,
there's no touch points,
there's no,
the brand is not on their mind at all, etc.
So I had this thought I would do a leaderboard with a game and the leaderboard would be on our TV screens when you walk past a mountain joy and Capitol Hill,
our garage is open and you can see the screen from the sidewalk.
And so I was like, if I just put like an arcade style leaderboard where it says that the top players, I don't know, I'm not even going to explain it beyond that.
It's just going to be that people,
people are going to come in and they're going to be curious because people like a game and they're competitive.
And, and if it says neighborhood leaderboard on it.
and they're going to be like well i live in this neighborhood why am i not on the leaderboard and this was another you know this was another dart that i threw and by the way there were a lot of darts i threw that did not hit i'm just not talking about those ones because i want to paint myself in the best possible light on your podcast
But this start did land right in the middle. And we put this up. And the reason I pitched this in the context of the marketing meeting with Carrie is because I said, after they play this game that we're going to do by text, because that's what we're going to do everything by,
that's our app.
We'll ask them for their email address if they want to put their name on the leaderboard and we'll actually incentivize them to do it because they'll be able to use their score as a discount at the store.
And better yet, if they make it to first place, they can eat for free as long as they.
maintain first place
Scott: Wow.
Brad: so again these synergies that you can do because the point of sale is my platform and it is completely in the same code base as the messaging stack can do anything right and so all these synergies existed we built this system and I think a week later
launch the game and you guys you guys should try it sometime it's uh it's a word riddle that I write every single day I've been doing it now for about 370 days so one riddle each day and it goes out in the morning to people who subscribe so every morning we send out about 4,000
right now text messages containing this game and people play it and so starting around 8 a.m if i look at like the messaging sort of dashboard it just starts going absolutely berserk and all those people have given their email address and what's even better about it is the aftermath of the game after you solve it
I write like a crazy rant,
sort of like what I'm saying, like the words that are coming out of my mouth right now, just like pick a random topic and that's what I write a paragraph about.
And that goes out in the post solve blurb in via text.
So people get this blurb and then they respond to it.
and have a conversation about it by text,
and we learn more about them.
Like the other day, I did a puzzle where the answer was interstates, like interstate highways,
and I listed some of the interstates that I've spent the most time, you know, sitting in traffic on,
and everyone wrote back, and we know like everyone's interstates where they travel.
And now when they come back, that's part of the conversation that we can give them.
And part of the customization that we can give them in the restaurant. And so for me, the email address was like, how do I get how do I check this box so that like everyone's happy?
But it turned out we don't use email address at all.
I think we still might even ask for it as like a relic of that original idea.
But we are having actual conversations 24 seven with thousands of people and some of them.
aren't even customers yet they just see the thing from the sidewalk and then they become customers because our bot gets them over time so it's been been crazy yeah
Justin: It's so interesting to think about. And obviously this is sort of been this is this is not going to be a novel idea that I'm saying,
but it does feel like the the weight that the one of the pieces of magic that the LLMs did was this notion of introducing.
a chat like really making a chat bot really actually a viable thing and um i mean we've had chat bots you know one of the earliest computer programs you know liza or whatever was this notion of this really primitive chat bot but
They're so much richer now with the power of LLMs.
And so it's really,
it's a fun story,
Justin, and it makes sense that you've, you know, you've been this, you know, you had a use case that was really appropriate and on
Scott: Yeah.
Justin: target and you've run with
Scott: Yeah.
Justin: it.
Scott: I mean, you're taking that notion of CRM, customer relationship management.
To a new level to really that to the AI to the LLM the AI level right and I'm listening to this and thinking about this
is this is going to be the table stakes for everybody.
Right.
Justin: Yeah,
and presumably that's the idea, right?
Like, is that where you're at now is it's more than just the platform for Mount Joy?
Are you kind of taking this to the next level to take it to other hospitality providers like my local dentist?
Brad: I mean, if we can't get your local dentist, then there's no business here at all. But I believe that in the future,
everyone will be.
Having text message interactions with companies.
They're not going to be looking up like a customer service number on a website and hoping that they can reach a human being.
It's not people don't enjoy that.
But people we have proven with the Mount Joy model people do text and they they like to do it.
And so I'm not just for complaints.
So yeah,
the idea here is, you know, we've been working with some potential early partners to
That aren't restaurants,
by the way, like a professional sports team and
Scott: Yeah,
Brad: and other restaurants as well.
Justin: Yeah,
Brad: But yeah.
Justin: obviously, it's like like Scott said,
this is like customer relationship management.
Everybody's got a customer wants to engage that that and grow that relationship. Makes sense.
I love it.
That's very cool.
Scott: Can I ask a different question, kind of a different topic,
Justin?
Brad: Yeah, I love it
Scott: You mentioned you had, you know, an iOS app,
an Android app.
It sounds like there's some stuff for the kitchen,
a point of sale system, all these different parts.
And I was thinking about two different things, and I'm just curious if you would share about them. The first was...
Is that all a monolith?
Is it one big system?
Or how, what is it?
Justin: I knew Scott was going to go here.
I actually wanted to ask a very similar question.
Scott: And
Justin: Go,
Scott: another
Justin: Scott,
go.
Scott: was,
Justin: This is great.
Scott: you know, at the beginning when it was just you and there were all these different parts that had to get done.
I'm just wondering, and this is a little bit for maybe other people who are listening or thinking,
I want to start my own thing, like, how did you tackle that problem? Because it could have, I would imagine maybe perhaps it felt a little overwhelming.
And I'm wondering just how you tackled that problem. Those are kind of the two thoughts I had about this or questions I had about this.
Justin: And
I want to throw a little bit of flavor.
Let me throw a little bit of a sauce on top Let's of Scott's
Scott: make a
Justin: little
Scott: if you will
Justin: paprika on top of Scott's question.
You know, one of the things that.
we often run into as engineering leaders is sort of like dealing with the decisions of yesteryear.
And so Scott's asking the monolith question,
but I'm kind of curious,
Justin, you know, along Scott's line of questioning,
how are you how are you making sure that you're not digging yourself into a hole for the future?
Brad: I mean,
the honest answer is I'm not like nobody is every what you just said doesn't change.
It's an endless cycle of people making decisions and then new people coming in and hating on those decisions.
And maybe that's the way it should be.
But I can tell you the decisions that I made and I can tell you why I made them. The.
I think for context,
the thing that I was working on right before I started this was the 98.6 code base. And I remember my first day there.
And let me let me start by saying I have tons of respect for everyone I worked with there.
And it will be very easy for someone in the future to come and say the same thing about my code base as I'm about to say about this one.
A hundred percent.
But you remember the things that were hard, right?
Like I remember my first day,
I was given the GitHub repo to clone and told,
let's start getting familiar,
build the project.
First,
it was hard for me to clone the repo because I didn't have the right,
you know, token,
like even just these small administrative things that people,
you know, take for granted because you just do them.
They're not easy.
They're not easy steps, even for a season that like it takes time.
So it took me time to figure out how to get the repo onto my computer.
And then it took me the first several days to get the project. I was an iOS engineer then to get the iOS app to build.
in Xcode there were all these dependencies and all these things that were you know they were done in the name of efficiency and you know code safety and formatting and all that stuff right but it took a ton of time just to get all these dependencies to work in the environment that was my work computer and so I remember looking back at that when I started this thinking
I don't know what the tradeoff exactly will be from this,
but what I want to have be the result is that when we bring on our first new engineer,
it takes him 30 seconds to start building and running and working in 30 seconds.
If it takes longer than that, then that's the failure of the setup.
And as a result, I.
You know, the short answer to your question,
is it a monolith,
is yes.
I am a huge fan.
Scott: So Justin,
you love a monolith?
Brad: Yeah,
I love a monolith because if you separate things,
then they drift apart.
And a monolith is a, I guess it's a pattern really that enforces keeping things moving as one ship.
It is easier for me to preach the benefits of a monolith as a one-person team.
I don't have anyone complaining about the potential pain points associated with having a monolith.
Maybe I guess most of the people who listen to this know what a monolith is,
but I'll just add some color to this, at least in my case, a monolith is having...
all of the projects,
all of the code bases for the Mountjoy ecosystem in one GitHub repo.
That's what I'm talking about at least.
And, you know, at the beginning,
there were two priorities that I was talking about.
One of them was I wanted it to be.
super easy for the next person who comes to start you know whether or not they like the code that they see uh was was another question but i wanted them to be able to jump in easily um and i think that one is still the case uh you know whoever else looks at this code can still use it um
Scott: Hey, Justin,
can I ask a kind of like a nerdy?
like in the weeds type technical
Brad: Please,
Scott: question
Brad: yeah, yeah,
Scott: for
Brad: I never
Scott: you but
Brad: get to like talk
Scott: clearly
Brad: to people.
Scott: clearly you have like you've got your app you've got your mobile apps and you've got this back-end service that's doing something and then you've got this other app which is this point of sale app so you definitely have different components to it it makes sense you are in a monorepo that that makes a ton of sense but how do you
How are you solving the problem of like essentially component compatibility,
right?
Since you're not able to, you obviously can't like snap your finger and get your latest iOS app version released like because of the nature of Apple and its,
you know, guards that it's got up.
So.
I'm just kind of curious, like as far as like thinking of it like a monolith versus thinking of it as at least these components that have to interact with each other in a logical way, I'm just kind of curious, like what's what's your take on that?
Brad: Well, first of all, I don't do that many releases of our guest app.
In fact, I had very high aspirations for what the guest ordering experience on a phone would be.
I had lots of like crazy thoughts about the way it would work, how we would change the landscape for that.
And the sad truth,
I don't know if it's sad, it is the truth though, is people don't want to download a restaurant app.
Like people want a couple social media apps on their phone and then a couple utilities and that's all they want when it comes to apps.
And so people would rather use the tablets that we put in the store.
The upshot of that is I don't have any delay on releases.
In fact, I built out this deployment system that lets me,
I can make a code change right now and in 10 seconds.
25 tablets,
eight Apple TVs,
four Macs, this whole ecosystem of basically iOS,
macOS, and tvOS products,
all update with the same thing,
which brings me to the other.
decision that I made that was related to this monolith one code base within the monolith to the extent possible obviously it was I did not make the trade-off on like a react native kind of thing to do Android so Android is its special flower in the code base to some extent but beyond that there are only two code bases there's one that has everything like
On my phone,
I can open the same screen that is running the TV that has the leaderboard on it that I told you about,
because it's all the same app, which means that I'm sharing all the same code across the entire thing.
There's never.
a single thing that's duplicated whether it's like a design asset or a functionality of some sort when and what's cool about that is i told you we send like a text message with this game right every morning it's the same code
that puts that lets me program the game in our ios app that generates the puzzle that goes out on our back end um so there's just this incredible as i've said i love these synergies that you get from having one thing um and not only do you get them when you have one platform in a restaurant between like the back of house and front of house and customers and all that but you definitely get huge gains uh in my experience by doing it this way
as a developer and so the only two code bases that I really work in for like if I named all of the targets that we build products for at the restaurant you'd be surprised that like the quantity it's like there's there's a target that does
QR code scanning for just just for that for like we have a this is actually sort of cool we have a camera that sits above the counter where the expo person the person who's you know the last line before a customer gets an order is working and if they slide a tray that has the receipt on it
under this counter in a certain zone it automatically marks the orders ready so it's sort of like you know sort of like a sliding something past uh the grocery checkout um but just it's in the air so like they don't have to think about it and there's a whole app just for that but it's part of the same
staff based app target and so it's made it very efficient to make changes and anytime I change something it you know the benefits of one change actually are benefits to other parts of the app rather than potential pain points or you know bug
that that would surface uh there's a lot of tech debt too uh i don't want to like paint any like overly miraculous pictures of what i have uh i think the biggest tech debt that you would see if you looked at my code base is just the result of laziness and going fast um like and i would say that's particularly true in the back end so the entire back end stack is serverless
I made a decision at the very beginning that this is the way that this code base can grow alongside clients without A,
breaking all the time and with the ability to scale infinitely and me not having to learn how to do that with like a machine.
And so the entire code base is a bunch of lambdas and honestly the
The thing I'm most proud of, and I'll stop after this, of all of the things that I've done, it's just funny, I never get to talk about this. There's no one else on my team who has any interest in what we're discussing here.
But when I make a change,
I press a button.
And if I'm really confident about that change,
I press a different button and it promotes it to all three environments at the same time,
which honestly I do that sometimes because I'm a bit of a cowboy.
But when I press that button,
it commits the change that I made to the repo and then a GitHub action runs and the GitHub action when it's done and it takes it about 10 minutes to finish.
It deploys every single thing that we have,
every single place.
Like if you were watching on the surveillance cameras at our restaurants,
you'd see 25 different screens all update one after the other.
You would see, if you look at our AWS dashboard,
the entire backend redeploys. Even the things that weren't changed,
we'd redeploy the entire CDK template with each deploy and all the logic is in there.
So there's nothing to like there's no questions to ask like I redeployed my services should I go check the server either the server was working or it wasn't but
These deployments aren't changing infrastructure anymore.
I'm just adding business logic at this point. And so it's incredibly powerful and it makes me it's made me wonder why, you know, everyone doesn't use serverless for everything.
But that's the pattern to answer your question.
And I've been pretty happy Wait with it.
Scott: a second. How is the serverless tech debt?
Brad: The serverless. Oh,
right.
I did bring it up in that context.
I think that there's two ways that it's tech debt.
The main way is that I am.
probably a shitty back-end architect.
This was my first back-end that I've worked on,
and I chose an architecture that I also was completely unfamiliar with,
but liked the bullet points on.
And so if you look at the way that it's built, like there are things that I know that are wrong that I've just decided are acceptable,
like whereas in the iOS code base there's no...
There's no duplicated code.
If you actually went on our AWS dashboard and looked at the code inside of the Lambdas, for example, that run,
it's I mean, you would you would vomit. It's just like the same huge chunks because I'm like importing a method from here there and I'm not using Lambda layers to do it. And all these things that like are the right patterns if all you do.
It's back end and serverless and that's the way you do it I have not done those things and they're not that hard to do.
I just haven't done them.
So there's a lot of debt.
Justin: The other thing, Justin,
you said that we kind of blew by, which I think is the most extant thing we might have had in this entire podcast.
We're on about episode 15 now,
I think. Isn't that right,
Brad?
16,
Brad: No
Justin: 17, something
Brad: way.
Justin: like that.
You said.
Tech debt is the result,
well actually before I say this,
we're always looking,
as an industry we're always trying to find a definition for tech debt,
right?
What does tech debt,
what does tech debt,
you said tech debt is the result of laziness and speed,
I think is that what you said?
Brad: Yeah
Justin: Tech debt, that's it,
tech debt, that's it, that's all it is. It's the negative results of laziness and speed.
Is that what tech dead is?
Brad: I think so.
I mean, it's intentional laziness. It's not like you're just accidentally lazy,
but like you want to go fast. And so you know that you could go slower
Justin: No,
Brad: and
Justin: some people are
Brad: do something with a pattern,
but yeah,
Justin: just lazy.
They just don't want to take the time to do it.
Brad: that's true.
That's true.
It can be that too.
Justin: Laziness and speed.
Scott: You know, it's funny,
Justin,
there's a part of this story where I'm like.
I mean,
I'm super bullish on AI-assisted coding,
and I think that there are going to be more and more businesses that are essentially like one developer that knows how to,
knows what they want, and just builds their own version. So there's a part of the story of this platform.
that it's it's kind of of the time in that it's possible because of the time not only because of the sort of like engagement that you talk about being very much dependent on llms but there's this other part of like you saying yourself that like you're so much faster um in this environment by yourself cowboy up
Coding with you and your your cloud code,
you know co-pilot
co-worker and
You're unencumbered. I think we're gonna hear more and more and more of this
Justin: I have an insight about that to add to that,
Brad,
that I've been actually thinking about for this whole call.
The insight is that Justin is also the product manager,
that he has the talent to, he had...
both the vision and the talent to be the product manager and the engineer and i was thinking back earlier just and made this comment about how well you know when teams get bigger they get slower it's just how it is and i was thinking about as we were talking i was just kind of thinking that is true but why is it that way and one of the thoughts that came to my mind as i was thinking about it earlier was
Is it that they get slower because there's more engineers or do they get slower because there's more product managers?
And I think, I don't know if it's one or the other, but what I think the combination of it is like there's a tremendous expense of trying to understand what some other person wants you to do.
Brad: That's
Justin: Right?
Brad: it.
Justin: That's it.
So it's just a, I don't know how,
and then when you multiply that to say a dozen, you know, many product managers and many, many engineers, and it probably becomes like a exponential complexity there in terms of getting everybody to agree on what we all want, what we all want to do.
And I think maybe that's where some of the slowness comes from.
Justin has the vision and the talent to be that person together.
Scott: yeah 100 that's gotta be it that's gotta be i mean i just think about like all the teams i've been on and even the team i'm on right now which we're super small we only have one product owner but but you know just explain just getting everybody to agree what it says on the card like what wait what's this what's this mean exactly and it's like it's you literally it's like the word like
Like we can spend all this time and energy trying to make those words right and that's all wasted time because for Justin,
it's like he has the idea.
He knows what it is. He doesn't need to explain it to anybody and he just gets to build it.
Justin: Highest fidelity communication,
just right in your own brain.
Brad: Yeah.
Yeah.
I mean, just to offer a counterpoint to all that.
Thank you for the kind things you're saying, but it's.
I do believe that like the best things are built by groups of people coming together.
And I think that there is a good question to be asked and answered that Scott was going at before,
which is, you know, is it necessary that they get so much slower as they grow?
And I think you absolutely hit on the reason they're slow is because as the distance between the idea.
And the way that you execute that idea grows,
processes come in and take time. And that's what it is.
But I think if there's any maybe if there's any sort of insight that is translatable beyond sort of my weird situation,
because this is obviously not the norm at most companies. I think it's that.
Like for me, coding has always been the toll that I've had to pay to build things.
I'm not actually so I'm so happy to be here,
but I'm really not like at heart a technical coding kind of guy.
I've figured out how to do it and I enjoy doing it, by the way, but I figured out how to do it because I have things I want to make.
And it's the things that I want to make that are who I am.
So I really am like a product person in a lot of ways trapped in the situation where no one else is going to do it if I don't do it.
But I think the answer to the velocity problem as you get bigger is number one, don't get that much bigger,
especially today.
It doesn't make sense to me.
I had this idea that the optimal size for a product and engineering organization,
first of all, which I think should be the same thing, is five to ten people.
And I think five to ten people can probably do a faster and better job if they're the right people than big companies with big product
Justin: Do you
Brad: and engineering
Justin: mean
Brad: teams.
Justin: a two pizza team?
Scott: Ha, ha, ha, ha, ha.
Brad: Yeah,
I would say so,
like, or a two chicken sandwich operation.
Yeah,
it's like.
The smaller you are with the things that you need and the only things I think you really need as time goes on are the right ideas, people who are like attuned to the market and know how to sort of steer a product in the right direction.
And some product managers are that and some of them aren't.
If you can find somebody who's that and has, you know, some idea of how to make the thing, that person is your,
like, is a person that.
that can do the job of a product person embedded in an engineering team much faster.
And so I think it's like the tech company of the future,
there's going to be a much higher value on the people who have the ability to come up with the creative ideas,
I think, because the stakes in terms of building those things is going to come down and it's just, it's already lower now than it was.
Yeah, it's going to it's what I've been looking forward to for my whole life because it's always been hard for me to put things in my head into the world. It's just like I can't do most of them. I have that list, the restaurant thing I was lucky to have a year to work on, but there's lots of other ideas in that list. And so, yeah, if you're interviewing for new candidates,
I think, you know, you might want to spend less time on algorithms.
and more time on having them sort of fill their their their process on how they think about a product evolving because yeah if you have to sit there explaining well this is the card design and it's got a corner radius on each side like that's that's got to be a waste of time at this point right okay
Justin: And very interesting.
Okay,
so Justin, we have to end on this one last question.
You said earlier you reported to both Brad and I.
Now tell us why was Brad a better person to report to than me?
Brad: Scott, what a humble question you've just asked.
And that's the reason you were the number one, Scott.
No,
you guys were both great. Like, I'll say this.
I learned a lot from both of you in different ways.
And you guys could not have been more different managers.
And I will give a 30-second quip about both of you.
Justin: Oh, great.
Scott: All right.
Brad: Brad,
and these were both things that happened at the very end,
before either you guys left or I left.
Brad, toward the very end of my tenure at 98.6.
I came in to our one-on-one and I said,
but Brad,
I can rebuild the whole iOS app.
Just give me a week.
and and and like I was so excited because I just like learned about Swift UI and I was like it's gonna be so great and as I said the words I was like I I'm looking forward to hearing why this is not going to be something he's going to let me do and I remember his answer was okay try and I remember at that moment thinking like this this could be a horrible decision like this is what I need to be
to be checked on by a manager but I also remember feeling like a certain kinship like this person just clearly knows who I am and they know that like this this could be a roll of the dice that has absolutely no value in the last month that I'm spending at this company but but it taught me something about I think risk taking and really knowing knowing your customer like it's very difficult to be a good manager if you don't
know the way that person works and how to get the most out of them and so I thought about that
I thought about that a number of times and
Scott: Scott Well,
Brad: I it's
Scott: think you're telling that story in a manner that makes me look pretty good, so thank you.
Brad: it is good it is good I because I don't think you did that in the same way with other like I think you played to other people's strengths as well so it was uh it was like the restaurant is you know personalizing a service so with you and Scott uh it was longer ago but um
And this was your last day on the job at 98.6.
And I was reporting to you at that time. And we had a one-on-one of the books. And unlike Robbie,
who, you know, cut and run before our one-on-one, you were still on the books for that day at our one-on-one and you came.
And I expected, you know, us to be like just having a friendly goodbye and being like,
thanks for, you know, being a good collaborator and manager and all that.
You didn't have any time for that.
You sat down and you opened a spreadsheet.
And at the time, I had been concerned that something,
a project that I was working on in 98.6 as a principal engineer at the time wasn't going to get resourced in any way beyond me.
And I was very stressed out about that.
And you had put together a spreadsheet that had specific numbers.
This was, again,
this was your last half an hour.
on this job, like you may as well have been gone.
And you put together the spreadsheet and you talked me through how the numbers worked and how to present those numbers to other stakeholders because they painted this picture that showed that the delta with the system I was working on saved, you know, X number of hours and it was a very impressive picture that you painted.
And like, you know, I was it was just.
I don't know exactly what like the nugget of wisdom is here,
but there was something very powerful about somebody.
just being absolutely there until the very last minute and uh yeah i think about that quite a bit too so you both were great
Scott: I appreciate that.
Can you remind me the name? I remember visually that system you were working on, but I can't remember the name of it.
Brad: it was uh flow i think we call it
Scott: Float?
Brad: i think it was flow flow
Scott: Yeah.
Brad: rider yeah
Scott: Flowrider,
Brad: that's that's
Scott: right.
That's right.
Brad: right and yeah uh and it got resourced after that i don't know i don't know how much of it was uh
the the spreadsheet but it certainly didn't hurt nice
Scott: Yeah.
Brad: well this was a super fun conversation just it was great to reconnect with you uh loved hearing everything you all the cool exciting stuff you've been doing and thanks a lot man i really enjoyed this time yeah thanks for having me it was fun
Scott: This was super fun.
I'm going to go get a chicken sandwich now.
Brad: Yeah, you should.
Have fun. All right. Thanks a lot,
Justin.
Justin: This episode of How Many CTOs Does It Take Podcast was edited by Saffron Eppigal.
Our theme song was AI Generated by Brad.
Please follow us on all the social media platforms at at how many CTOs pod you can find us on YouTube LinkedIn Instagram Facebook threads X tick tock and patreon or at our website at how many CTOs pod calm and remember to rate review and subscribe on the podcast platform of your choice thanks for listening