Hi, I'm Scott Hanselman. This is another episode of Hanselminutes. Today I'm chatting with Joe Finney. He's a Microsoft MPP product owner. He makes apps with former mechanical engineer. This is a person with a full-time job, but a plan to make his side hustle, his full-time job. How are you, Joe? I'm doing great. So you describe yourself to me as an Indie app maker. And we love indie games. We love independent this independent that indie is the
word. And it's it's the great word. Now you have a full-time job. You have a W2, good old fashioned American go to work, go home, do anything. But you code at night too. Yeah. Why would you do such a thing? Yeah, that's a good question. So I was a mechanical engineer for 10 years. And the whole time I was just kind of obsessed with software. So I just kept thinking about it. And I was obsessed with like the CAD programs I would use and the engineering programs I would use.
And I just kept thinking, you know, this should be over here and that should do this. And this should do this. And I was like the Excel wizard at work. So everyone was, you know, they have come to me when they're like, Hey, can I do this? And I'm like, you're describing a database. Yeah, let's do it next. And then there was a problem that was too big for Excel. And I made a little piece of software. It was actually for like a vacation lottery weighted
to balance kind of seniority plus getting the request in on time. So it's kind of a lot of different complicated things. And then saying, okay, who's going to get the day off? So the factory can stay running. And after I made that, I was like, okay, this is really cool. And I really, really like this. And there's a lot more resources out there that I could just Google and figure it out. So that was kind of the hook. And then from there, I made
a little Windows phone app. And then I was like, I had a touch screen laptop at the time. And I was like, man, I should be able to like interact with my calendar the way that I do with my paper calendar on my wall and my cubicle. So that's where I had the idea for an ink calendar. And I made that. And it was a UWP app. And slowly over the next, I think it was like seven years now, I've been kind of building these apps and figuring out what
I'm going to do. But they all kind of come from that. There's a problem that I'm thinking about. I just want to fix it, try a little nugget of something and then evolve it and evolve it. And over the past couple of years, I'm like, okay, let's get more serious about this software can be a living. Let's try to make it happen. When you do these kind of small to middle sized apps, is it something you're doing entirely
by yourself? Do you have a designer? Do you ever go and ask, like, go on to Fiverr and hire people to help out? Or is it really like the app, the size of the app and its scope is limited to what one person can do. It's a one pizza team. It's a half a pizza team. It's just me. I've thought about it. I think there's a couple of challenges with hiring people out, obviously finding the right person. That's kind of the hardest part always. It's
like the amount of time it takes. And that's the number one thing about me and the work that I do is it's all about time. And if I'm going to spend time looking for someone, I could spend months and months looking for the right person who has the right skill set. And nothing got done in that amount of time. And I could have just done it myself. So is it a design going to suffer a little bit? Yeah. Is the, you know, architecture and the
coding in a suffer. Yeah. Is it going to be good enough? I think so, hopefully. What about the site, what I call the psychic weight of the apps? You've got an outdoor fitness app that's on Google Play and App Store. So that's a cross-platform app. You've got apps in the Microsoft Store. Some of them are user-friendly apps that are really polished, like Ink Calendar, some are, you know, quick and dirty utilities like TextGrab that call Win32
APIs. But they all are out there and they exist. They are always getting users every day. And they're maybe getting bugs every day from users that might not be very like respectful of the dollar or the free that they spent, you know, to get that app. Doesn't that weigh on you? Absolutely. Yeah. It's definitely a weird thing.
I mean, I think it's an interesting relationship like that economics and the energy and the amount of time that Indies in particular spend and like the pressure they put on themselves to deliver something amazing. It's high and it can be a lot. But this is going to, this
is going to be a roundabout way of answering the question. But whenever a big like tech outages just happen, like we had one recently, or I use software that Microsoft puts out or Apple puts out or Adobe, and they have bugs in them and they have, you know, issues.
And I think it's going to be okay. You know, as long as the bug doesn't totally wreck something, you know, as long as you're not going to lose data, that's the biggest concern really in my mind is that somebody, especially Ink Calendar, is that they would be working for a long time having these journals and then it all goes away somehow. So you're prioritizing losing data bugs? Absolutely. Yeah. But also I just have to remind
myself that I'm not a huge tech company. And so another part of that is kind of putting that messaging in the app instead of saying like the team is evaluating this. I say, I am. It's just me. So I think that can kind of hurt when people are like, oh, I need a big company behind this. But I'm like, it really is just me. And I'm not trying to like pretend that there's, you know, a big company behind this. But also just using a lot of
my apps over and over and over. Like I use all of the apps that I make. And I think that really helps. But it is definitely stressful to think about that bad experience. I get reviews on the podcast. And I would say that they don't necessarily always feel good. But like I'm looking for example on Ink Calendar, which is a highly rated almost 4.0, 3.9, you know, 4 star app here. But I look at the lowest reviews. You know what they all
are? Oh, it wouldn't download. Oh, Microsoft store wouldn't update it. They have nothing to do with Ink Calendar. That's got to feel weird. Yep. It is frustrating. And it's interesting because that app is very much a store discovery app and an app like TextGrab, which is related to TextExtractor, the power toy. I made that power toy for the team there. And that is discovered on GitHub more often. And so when I, when people get bugs on TextExtract
or TextGrab, they're saying, Hey, I found this bug. You know, I think it's online 59. You know, they're, they are reporting the bug and there's no review system on GitHub. So I think it's, it's interesting how when there's a mechanism for that feedback to kind of like get handled and addressed, people feel heard and they feel like they can, you know, engage a little bit more. But on an app store, all the app stores are just like
one zero to, I guess one to five stars. Say what you want to say. And that's it. Like it doesn't open a ticket. You know, it doesn't, it's not a ticketing system. It's, it's kind of different there. It doesn't open a support case. And so people just take that as an opportunity and just rail on you sometimes. And that is just killer. And I try to reply
and say, Hey, I'm sorry. You're having a problem. It's, it's just, you know, again, even in the reviews, I'm trying to communicate that it's me, you know, I'm sorry you had this send an email. I will look into it. Yeah. Because it really is just me. And a lot of times people are like reasonable, almost always people are reasonable. And I say, please
email support and I'll, I'll try to help you out. Yeah. It seems like your, your apps that are clearly developer apps or like pro, summer apps, not consumer, but like professionals. Like if it didn't work, like one of the things on text extractor was like, doesn't work with the Arabic, they gave you a three star review. You said, I'll fix it the next one. They'll come back. They'll, they'll update it to a five star review because a developer
is telling another developer, I see you. But then the ink one is more of a consumer app that regular humans are using. And they're like, he either is amazing or it's not amazing. Like it's like one star or five stars. There's no, there's no four stars. There's no four and a half stars. They just want you to know it didn't update or it didn't. And then they'll go and blame things about like Microsoft Defender did this thing. Got
nothing to do with you. I wonder if devs are nicer or less nice when it comes to reviews. I think so. And I think it really is to your point. Like you kind of have to get it. Yeah, you're not just out there. A lot of devs do get it and they understand kind of how hard it can be and how tricky it can be to solve some of these bugs. And consumers just think, you know, they open office and they work in office and they close that and they open,
you know, in calendar and they're like, they're equivalent. And so they, you know, have the same kind of standards, the same reaction. Even though they're very different and they're built by very different groups of people. But it's actually an interesting pattern in apps. I don't know if you've noticed it when they'll ask you, hey, are you liking that app? And if you say yes, they'll say, rate it. And if you say no, they'll say send
us an email. Exactly. And don't wait it no matter what you do. Say nothing. Yeah. Yeah. That has their trying to move you to the ticket, right? They're like, and ultimately I think that is part of why again, I'm like trying to put the human back in the loop. And I'm like, I can help you with this. Like let's, let's have a dialogue here. And the app store review just is not a place for dialogue, which is it definitely makes it
a challenge to address anything. So you've got a bunch of apps though. And you've got a bunch of apps times updates, times reviews, they're all priced between $10 and $1.99. So it's certainly they email you and they take an hour of your time. That's cutting into any, you know, coffee money that you're making. How do you maintain your like mental health and general vibe? Because I see not just, you know, you're an indie app developer, but
I see open source people burn out. We see YouTubers burn out. How do you prevent burning out if you're just a one man shop? I think something that really helps is having a network totally devoid disconnected from tech and just friends who don't know anything about it. And you can just like complain about it and that helps. And then also running, you know,
having hobbies that have nothing to do with it. But also having a few different apps, so inside of having all of my eggs in one basket and I just have to hammer on a problem over and over and over until I get it done, I can kind of bounce around. So I do frequently kind of get, I wouldn't call it burned out, but I get, you know, at the end of my, my
energy. So I whenever I talk to people about indie apps, I frequently frame it in a term of like energy, which sounds a little like mystical, but anybody who works on projects that don't have a, you know, a deadline or a hard start stop, kind of understand what that means. It's like, if I don't have energy for it, I'm not going to work on it. And so if I have five apps, I can kind of like follow the energy here. So I'm like, oh, I want
to follow the energy on my react native app. Okay. I want to follow the energy every year. And yeah, like the issues and the stuff builds up. And I'm, you know, builds up in the energy. And you're like, okay, I have, I know what I'm going to work on. And I'm going to get excited about it. Because if I'm not excited about it, if I hate it, then why am I trying to make this my job? That is very healthy. Are you familiar with the concept of spoon theory?
Barely. Right. So it's just, it's just another way of saying, like, do you have the energy? But it's a, it's kind of a fun thing to say. It's a metaphor that describes the amount of energy that you have, mental energy, physical energy, is how many spoons were you given in the morning? So it's like, okay, I get six spoons. Am I doing a thing that is going to take spoons, whether it be, and you can use the metaphor like, am I emptying the ocean
with a teaspoon? Am I taking a spoon and I got to go and eat a whole pile of crap at work? So then, you know, my kids will come home and they're just like, I got no spoons today, man. You know, so then you go and do the other thing that'll get you those spoons back so that you can go and shovel the tomorrow. And you might feel like this is an ink calendar day or another day might be, this is a text grab day. I got the spoons for that app,
but not this other app. Yep. For sure. It's, it, it definitely is a lot about the managing your own energy because I'm right now I'm doing a kind of a major rewrite of the appointments and how appointments are managed through encounter. And it is slow. It is arduous. And I am not a professional developer. So I'm making a lot of mistakes and it's going slower than it should. And it really helps to have other things. So I can feel like I'm productive because
a lot of times you don't really see the output. And I don't know who said it. But I heard someone on the internet say, if you're feeling burned out, it's because you're not really seeing the output of what you're doing. You don't see the impact. Like it doesn't seem valuable. Like nothing's happened. I've done nothing for nothing's been produced. Right. Yeah. And that's actually where the reviews kind of help. And doing connecting
with people and sharing with people and getting out there. And so I mean, simple QR code maker, which is a free QR code app that I actually made because of my job. My, we had to make QR codes. And I couldn't find one that I trusted. That was good and open source. And I was like, well, let me do it. And people love it. And it just feels really exciting when you read a review that says, you know, this is simple. Why aren't more apps like this?
Great job. I don't know. It really brings a lot of energy to the work. Hey, friends, for the next couple of episodes, while I learn more about AI in the middle of the show, I'm going to chat with Lane Dern van Dorn from Qualcomm. And look at some of the great work that they're doing over there. I've got a Snapdragon based co-pilot PC right now. And the battery life is like, it's the battery life that they always promised
me. How is that possible? What changes were made to make the battery life so good? Yeah. So first of all, you're absolutely right. Right? If I look at the Dell XPS, I think it's 19 hours, HPs, on the book, I think as 26 hours is absolutely amazing. Basically, it's the old day compute that we've all been going for. The way we're getting there is first of all, a very efficient CPU. Right? So we have a CPU that gives you phenomenal
power. Right? So it makes it a very snappy platform, but it also does that at very, very efficient. The other part of it too, we have lots of dedicated accelerators, including the NPU, which is a dedicated AI accelerator. It just runs the AI and it does that better and more power efficient than anybody. Right? So it's a combination of these two things. It's a very efficient CPU and then a heterogeneous accelerator strategy, wishing foods and AI and cheap learning. So that is absolutely great.
Wow. That's so cool. It's really happening. The move to a new instructions that architecture is seeing some really extraordinary improvements. I'm really enjoying my co-pilot PC. Folks can learn a lot more at qualcomm.com slash developer if you want to build your software for this great new platform. I want to shift gears a little bit and I want to call out that you have apps on the Windows store, the Microsoft store, the Apple store and the Google Play
store. I can only assume I have heard. I've done this once or twice, but I don't have a lot of my apps are on GitHub and you know, and people just download and like run click once. But I've heard that the packaging up and the getting an app in the store can be more challenging than even writing the app. It absolutely is. It's kind of crazy how complicated like building an app is. And then for someone who's like never done this before, they're
like, wow, I did all this work here. Now I just put it in the store and you're like, oh, yeah, super easy. Yeah. So actually, the technology I use for outfit is called React Native, but it's a service called expo. I don't know if you've heard of expo. No, it is amazing because it fixes the problem that you just described. So they kind of are an abstraction layer on top of react native and they abstract away a lot of the complexity.
And one of the big parts of complexity that they abstract is building and submitting to the store, which is amazing. Like I have a hard time recommending or trying out anything else because I can literally go into my CLI and type, EAS build all. And it will sign me in. You know, it'll pop up web browsers. I put in my two factor codes, runs the build and then I say, yeah, yes, submit all and it submits them to the store. It is taking
the ceremony of that and gotten rid of it. Yeah, it is, it's a dream. Now on some of my Windows apps, that is literally like every single different technology. So I have like a UWP app that's packaged and I feel like build those packages on my device. So that's free. So expo, I'm using some paid plan. So I do have to pay for it. And I, you know, I wish I could, you know, use my desktop that's just sitting here, but can't build Apple,
can't build Apple apps without a Mac. So that's a challenge, but actually gets around it. But on Windows, I'm bundling up and packaging these apps and there's all these, it's the tool train is so complicated. It fails in the middle and then you upload it and then there's a failure when you upload it or there's an issue with certification. It can get complicated. So expo and EAS underneath expo are, they don't overly point out that they're
react, but like the goal is they are a react. They're you create universal apps with react, could expo be a thing that could be extended to support just apps in general? Could it be not specific to react or is it like why is a deployment tech and the bundling tech? What do they have to be married? That's a great question. I don't know. And I actually think
Flutter from what I've heard, I've never got into Flutter. But from what I've heard, actually the, the tool chain for building the apps and deploying them is actually similar in that they do a really good job of you just run a command that says like build all of my variants and then submit them to the stores. You know, pop up the web browsers. You need to, I will log in. Let's just make it happen. And I love that. I mean, again,
I think I said earlier that as an indeed, the number one resource I have is my time. So if I spend my time fiddling around with these, these build pipelines, it just is such, it kills your energy and it sucks your time. It is a lose, lose. Okay. So we really need someone to listen to this from Windows and we need XBO to work on Windows or we need an export for Windows because you're saying all the ceremony, all
the boring stuff, all the toil, all the tedium. Now some of the tediums when I've done, you know, iOS apps has been like making the 15,000, 57,000 PNGs that they want in various shapes. I assume it doesn't solve that for you. It has icons of all shapes and sizes. It does help. I don't have to make, I don't have to generate all those. Okay. You make
it, you make an SVG and it finds the ones of different sizes. They have a little icon template that you can bring in a Figma and then kind of like generate one icon and then you just tell it to build. I think that might be part of the, I don't see this is the part of it. I don't even know how they're doing. I don't even know because it just works. But it doesn't even matter. Yeah. It shouldn't matter. You do any builds on your laptop
or is this in GitHub actions? It's in their EIS. So it's in the XBO application. So the open source and EIS is the paid for it thing. Yeah. EIS is how they make the money. So they host the machines. Yeah. I host the code in GitHub. They connect to GitHub. They pull the code and then run the build. XBO application services. Yeah. Create
a universal Android iOS and web application. It does feel like there's someone who's on X, someone who works for XBO who's listening to this podcast call me and when you have a Windows version or want to do a Windows version, we'll have you on the show and hear about it. So I'll say there is at least one person I know at Microsoft who is working on this problem. Oh, yeah. For Windows. But it is don't call them out if it's a secret, but text
me and tell me no, I can it's there's an open source. Yeah. Project. You heard your store CLI. Yeah. That's great. So they're working on it. But I see MS store CLI. Yep. That's the one. So there was a there was a commit just five days ago. Mm hmm. Yeah. So it's someone is working on it. But this is a thing of this is a end to end problem. And you can do everything you want and you can try to build and do everything locally
and then submit it over APIs. But there's a whole other handshaking of authentication and communicating and is the API even there like how do we bundle with different architectures correctly like how are we even setting up our projects correctly to do that work. And when I use the MS store CLI, I get crazy errors with some of my apps. And I'm just like, I
have no idea what this is. I want to make sure you're clear with the MS store CLI that you just mentioned or you're talking about with store packaging in general with the package that I just mentioned. I've tried to use it and it has not worked for me. So but again, this is a question of I don't know who's fault this is like it is it to author is it could be just that it's really complicated. I think it's just really really complicated.
Like I I've been around you know the along enough to not oversimplify problems that I don't know enough about. And I don't know enough about this one. It seems really complicated to me. Yeah. And now of course with arm I just got an arm PC. That's another thing right. I want to type win get at the command line and I want to just get the thing and I want
to get it from the store and I want to just work. You know, this stores in general hide so much complexity from us about versioning and processors and memory and they just an update. So people wonder like why are they paying Apple or why are they paying whoever for the store for the privilege. Well, let's talk about the CDN. You know, if you woke up and became viral tomorrow and had a million new users, you don't have to worry about that.
It's not going to cost you a penny. I tell people this. Yeah. And that because I tell them like, oh yeah, you know, if I sell an app for a dollar, I would only get like 70 cents from Apple. And they're like, what? That's crazy. And I'm like, no, no, no, you think it's crazy? Try hosting your own website. Try managing the entire thing that they do. Yeah. Like it is expensive. It is hard. It is complicated. And again, like this whole
pipeline building submitting, it's not really what you're trying to do. Like at the end of the day, I found a problem. I want to build a solution through software. That's what I want to do. I want to make that part better. And like, I don't care about anything else. So you mentioned to me that you're married, right? Yep. And that you have a full time job and then you have this side job. And you're still married. That's true. That's true. How
do you balance that? How do you balance that? Do you ever have like an entire week where you just don't do this stuff on the side and you're okay with it? Yes. It's rare, but it does happen. Frequently are like media time when media, you know, at the end of the day sit on the couch, put a show on. I will have my laptop and I'll be coding at the same time. If the show is really good, sometimes, you know, coding doesn't happen. But that's
typically the, the ritual. And recently this summer, July was like just a crazy month. And I just had to look at all my GitHub issues that are not going to get resolved and say, not today. But it was, yeah, I was definitely missing it. So in that busy period ended, I was excited to get back to it and kind of make some progress. Very, very cool. So the, the selection of the technology though, you said you've got React, you've got different
apps. How many different technologies have you picked as an Indie? Because sometimes Indies will pick one and that'll just be that's their thing. But you also seem to be using it as an excuse to learn new tech. That's a good question. So I learned on.net originally. And that's where I just feel comfortable. I think that's just really natural to me is C sharp and Xamol. I love it. So that is where I'm going to go first. But obviously we all have
these phones in our pockets and.net and Xamol. That story is complicated. And particularly the building, the bundles and submitting them to the store story is very complicated. And I have a friend who is like, Hey, this is really, you should check out XBO. It's pretty straightforward. And I can help you with your problems. So I was like, all right, I'll give it a shot. Yeah. And it spent pretty good. I'm not a huge fan of writing in JavaScript
and TypeScript. And I have to like kind of get my head around it every time. But then on the Windows side, I feel like that's where I'm just like at home. You know, I'm like in my living room with the languages and the APIs that I am used to. But still I have a WinForms app, a Winapp SDK app multiple. I have a UWP app and I have a WPF app. Because at some point, this is another thing I like to tell people is I feel like making apps
is a little bit like candy making. So apparently in candy making, there's a saying that there has to be one hard step. Because if there's not, you know, people are just going to rip you off and copy you. And so I think in all of my apps, there's at least one hard step. But I don't want to fight the framework. And so if I tried to do text grab in Winapp SDK
or in UWP, I would be fighting the framework. It would be so challenging. So it's actually easier for me to kind of learn a new framework and kind of learn a different way of doing things because it's way harder to actually overcome a full screen borderless transparent window. So that those are the weird little things where it's like, no, what roadblocks, you're not going to break through and avoid them. And it's really again, it's about
effort and it's about time. Like I can. And ultimately at the end of the day, these technologies have been around for a while. So if you Google how to do this in WPF, you just get so many answers. So maybe 20 years ago, that wouldn't be the case. You know, it'd be super hard to make these apps as fast as we can. But it's just so easy with all the resources that are out there and all the stack overflow answering your exact
question. So the jumping between frameworks isn't as much of a challenge as it maybe has been in the past. Yeah. So everything is possible. So before it was a, is this possible? And I call this sound API in JavaScript. And now it's like, Oh, yeah, you can totally can. It depends on how hard you want to work. And you are learning a lot while you're doing this. It's a learning opportunity. But it's also a matter of just checking to see what's
going on elsewhere. So part of it is you don't want to spend so much time and it'd be so invested that somebody elsewhere is solving a problem that you've had. And you didn't even check like you didn't even see what was going on elsewhere. So while I really love Expo, my time in in react native and actually writing the app, I, I'm like, it's not for me. So it's, it's fun. It's pleasant. But I have no interest in like moving everything
over that way. The web is great. But it's just, I don't know, I don't know what it is. There's just the animal spirits of how it feels to be building that cut the software. And I just love building these, these desktop apps. You want to get these apps used by as many people as possible. But the power toys app, which is free and you can get on windows, which I think is like the first thing I install, I put windows on my machine and I get power
toys. And it just basically turns windows up to 11 and Clint Rutgers and the friends over at power toys have in the last couple five, 10 years started calling people up that had cool utilities and said, Hey, why don't you just become a power toy. So then your app might go from a couple of thousand installs to several, I don't know, 100 million. How did text extractor end up in power toys? And did they give you a giant bag of money
or did they just give you a high five? No, no, no, giant bag of money, unfortunately. But so how it happened is I think at some point, like people who put things out in the world, like we're all trying to like look at, you know, what are problems and what are easy and, you know, everyone's like, Oh, I got a really easy idea. Everybody always tells me ideas that they have. And at some point, you have to think, if this is so clever, like, is it
just going to become the air we breathe? Like, is it just going to get become generic right away? Everyone's going to have one. Like, am I in a moment or do I have something special? So like you mentioned, it's open source. Anybody can contribute utilities. And there was an issue that somebody opened and they were like, Hey, I saw this video on Twitter that somebody did took a screenshot and piped it into a test rack. We should build something like that.
And I was watching that thread. And I was like, mm-hmm, mm-hmm. I have made this. And somebody mentioned my text grab and they were like, Hey, this is open source. Why don't you just use this? And I was like, Okay, at the point I have to make a decision. I can either let someone else do this or I can kind of own it myself. And if I own it, I can keep it scoped. I can keep it to be a specific thing. And so text grab does, like,
it has like four different modes. It has, does a lot more stuff. It's a lot more flexible and like weird in ways that power toys one is not. But this way I can, you know, get the exposure, connect with the team. And I've been still connected really good with the team over there. They're all really great. But I still have text grab. And a ton of people come to text grab from text extractor and they say, Oh, yeah, it was good. But like, I wanted this feature and that
feature. And I saw you built it over there because really, text extractor is a way for the team to understand the use case. They understood it. They kind of, you know, got some data. They figured out how people do it. And then they built a lot of that functionality directly into a snipping tool. And I'm like, it's inevitable that these things happen. But at least I got to play a part here. And, you know, I get to make some good connections. And I think I, I, well, I became an MVP because of it.
And that, you know, opens doors. So at the end of the day, it's about making connections and opening doors. And that's, so I knew that it was going to be a risk. And I did not get, you know, life changing amounts of money. Well, it's an open source project. There's a ton of things inside of power toys that are open source things. It's almost like a packaging bundle, like the humble bundle. It's like, yeah, let's throw it in there and that'll make everyone's life, everyone's life easier.
And then I like the idea that you, you kind of forked it. So you do have your own thing. You can run in your own direction. And text extractor is its own thing with its own unique feature set. So you get the best of both worlds. Yeah. Very cool. Well, thank you so much, Joseph Finney, for chatting with me today. Yeah. Thanks for the opportunity. You can check out Joe's apps at Joe Finn Apps. joefi in a pps.com download outdoor fitness download in calendar text grab and lots of other great
things. I'm a big fan myself of mini look, which is just a tiny little email client for your outlook. It's fantastic little thing for firing off quick little emails. This has been another episode of Hensel Minutes and we'll see you again next week.