Yay, we are officially live.
I'm so excited for today's conversation.
I feel like I've been saying that every day,
but they just keep getting better and better and better.
Today, we have Mike Bifuco. Did I do that right?
I'll take it that counts.
Yes.
Okay. You correct me.
Then tell us just a little bit about you.
Who are you and what are you doing about it?
No worries.
Yeah. Hi, Tessa. Thanks so much for having me.
My name is Mike Bifuco.
I am a CTO and co-founder of a company called Craftwork.
We are a Y Combinator S23 company,
and we're a tech connected vertically integrated painting company.
We're a tech company that paints homes and buildings and businesses.
We've been in business for about two years.
We went through Y Combinator's summer batch in 2023,
so about a year ago.
We have been putting together the dream of painting homes and
building a home services brand and experience that lives up to
what the average person should expect from something in 2025.
The way I usually say it is that most,
if you look up a paint company in your neighborhood,
it's very likely that most of them wouldn't have a website,
let alone a person that would respond to you.
We try and set the bar really high.
We do interior and exterior and cabinetry and specialty painting.
We're based in Charlotte, North Carolina,
and our plan is to expand across the US eventually.
Right now, we're focused on building a platform and a product and
a brand and an experience that we can scale.
We have a team of about 50 people total,
half of which roughly are painters.
That's an interesting difference about our company too,
is that we employ our painters directly.
Our team of painters are incredibly talented.
They're super skilled.
They know what they're doing and they deliver on brand.
They show up at your house in a fancy craft work uniform.
They know how to deliver an experience that is unified.
No matter what team shows up at your house to paint, for example,
you have an experience that is delightful and thoughtful.
One of the really interesting things that we do that's different is we try and
create a connection with our customer and with our painters.
For example, Tessa, if we were painting your house,
after we agree on the scope of what we're painting,
we also ask you some things about what we're doing on the job.
We ask you for, for example,
where can we park when we show up?
What door should we come in through?
Do you want us to wear plastic covers on our shoes?
Where can we wash our hands and use the bathroom?
Things like that. We'll also ask if you have any pets and
what their names are so that when our painters show up,
they know that your dog's name is Spot, for example.
They don't let your cat out of the house when they're loading paint and
ladders in the house, things like that.
Yeah.
Just as well, we try and create a connection with our painters.
So we'll send you a profile of the team that's coming over.
So you'll get headshots and names of the painters that are coming to paint your house,
as well as things about them like maybe their favorite sports team or
what foods they love to create a human connection,
something visceral that creates comfort that it's not just a stranger showing up.
It's a known quantity.
It's someone who we trust and we believe in that can show up and deliver a great
product.
And our painters will come, deliver the job, apply the right color paint to the
right surfaces and all the right places and leave your home better than we found it.
And so my team's job is building the software that powers all of that.
That's everything from marketing and sales and our public-facing website to a
great big line of business app that does all the logic and logistics for sales and
operations and ordering paint and stuff like that.
And we also have a mobile app built with React Native that our painters use to
show up at the right place to know what to paint to mark their job is done,
the clock in and out, things like that.
Wow.
So we got to chat a little bit before the live stream started and you got to
share a little bit of this.
And I was just blown away because I think, you know, obviously, aside from the
developer challenges that you are solving, which is so cool or should say the
technical challenges, there are so many different pieces that are going into your
business.
And I think that, you know, you could create a marketplace, right?
And that's not what you are.
You could create sort of a service directory and that's not what you are either.
You very much have an ex, you're an experience, right?
And it's an experience that like, for me, I'm like, when are you coming to Texas?
Because my house is all white, if you can't tell.
And I could really use some accent walls.
So when are you expanding to Texas?
Because this is just, it's beautiful, right?
This is exactly what a consumer or anyone really wants when they're
dealing with the scenario.
They want the tech.
They want to be able to book the person just like you said, right?
They want that.
They want to know that they're getting a good service provider.
Oftentimes, you know, you're like, oh, let me hire a company to give me a service
provider and they show up and you're like, who are you?
You're in some vehicle with no brands, right?
And I don't, I'm supposed to just trust you to come into my house.
So so many things that you do different that, wow, is just so beautiful.
You know?
Yeah.
Thank you.
I appreciate that.
It means a lot.
It's definitely a different approach, a different tack to this than a lot of
companies that have come before us who have tried to do similar things have done.
One of the things we try to remind ourselves fairly regularly is that our
customers are often in their homes and your home is often the place where you
feel safest.
So we're letting ourselves into your home.
We need to create the environment that makes that a comfortable place to be.
We need to set expectations.
And importantly, we need to do the best job we can and the most right thing all the time.
So there are cases, situations where things happen that are unintentional,
like we might break a lamp, for example, and we're not just going to hide that
from you and hope you don't notice.
We will replace the lamp.
We'll work with you to reinstall it.
We'll do whatever makes the most sense there.
If it's a lamp you hated, we'll reimburse you for it anyway and kind of hope
that things go well.
In terms of your question when we're coming to Texas, right now we're located
in Charlotte in North Carolina, which is where I'm standing right now.
We have plans to expand across the US.
The job that we're undertaking for now is making it so that craft work from end
to end is an experience that we can reproduce.
So the idea is to take this thing and this brand that we've developed from
the uniforms to the vans we have to the website experience, the way we communicate
and make that something that we can kind of stamp out and grow in other places.
So you can kind of imagine the direction we'll go from Charlotte is sort of
radiating out from here across the country, but Atlanta, Nashville,
Richmond, Washington, DC, places like that and kind of just outward from there.
For the time being, we're in Charlotte.
We do a couple of small projects occasionally in sort of like the
neighboring cities, but we definitely have plans to get to where you are.
And I will definitely be putting you on our interest list so that we can paint
your room, whatever color you're interested in.
For what it's worth, I like your room in white.
I think it's really nice and you've got some good natural light going in there too.
But yeah, if you want to try something funky, we can do that as well.
Absolutely. No, actually, I really do have a beautiful house.
It's like a modern farmhouse.
So it's very white and black, but every room is white and black, right?
So beautiful, but it all looks like this.
So it just gets a little boring.
And the wall over here that you can't see because I have a toddler
and my office is too loud for him right now.
The wall you can't see is the behind the bed, right?
And so there could be a beautiful accent over there.
And I think we could do dark, right?
Because the beautiful light.
So digressing from all the beauty that is paint.
You are solving some pretty awesome technical challenges over there.
And I think that's, you know, that's the part that we love to talk about
and really dig into, you know, in this show.
So remind me, are you I know you're a co-founder.
Are you on the CTO side, CEO side?
What what title are you holding these days?
I am a CTO of the company and co-founder, which primarily means I do
a bit of engineering and a lot of sort of product management work
and sort of collaborative work.
So a lot of what I do now is making sure everyone is on task
that we have a good direction for the product
and that everyone is communicating well and understanding each other.
So we're also in a unique position where we're building a product
that we're actively using.
In a lot of ways, our sort of peers in Craftworks HQ office
that do sales and operations and customer success
are our first customers.
They use the software we build all the time.
And to be perfectly honest, a lot of the time that means
that they're running and using things that are either half baked
or like essentially prototypes that we want to test,
which is very different from shipping something to paying customers
and making sure it's polished.
And that's very different and can be an uncomfortable experience too.
We have to be cognizant and sort of emphatically aware
of the experience that our teammates have
and hold our customers to a super high bar as well.
We don't want to give our customers a beta experience.
We want them to have a polished end user experience
and sort of this transparently beautiful modern service
that they get to experience.
And then the thing that I should mention too
is we have a horde of painters that work for us.
This army of really talented people who also use our software.
And the really interesting thing there is that a lot of our painters
primary language is Spanish.
So our software has to be multilingual.
I have to be multilingual.
I've been polishing up on my Spanish since high school.
And that's a challenge a lot of developers maybe think about
or get to experience on some level, but don't need to build for too often.
Yeah, and building for that is actually really difficult.
Maybe it's easier today, but it was really difficult like 10 years ago
when I had to face that challenge.
Yeah. Yeah. Interesting.
Wow. OK, that's really cool.
OK, so a couple of the like show logistical questions,
but I honestly just want to get into like the guts of the challenges
that you're solving. Yeah, but like really quickly to help Dev sort of see
how someone gets from zero to one or wherever.
What's your developer education?
Do you have official education self taught?
Yeah. OK, so I have been working as a paid software developer
since my freshman year of high school.
Oh, look at you. Yeah, I know.
By chance, I enrolled in a elective my freshman year of high school
called Computer Science, had no idea what it was, had no real interest in it.
Couldn't have told you what it meant.
I just checked the box, you know, people are enrolled in high school
and end up really loving that course.
And by being in the right place at the right time, a whole lot during my life
that's been sort of a running pattern.
I got my first job programming the end of my freshman year of high school
because a guy from my local town wandered into the school
and asked our computer science teacher like, hey, do you have anyone who does this?
And I was like, the one thing I could do.
And yeah, it's been, you know, I don't know, 20 years since then.
And I've been coding more or less every day since then.
I went to undergrad for computer science, but because I also wasn't really
entirely convinced I was going to be a developer for my entire life.
I double majored in mechanical engineering.
Because I wanted to build old cars.
That's all I wanted to do was like make hot rods and, you know, have a cool car
to drive around in. As it works out, mechanical engineering is almost
exclusively not about that.
So I did a lot of physics and calculus and had a good time doing that.
But never have worked as a mechanical engineer essentially as a result.
I have the degree in it. I finished all that.
I do a lot of mechanical engineering with craft work. Funny enough.
We do some 3D printing stuff and some really interesting like spatial design.
But yeah, I've been a programmer since then.
So I have a very traditional background.
I have worked with a whole lot of people who don't have traditional backgrounds.
And one of the things I say often is that some of the most interesting
and most talented people I've ever worked with have come into tech
from completely bonkers backgrounds that are just totally different.
My one of my first mentors came from a sociology background.
I know people who've come from library science, which is weirdly an interesting
parallel for UX.
I have a lot of people who are traditional engineers.
My co-founder of craft work Tim studied English in undergrad.
And now he runs a tech company.
It's a really fascinating group of people, an interesting sort of position to get to work in.
I also ran a code school at one point that was trying to teach people
how to build software that came from creative backgrounds.
So trying to get graphic designers and illustrators and copywriters
sort of get their feet wet and 100 level stuff.
That site is called gym.com. It's totally free.
It's self-paced video courses. They're amazing.
I love those guys spend a lot of time with them.
And that was super fun, too.
So while I do have a traditional background,
I think I have a lot of appreciation for non-traditional backgrounds.
And I'm definitely the first champion of it.
Yeah. Well, I mean, there's a there's a whole lot to what you just said.
First off, very much resonated on the like working on cars thing.
I have my dad made me like the boy that I the boy he never had.
So I love cars and I could see we're getting into that.
And then you're like, wait a minute, this isn't necessarily what I get to do.
But the beauty of that is it can become a hobby, right?
You know, build that that rat rod or hot rod that you want for yourself.
I want a 1970s Chevy pickup that's like not lifted, but slightly lifted.
I will have that one. Yeah, that's perfect for your neck of the woods, too.
That's like the Texas Texas brand practically, you know, I know, right?
But coming into more of the sort of boot camp and the, you know,
the technical side of what you shared, it's very interesting to me, though,
that you got involved in high school,
because I actually did the same thing.
I was fell into I always took any computer class that existed
because mostly I'm like, it's not a teacher and it's not lecture.
I can sit at a computer instead of having to listen.
But when I did it, same thing, right?
I was very interested in it. I loved it.
But then I actually took the opposite path, but maybe sort of similar.
You took two, right?
I took the path of not going after that because I wanted it to stay a hobby
and then ended up coming back around and now almost have regret
that I didn't just go to college for that.
But either way, it doesn't matter.
And I think so when you're when you're coming around to sort of the different
education past, I love that you also helped with the boot camp
and you shared this pre-libestream, but you just have this vision and
and desire to just help people know what you know.
And so I think that's really beautiful also in all of that.
So all right. Yeah.
Hey, thank you. I think the
the theme that underlies all of this is you and me and everyone who's watching
and listening, like the biggest skill you can have in life is learning to learn.
And in particular, like if you're in a place where you're allowed
to do that, I think that's very important, too.
There's a lot of proof that wrapped up in that sentence.
But that's something that is has been a theme for me.
Like a lot of what I get to do as a founder is tackle a brand new problem
and do something for the first time with probably more confidence than I deserve.
And a lot of the time that's enough to get by on, you know,
that's good, though, right?
That's I think that's what helps developers like get through those challenges
is having that like level of confidence that maybe is a little aggressive, right?
But that's how we build beautiful things.
I mean, that's how you build experiences like what you build at Craftwork.
I mean, that's that's crazy.
The the, you know, all the bits and pieces and everything that you're doing
because when you think about all the logistics that's involved,
I mean, that's that's a big challenge.
And nonetheless, if you can't tell, I'm excited to start talking about that.
So yeah, I think let's let's do one of these other questions first
and then dive into the kind of guts of what you do.
So what is an average day?
What does an average day look like for you?
And then I'm going to ask you about all the big challenges that you're doing right now.
Yeah, if I could describe my most average day, they all vary pretty well.
I think one of the interesting things about this business is that we're building software,
but a lot of the time my presence is needed physically at places to solve problems.
That aside, a typical day for me, I'm an early morning person,
so I tend to rise very early, get up sort of before sunrise.
I also really like coffee.
So I have a nice espresso by myself in my kitchen while the sun comes up.
I usually start with a fair bit of like self time just taking care of myself.
So I do a small amount of meditation, a small amount of journaling and planning for the day.
And then I'm typically either head to our office, which is a walking distance from my home,
or I go to a coffee shop and sit down for a few hours
and knock out the things that I meant to do yesterday.
Generally speaking, a lot of our work that we do at Kraftwerk
in the engineering world is around taking care of the most important burning problems
that we have right now.
And that's getting everything from the planning phase of understanding
what projects look like, what features we want to build, designing the sort of UX of that.
We have a really talented designer on our team, Drew, working with them to design features
to make sure that we've detailed everything we plan on doing.
We take that thing and show it to our peers in our sales or operations or success
parts of the business and say, hey, this if we built this, do we think it would be helpful?
Like, is this a good plan before we start building it?
Hopefully then we go and build the thing and then test it.
And so I'm doing everything from sort of working in our project management tools,
putting feedback in our design tools, pair programming with my teammates
to work through technical challenges to honestly, when I when I get enough time
to do it, just sitting down and writing some code myself and putting in a few pull requests
for more of the developer experience side of things lately.
But whatever I can do to unstick the thing that's most important today.
And so that's kind of what the day looks like.
We're lucky that our workdays aren't too meeting heavy,
or at least that's my perspective on it.
If my pals on my team are watching, I would love to know what you think about that statement.
But we don't have a ton of meetings and that's hopefully to unlock productivity for people
to let my engineers get things done.
And it's being as responsive as possible.
So I do have moments of focus during the day, but I also have moments where I've just got to go clear
a stack of notifications, emails and things that have piled up while everything's happening.
And lately, I've been talking about that as the curse of the engineers,
like you're going to get a notification about everything and you're going to get really good
at filtering down to the ones that you need to respond to now, you know.
Yeah, that's actually that we could have a whole conversation about sort of that level of insights
on notifications, because it's really hard to not get distracted by that,
especially when you're sort of in this tunnel vision of coding, you get pulled away for a notification.
How do you get back in?
You know, so I love that.
Sounds like you're a fabulous person to work with and work for, which is really cool.
Yeah, yeah.
The one thing I repeat a lot is that I'm not perfect at anything.
So I try and be a little bit better each day, you know.
Yep. None of us are perfect at anything.
So I think, you know, just the fact that you say that and resonate with that and know that and
are self aware that you're continually growing.
I think that's the beauty in it, right?
Yeah, thank you.
Yeah.
OK, so I want to hear about all the challenges you're facing.
And in terms of, I think, you know, I'll let you sort of take that as you want to share it.
You did share with me a little bit and you shared with all of us right early on about the different bits
and pieces to how craft work was operating.
But I'd love to hear about some of those challenges, how you've sort of overcome those challenges.
Maybe you're still in some of them, but y'all have some some good tech stuff going on over there.
And I'd love to hear about it.
And so what are listeners?
Yeah, maybe I'll start by giving you some background on our tech stack.
So we are a small but mighty team of four here in Charlotte for engineers, including one engineer
who also happens to be like the shiny unicorn who can also design and deliver on those designs,
which is a great luxury that I recognize not many people get to have.
We build our platform on top of Ruby on Rails.
So the sort of brains of Craftwork, the line of business app that powers the logic for how we communicate
with customers, how we price paint projects, how we do logistical things like putting together
orders for paint or lining up schedules for projects.
All of that is a giant sort of monolithic Rails app that is designed to communicate with external services
as well as sort of coordinate things internally.
So we do a lot of automating and aggregating and integrating.
We talk to services like Stripe and to real estate services like Zillow and Redfin and some sort of
real estate APIs so that when you put in your address for your project,
we know a whole bunch about your house before we even talk to you.
So we know you have a two story house, it's three bedrooms.
We can ask questions about, oh, hey, it looks like your house was built in 1950.
Like we're going to need to test to see if there's lead in the paint before we do anything
because there's health concerns there and things like that.
That's the Rails app does all of that stuff.
It's a ton of logic.
It's a ton of coordination that is pretty heavily involved in making the business tick.
We have mentioned before a mobile app that our painters use that communicates with the Rails app
via a REST API that's built on React Native.
It uses TypeScript and Tailwind and is sort of very simple and meant to make our painters lives easier.
So right now they primarily use that for clocking in and out and for knowing what to do on the job.
We're also soon going to be adding features for communicating.
So if they need resupply, for example, oh, I need two more gallons of paint,
they should be able to do that from their phone rather than sending a text or calling someone.
And also use that mobile app to enable our sales team in the field as well.
So one of the things that happens occasionally is we'll go to customers' homes to scope out a project.
We'll walk through the home with them.
And the dream there is for our salespeople to be able to walk through the home with the customer
and ideally never touch their phone at all, maybe even just talk to the customer
and have the phone kind of listen and do things.
But before that, it's as simple as walk through a room and sort of take inventory
of what we think we're going to be painting, maybe take a few pictures or videos to catalog it as well.
That's React Native. That's the mobile app.
We also have our Craftwork.com website is a Next.js application.
We use Next primarily because that's my bread and butter.
I've been using it for a long time.
It's very oriented towards SEO and trying to make Google happy,
trying to present our business in a way that our customers can understand,
that presents our brand really well and super helpful.
We're actually in the process of the early stages of revamping the website as well
with sort of a brand refresh that'll be coming sometime in the next year.
But those three things all work together and they all communicate with our Rails app via REST API
and sort of synchronously, harmoniously work together to power the business.
Oh my gosh.
Okay, first off, so much.
You shared so many beautiful insights in that and I'm kind of like a lot.
But I think what's really great about that is that you spoke to the different stacks
and why you're using them in the way that you are.
If anyone is listening and they listened yesterday, Neil actually went on a little bit of a kind of...
Just a chat about Ruby and then Rails and why it's so beautiful and why to make that decision.
But then you were also able to speak so eloquently like why you chose Next.js for your website
and how that SEO and that Google goodness is so, so, so, so important.
I actually was using a DevTool essentially that helps you build out a Next.js site.
It's called Rewweb and it's actually pretty cool.
It's very early.
It's more, I wouldn't say it's beta, but it's very early, right?
And so that's the one thing that it was lacking was some of those SEO bits.
And so I think what's beautiful about that is they're building that out into Next.js.
And so to me, it sounds like there's this little challenge to solve, right, of bringing all that in.
But that Next.js is well suited for that solution, right?
So it just feels like it's just the next feature that will be built out there.
Okay.
Yeah.
Sorry, I didn't mean to cut you off there.
I would love to hear about challenges that you have struggled with.
Has there been, I mean, obviously there's probably been many, but are there some that
you can think of or, you know, those triumph stories of we were trying to do this and that?
Yeah.
I'd love to hear about those.
Yeah.
We, we, I sort of described this before, but the interesting thing about our business
is we're building a really complicated and deeply integrated product that we need to
use all the time.
So very often we don't have the luxury of getting something perfect before we ship it,
which credit to my, my homies in our HQ office here.
They're incredible at putting up with various states of things being ready for them to use.
But it means that I'm more testing things out as we build them.
So yeah, really good example is the most basic thing we need from any customer is some idea
that you're interested in getting your home painted.
And so thesis when we first started Kraftwerk was that we were going to put up a website
that people here locally, when they search for painters near me, they would find in Charlotte
us and they would fill out a form that told us everything they wanted painted.
We would give them the price before they even hit submit so that they could understand the
budget and what it costs.
And they'd hit submit and we would fire off a whole bunch of things in action to get them
scheduled and paid and get the paint job delivered.
As it works out, there's a lot of things wrong with that assumption, but a lot of things
right that we've sort of come to over the long period of time that we've been in business
here.
The primary thing that we found is that there's a psychological thing that was happening that
safe.
Tessa, for example, you want to have your whole home painted.
Say it's three bedroom, two bathroom, something like that.
That's maybe 15 rooms total that you now need to go give me an inventory of putting together,
you know, okay, all ceiling trim, windows door, what do you want painted, how many doors
are there, how many windows are there, how big is that room?
And you have to do all of that yourself.
We were asking you to do a ton of work there.
Also there is that that's something that's way easier to do if you're on your phone and
not like on a laptop.
So we had to make it highly mobile responsive, which it wasn't great at at first.
Like I'm the first one who had made our mobile responsiveness in the earliest days was a
little rough.
Besides from that, it was it was challenging to get people to do that.
And what we found was really the most poignant thing that we were seeing in our sort of user
logs was that someone might put together a three bedroom paint project and then spend
an hour or two hours a day just toggling on and off things to because the price was updating
in real time to try and get it down to some more.
And that's very human, right?
There's this thing called behavior economics that there's things that you'll do, whether
you realize it or not to try and match your expectations of how money works and how your
budget works and bang for your buck.
Yep.
We turned around.
We actually a few months into this basically pulled the rug out from under that and got
rid of that process completely and replaced it with just a form that was name, phone number,
email address and home address.
Get in touch with us and we will immediately contact you and talk to you about it.
And it turns out that the human element of that is really helpful.
It's really nice to be able to send a text message and say, Hey, this is Mike from Kraft
Work.
I see you're interested in a project.
Love that you submitted this thing.
Can you tell me more about what you're interested in?
Do you want to set up a phone call?
Those sorts of things.
Hmm.
A few months after that, we found that it's really nice to have that conversation and
to create the human connection because in your home, again, it's a very intimate personal
space.
It is the place you're at and it's very important to people to have a home that they're comfortable
with and that they love.
Yeah.
And when you're talking to someone and having an experience like you and I are having, it
creates a much better sort of connection for the brand and for the product.
Yeah.
And I've dealt with a lot of other paint companies, local paint companies often are too busy painting
to pick up the phone.
That's not a criticism.
That's just a reality.
The operator of a paint business is also painting because they have to get the job done.
So they take the time to create that connection, which creates kind of, I don't know, the not
great like end user experience for the customer.
So turning this back to the engineering side of it, we're now trying to mechanize that
thing and turn that into a product that we can build and make repeatable.
So discovery that a phone call or text message was better.
We built a pretty deep, intensive integration with Twilio, where now when you submit a form
to us, we automatically text you from our Twilio thing.
A salesperson will be put in charge of your thing.
They send a message that says, Hey, tell me about your project.
We went into a phase where we did everything over text.
So we'll text back and forth, get a scope, send you a link.
If you agree to it, you pay and kind of do the thing.
We found from that that it worked much better than what we had before, but also some people,
particularly older people don't want to text and nobody wants to text the thousand times
to understand what they're going to paint in their house.
So now we kind of have a world where we also do voice via Twilio.
So you can call us.
And while you're calling us, our salespeople are seeing your project on screen.
They know the size of your home.
They have some information about your sort of real estate.
They're putting the other your estimate in real time and hopefully sending it to you
in a way that you can then see it.
Yeah, sort of fully fleshed out vision of that is that as we're talking, maybe one day
our sort of LLM brains can ingest that conversation and assemble it so that the salesperson can
just focus on the conversation.
Yeah, they can create the relationship and the trust.
And while they're talking, it's assembling something for them that we then send over
to the customers.
The last magic trick we did most recently is that we turned it around to that we put
together an inventory of everything that the customer wants painted based on what we've
learned from them from conversation.
Then we send them that inventory as a here's your quote for your paint project.
It has a whole bunch of checkboxes on it saying, if this is too expensive or if you decided
you don't want the ceiling painted in that room, just uncheck it.
And when you're ready to go, just pay us a deposit and we'll get into the scheduling
phase.
And that's really useful because that eliminates a whole bunch of other texts to us to say,
like, oh, can you show me what it would cost without this?
That sort of thing.
It lets them play around with it, sort of get to a scope that they're comfortable with.
That thing in itself, what I've just described is a ton of data and a ton of user experience
and a ton of coordination that relies on understanding how people think.
It relies on really great engineering and really great designs that my team has done
an incredible job of implementing.
And it also relies on just kind of being ready to throw things out.
Like I said, we built a pretty deep, intense estimate experience at first.
That is just completely in our get history at this point.
It has been in the room from the project.
And we kind of have landed on the fact that our job as an engineering team is to love
that.
We build things and we rebuild things until we get it right or better.
And that's just okay.
There's a million different versions of that in what we do and they've all kind of been
some variety of success, failure, triumph, whatever you want to call it.
And we're just trying to learn a little bit more each time we deploy something.
Yeah, I love that.
I think what is really key to what you shared too is that, and this isn't always the case
and I think people try to do it when they can, but they also get really bogged down
is the feedback.
It's like you have these various feedback mechanisms and you're also capturing that
data and understanding.
Because I would have, I mean, you understanding that like, hey, you know, they're starting
to click in there, you know, the budget tool, where is the power, right?
And you completely shifted and when you were like, oh, we got rid of it.
I was like, no, that sounds beautiful.
That'd be how I'd be in there messing with it.
Like what rooms can I afford to paint this year?
What room should I paint next year?
But then bringing it into like the later part, right, where you're sharing, hey, we've gone
through that deep conversation.
They're bought in and then they can start to sort of manipulate and look at, oh, okay,
here's something I can plan my work or think about what this might look like.
And I feel like they're already bought in personally, right?
From a personal level, it's easy to be like, oh, click, click, click.
Like I was looking at better mortgage, you know, years ago when I was like, oh, my house,
right?
And I loved that I could go in there and sort of change what's my down payment?
What does that look like?
If I want to do 15 year versus 30, et cetera.
And I think people like that, but I wasn't bought in and I didn't necessarily was emotionally
bought into them because I was able to do that.
And so you found the perfect world of getting them bought in while also giving them the
technical logical capabilities they want to be able to not have that conversation of like,
hey, I can't afford all of that.
No one wants to admit to that.
Yeah.
I mentioned before I studied computer science and mechanical engineering.
I also studied human computer interaction in grad school.
So I did a degree in HCI as part of my interest in doing user experience work.
And one of the things that is most most memorable to me about that whole experiment of learning
about UX was that a lot of getting software right.
If we do our job really, really, really well as designers, people probably will never realize
that they've used something that someone built.
And the more someone ends up thinking about what they're doing or pays the tax of doing
something that's a little clunky or funky or just doesn't meet their expectation for
some reason, the more opportunity there is for us to do better and the better we can
do by them, you know.
I agree.
Okay.
I have a couple of things.
I know that we're at time.
Do you have to run right away?
Otherwise, I'd like to just ask you.
I've got time.
Yeah.
Okay.
Sure.
Perfect.
I try to keep them to a half an hour because it's hard to listen to something, but man,
this conversation seems so good.
No worries.
We can do it again any time.
Yeah.
I love that.
Okay.
What do you do when you're stuck as the CTO is the leader?
Yeah.
Job number one, the first thing is to admit it.
I will say I'm stuck because most often if you admit to being stuck on something, you
are going to find someone who can help.
It may not even be someone who knows the answer, but there's this thing in the computer science
world called the rubber ducking or the rubber duck effect.
Oh, yeah.
It's like old programmer legend of someone who had literally a rubber duck on their desk
that they would talk to when they were stuck on something.
And the idea of talking to that rubber duck would get them to explain the thing in a way
that highlighted the problem.
My teammates, Sean and Drew and Eduardo are often my best rubber ducking friends.
We'll hop on a call and talk through something in either direction and come to an answer
there.
The next thing I do is I turn to the sort of social internet.
So I have a DevRel background.
I have the good fortune of having lots of friends who are way smarter than me as software developers
that I can reach out to.
GitHub is a great resource for that too.
And I also maintain a personal website, mikebyfullco.com, where I publish sort of tutorials and newsletters
and things for people who are building stuff like I am.
And the best thing I've found about that is when I publish something that says, here's
the right way to do this.
Every single time I do that, someone smarter than me comes along and says, actually, no,
that's wrong.
And here's why.
And that's like, perfect.
You, everyone should do that as long as you're comfortable with being wrong.
It's the best way to find the smartest person on the planet because they will come out of
nowhere the minute you post something.
Yes.
I was just reading a draft blog blog post for one of my clients and that's what I said.
I was like, hit them in the feelers.
And it's a constant thing that I say.
And I don't mean it in like make someone sad or make someone mad, but give them an emotional
reaction.
If you tell them your very opinionated, opinionated way of doing something, they will give you
their reaction.
And that engagement is good, right?
Because you get to learn.
But then also, like you said, all those super smart people come out of the woodwork because
then they're like, wait a minute, no, there's this.
Yeah.
Absolutely.
Yeah.
I love that.
All right.
Any other threads on that?
Where you go when you're stuck?
Oh, yeah.
I mean, there are a lot of places.
Like I said before, GitHub is really helpful.
If it's a bug that I can't get through and it's just an error, I'll often take the error
and paste it into the search thing on GitHub and just ask for help and see what it comes
up with.
Because oftentimes, if it's a like a nondescript error, it'll have come up in someone else's
issue or pull request or whatever.
And there will be a whole discussion of people who've worked through the problem before.
When all else fails, sometimes it's better just to walk away for a little bit, go change
gears mentally for an hour or two or overnight or whatever it is and come back to it later.
I'm a big proponent of like taking a break and going for a walk when you're really stuck
on something because that is a great way to process and sort of move your mindset onto
the next version of solving that problem.
I love that.
I need to start doing that more.
Okay.
Very similar follow up question.
Where do you go when you're looking for new solutions?
So you talked about how you brought Twilio in and you started doing SMS and text messaging.
Where do you go and who do you look for and what are the steps that you take when you're
like, okay, now I need to do this next thing?
Yeah, there's a muscle of doing research that I think is really important for the sort of
world I live in where I may not even have a term for what I want to do sometimes.
I may not know what it's called.
And just going and like Googling a whole bunch of things and taking notes on what seemed
promising, what didn't is really helpful.
I will kind of go and take an inventory of what I see that's available and what's worked
and hasn't worked.
For example, if I was looking for a new library to do, let's say just transactional emails,
send emails from our software.
I would go and find five, 10 solutions for that.
Go look at all of their documentation.
If there's not good documentation, I'm usually not interested unless it's like a very early
product.
Then I'll go and look at how active the thing is.
Are people communicating with it on GitHub?
Are there new issues and pull requests and releases?
Are people talking about it on the social internet?
So on Blue Sky and on threads?
Is there actual movement about it?
Have people formed opinions?
And then honestly, a thing that's happened more and more for me recently, and maybe this
is my pedestal for another day, is what's the leadership like?
I don't want to build a product based on someone's thing if they suck.
That's something I'm really fully willing to cut people off for.
Maybe that's an unfair bar to hold, but I'm also not past giving someone a second chance.
If for some reason, someone changes their ways, I'm also always willing to give something
a shot too.
Yeah, there's a lot of factors that come into it, definitely.
It is largely a don't assume you're right or don't assume your first instinct will be
right.
Hopefully, my team would reflect this too, that when we're trying something and trying
to find something new, we'll try out a few options and group crowdsource the answer.
What's everyone's experience with this thing been?
How does this feel as a developer experience?
What do you like?
What do you dislike?
We recently went through redesigning the way our API responds to requests for craft work
and had the whole teamwork on that so that we could get to a point where all of our lived
experience was added into the feature that came out of that, which was a really nice thing
to do.
Oh, my gosh, that's amazing.
I ask people this question a lot.
How do you choose your tool?
How do you make decisions around this?
There's tons of different answers that I get.
I have yet to get the answer where as a team, we sit down and we all somewhat experiment
with the different prototypes or different options.
That's really beautiful because each different type of developer, and like you said, back
to how we think and how we operate, they're all going to have different reasons why they
love it or hate it or think that it can solve a problem or not.
That really does, similar to what you said about posting your opinion and letting the
smart people come out of the woodwork.
You're literally pulling out what is going to ideally be probably the best decision in
that space.
How smart?
I love that.
Another thing I'll mention there is that the benefit of working with a really talented
team of very curious people is often I will mention something that I'm starting to think
about in passing.
People that I work with will go and take that as a thread and explore the curiosity on their
own.
I swear to you, I have an indentation on my desk from my jaw hitting it so often where
they'll come back and say, hey, check this out.
What do you think of this?
It'll be something that's done in a better way than I could have imagined.
It isn't all just me.
It's never all just me.
In fact, it's rarely me at all because the people that I work with are really well-driven
and do some really amazing stuff.
I'm not the source of answers here.
I'm just a coordinator of things.
We have to get to the big thing that I want to talk about here that you're objectively
looking for and I think before we dive into that, I have really enjoyed talking with you
and I have so much enjoyed how you manage your team, how you think about things, how
you really put all the details in.
I know that you were saying your commentary around maybe not picking products that have
leaders that you don't align with.
I actually think that's really beautiful.
I think the only way that we forge and see the world that we want to see, which in my
world is filled with kindness and love, but the only way we get to that world is by being
very strategic about who we work with and the products that we choose.
It's not to say those are bad people, but it's to say that they don't align with the
values and the morals that you personally align with and that's okay.
Like you said, if they change, great, you'll reconsider.
But I think that to me is actually a major pillar in my decision-making process as well.
I wanted to call that out.
You're looking for someone to join your team.
Yeah.
Tell them about it.
I don't know, if it turns out we're hiring at Kraftwerk, so we're in the middle of actually
just published earlier this morning a job rec for a full stack engineer.
We're looking for someone with extensive Ruby on Rails experience to help us build out the
next phase of what we're doing here at Kraftwerk.
Our application, our stack is a lot like GitHub and Shopify where Rails is the engine that
powers all the logic and the APIs and the inbound web hooks and things like that.
Interestingly we're building interfaces that are based on React.
Rails might be the backend sort of middle layer and React will become the front end
of things.
We'll sort of use Rails as our eventually maybe even more like a headless API.
That's certainly how it works for the mobile app and for our website right now.
Sure.
We're looking for someone who has extensive Rails experience.
The thing I say to people when I'm talking to them about jobs, when I'm interviewing
engineers is that what I'm really looking for is someone who's curious and passionate
and really well communicating.
I really love having engineers on my team with side hustles.
I think it's a really good sign that someone has built something from zero to one if they
have a product that run on their own.
By that I run a couple of things outside of Kraftwerk that are just passion projects
of mine that when I can morph an extra hour into my day I'll work on.
That's the kind of person I'm looking for.
We are based in the US in Charlotte.
If you happen to be in Charlotte or interested in moving to Charlotte, that's fantastic.
We're also able to support remote work in the continental US, from the east to west coast.
We're remote friendly, we have an engineer on the team right now who's remote.
I worked remotely for 10 years before founding Kraftwerk and am really passionate about
making sure that we are inclusive over our remote teammates as well.
If that sounds like you or someone you know and you've got Rails experience and you like
React, we would love to talk to you.
I will be publishing a link to this on my LinkedIn, on Blue Sky, on Threads, on my personal
website and my newsletter.
If I can get tests out of Post-it somewhere I'll get that.
Oh yeah.
Yeah.
Anywhere you can find me I should be shouting about this.
It's just gone live this morning.
Oh my gosh.
I love that so much.
Okay.
So you alluded to it.
What side hustles do you have?
Why don't you drop those?
Because I think the listeners would love both of them.
Once for founders and once for devs.
So it's beautiful.
For sure.
Yeah.
So if you're an API developer, I run a developer community called APIs You Won't Hate.
I co-founded that with my friend Phil years ago.
It's a passion project where we are the largest community of API developers on the web.
We have a newsletter.
We have a giant Slack channel with a few thousand people in it.
We have a YouTube channel, a podcast, we publish books, we do open source software.
The dream of that is just to help people build better APIs and sort of love what they
do.
Seeing some friends drop some comments in the chat here too.
Hey, how are you?
I also run my personal website, mikebyfullco.com, my name.com, where I publish a newsletter
every week called Tiny Improvements, which is meant for people who are startup founders
or interested in being startup founders or interested in spinning up a side hustle.
Where I share my lived experience about building products and sort of the things that I've
gleaned along the way that aren't necessarily like NPM install product.
It's more like, oh, this is what it's like when I'm stuck and I'm frustrated or this
is what it's like to run a team or this is what I want in a good teammate or this is
what behavioral economics says about user experience and these are the things you should
think about.
So it's a lot more strategic, philosophical maybe.
I also publish some tutorials on my website about peers how you do XYZ with React.
That's fine.
That stuff's fun too.
My rule with that is I try and make an article every time I have to Google something more
than once.
I'll make an article for it so that I'm Googling my own answer to the problem next time.
Yeah, that's the things I can think of for now.
It's certainly a busy existence and I'm very lucky to have it.
And what I'll say is that if any of this is interesting to you, please reach out.
I'd love to chat with you.
I'd love to talk to people who are interested in the job.
And yeah, whatever I can do to help, don't be shy.
I'm here to help.
That's the dream.
Oh, well, I think that this interview was very well timed because if I fell into the
stack, even though I'm trying to run my own business, I would be eager to apply for a job
to work with you because of just everything that you've shared and the way that you think
about things and the way that you lead.
And I think oftentimes developers, yeah, you're welcome.
I think developers don't always think about the leadership or at least sometimes earlier
on they don't think about it and it ends up being sort of a pain point for them and
realizing and maybe even getting to a point of not liking it or enjoying their role.
And so when you can find amazing leaders like you that really give the opportunity for people
to be curious to do what they love to do, but provide that mentorship and that guidance
man, that's that is the sweet spot to be in.
So I hope that you find that absolute best candidate because you deserve it.
Thank you.
Tessa, this has been a bright spot in my day and it's genuinely a lot of fun to talk with
you.
Thanks for having me on.
I really appreciate it.
Yes.
I appreciate you actually coming on and wanting to join us and it has been absolutely lovely.
I agree.
So to anyone who is still listening here at the end, reach out to Mike.
He has a really awesome opportunity over at Craftwork.
If you are a Ruby on Rails dev that also likes to dive into React and a hustler, you know,
someone who likes to hustle and who likes to work hard and more than anything, I think
that really just wants to like dive in and be curious, like you said.
Yeah, I love to meet him.
Awesome.
Have a great day, everyone.
We'll see you all tomorrow.
Thanks.