Software Developers Journey Podcast

#146 Miguel Piedrafita is a 19 years old indie maker


⚠ The following transcript was automatically generated.
❤ Help us out, Submit a pull-request to correct potential mistakes

Miguel Piedrafita 0:00
My goal for Blogcast was to make it in a week. Like That was my goal. I want to have a finished version of these in a week with like a dashboard and everything. And I ended up making that. And I got my first paying customer in that week, like at the end of the week, which was really great. And that one I worked on for like half a year or maybe a year, I'm not 60 Sure. And that one ended up making like, it was doing $50 a month, which is like, it's not a lot, but like, I was adding a year at that point, I didn't really have any expenses at sight from like $5 amount a year I was in service, so it was really, really nice.

Tim Bourguignon 0:52
Hello, and welcome to developer's journey, the podcast, bringing you the making of stories of successful software developers to help you on your upcoming journey. My name is Tim Bourguignon. And on this episode 146 I receive Miguel Piedrafita.

Tim Bourguignon 1:07
Miguel is a 19 years old indie maker. Do I need to say more? Oh, no. Miguel, welcome to DevJourney.

Miguel Piedrafita 1:15

Tim Bourguignon 1:16
So the show exists to help the listeners understand what your story looked like. And imagine how to shape their own future. So as always, let's go back to your beginnings. Where would you place the start of your devjourney?

Miguel Piedrafita 1:31
Sure. So I like I had an old computer that my parents gave me when I was like, maybe eight or 10. But I like to play with it and like try things I messed with the Windows registry and deliberative verifies and all those things that you see what happens. I've always been like, interested in computers and technology in general, the real coding, are they when I wasn't used to coding happen in school, we had these technology class where we basically learned Word and Excel, and PowerPoint and all these things, year after year. And then one day, the teacher got tired of teaching us the same thing over and over again and decided we are going to learn HTML. And I mean, it lasted like two classes, maybe because no one got it. And then he went back to work. But he, because like, I knew about CNO about all these things, but they were like too complicated for me to get started. And something like HTML was a lot more approachable. So I, I once I figured that existed, and I really didn't need needed to run anything special to use it, you could just open a browser. Yeah, I started learning on my own. That is good. That is good. That reminds me of my start as well. One of my uncle's was programmer.

Tim Bourguignon 2:48
And when I asked him, Hey, can you teach me something, he gave me a book about C and say everything is written here, you just have to follow this. And I read through the book. And I was finding it fascinating. I just couldn't figure out how to compile the whole thing. And so I was just theoretically playing with my book. And that was it. Didn't know what to do with it. So I understand this idea of not having to compile anything just tinkering with with a text file, and just loading the repo there and seeing what that as that is, that is very intuitive.

Miguel Piedrafita 3:18
Yeah. I also like I had downloaded some PDFs about CNC plasma. And there were like university level stuff. And I was like, maybe 1011 at this point. So it wasn't really approachable. Okay,

Tim Bourguignon 3:31
but but you weren't tinkerer? You had se usat? You were playing with a registry and probably formatting your your hard drive a couple of times, because you messed up with Windows too much.

Miguel Piedrafita 3:39
Yeah, I was the type of kid who Yes, like sees a button. And the best way of learning how things work is just like, try them out and see if it breaks Well, it breaks,

Tim Bourguignon 3:49
which is perfect for html5. You can try it out and see what breaks and then look at the the dev tools and see what what changed and go back that that

Miguel Piedrafita 3:59
is cool. And also you don't break your computer, which is HTML, which is also nice.

Tim Bourguignon 4:06
Okay, so how did you so you put your finger into the machinery there with with a teacher showing you that this weird world exists? How do you get from there? How did you start tinkering and learning about that?

Miguel Piedrafita 4:19
Yes. So the first thing was just like learning HTML basics, which have you in class, then I just went home and continue learning now in HTML, like I look through tables, say we were so for another class, we were using this platform, which had like interactive exercises, and they had an embed pattern in there. And so I basically discovered a iframes. And like, put him one side content into the other and my first web page, I think it was like some interactive content from this site that I made because you could create your own exercises and stuff. Yes, like embedded in a page with a title or something like that. And then my school actually had like an index page, like we had computers and wait You open up person that can be like, a directory of all the links you could do. And it was like really nice with CSS and amazing like, what you hover that needs, and the logo spin and stuff like that. So I basically wanted to figure out how they made that. And I mean, the spin and everything took me a while to figure out because like, I didn't know what CSS was, but I, I guess viewed the source see, like, what happens if I change these and I ended up making my own for my computer with like, all my all my links with when that match, but basically clone that. And that was like my first design, not only original design, but like full web base with CSS that

Tim Bourguignon 5:36
I copied and stuff. Okay, so you basically reverse engineered the, the intranet homepage of your school?

Miguel Piedrafita 5:44
I mean, it's not reverse engineer, yes, right click, users a copy, paste, but like, yeah, I try to figure out how it worked. Like, what happens if I change is what happens if I, I did not know anything about CSS, but I managed to figure out more or less how the animation worked. Yes, like, what lined you could remove and it remove the animation that was like the way of figuring out how things work. So yeah, I recreated that crew.

Tim Bourguignon 6:08
Really cool. Did you at some point, start learning things from scratch? Or did you go by tinkering like this and try on the error and really trying how seeing how, how you can modify the existing state,

Miguel Piedrafita 6:21
I mean, atom even now my preferred way of learning anything is yes, like, prayed based, like making a prayer. If I want to learn a new technology and make a prayer with it, and try to figure it out. As I go, now I have like a more a better understanding of how things work in general, like, I had to pick up Yaba for a project that I did last week, just a small thing. And I had never used Java. And it was it wasn't more like tinkering. Like, I have a general understanding of how programming languages work. So I could pretty easily get into that and know what to search for and stack overflow and things like that. But yeah, at the start, it was more like, I have no idea how any of this works. Let's look through the lines. Let's try to understand what each one is adding. If I'm not sure what one does, let's comment it out, see what changes and stuff like that. That is that is interesting.

Tim Bourguignon 7:09
When you discovered CSS that that was a new world. So did you did you? Did you just like Like you said, just comment things out and see what changes? Or do you try to understand the whole first the big picture and see you see how CSS is structured and etc, really Tinker at the line per line level?

Miguel Piedrafita 7:30
Yeah, so the thing about CSS is like, I knew CSS existed, I knew what I mean. I knew text, align center and stuff like that. I didn't really know CSS until much later, like the first purchase that I made. were basically pulling in bootstrap and forgetting about it must have like that. We can talk about this later. But I actually learned CSS through tailwind CSS, which is this utility based CSS framework. So it was more of like, I mean, I knew at that point, I could write some CSS, but it was more of like, I learned to use tailwind. And then I slowly learned the underlying properties, the tailwind classes apply, which is interesting. So first, using using the framework and then slowly or gradually, gravitating back towards CSS understanding

Tim Bourguignon 8:13
what tailwind is really doing in in, in the back.

Miguel Piedrafita 8:17
I mean, the thing about CSS is that you don't have to learn CSS because CSS is yes, like a really simple. Here's a rule with a property and a value. And that's it. The thing is, then you have to learn all the different values and how to use them. And that's where because the thing about tailwind is I can just pop in 10 classes on an element, and it will show up, like I can refresh my browser and see it in real time almost. So it was more of like, I know CSS like I could write this on my own. But learning to design in CSS and learning to be seen in the browser was something that I did with tailwind. So going, like I don't think I ever made a product that was like fully CSS I had to write a lot of CSS for I jumped straight from like bootstrap and boom, and all these things to tailwind.

Tim Bourguignon 9:03
I see what's in my mind right now. It's also the, the the analogy with with JavaScript. And something like 10 years ago, jQuery was still really booming. You could see really, developers first doing things in jQuery, and then slowly realizing that you could do that with JavaScript with with plain old vanilla JavaScript as well. And seeing when to use which, and really easy, okay, you don't need to have jQuery in this case, you can do it in plain JavaScript, or you really have to use the jQuery in some time. So you could really see the developers going back and forth when they realized how things interface together. Yeah,

Miguel Piedrafita 9:40
I mean, it's not exactly the same. Like I get an array I did that with when I got into PHP, which was like my first proper programming language, and we can talk about these in a second. But like, the thing about tailwind is it's it's not really an abstraction is yes, like a layer on top. Basically, they for it. CSS property exists, almost. You get a class like that. Maybe you have to, you want to set padding, you say, PB four, and it has like an inner scale of like values that you can customize and whatever. So it's not like an abstraction, like jQuery would extract a lot of functionality for you. It's more like a one to one mapping. But using tailwind for me helped me to move quicker. And also like, I cool. I know, it made more sense for me like learning Oh, so I went to make a car they guess either shadow a few borders or like a margin and stuff. And also, tailwind has a really great documentation. And you can you can see, for all the examples, you can see like a fairly properties, you can see examples. So it's really helped me like see how can I use all these things together and understanding Flexbox and all these different things? Okay, I

Tim Bourguignon 10:44
see, I see. You. You mentioned PHP? Did you have to go into PHP? How did you choose? You mentioned Java as well? How would you choose to acquire with air quotes and you new new language or new framework?

Miguel Piedrafita 10:58
Yes. So basically, I have been doing like HTML for I don't know, around a year, it wasn't like consistently over the years, like I was stuttering, I was now in on some breaks, I would go to the library and try to code on the computers they have there. And also at home play that playing around with stuff like I knew I had a pretty good understanding of like, this is server, this is client, like the difference and that you can there are some things that you can just not do with clients like authentication, for example. So I wanted to learn to actually make apps like HTML by itself doesn't really do that much. And like I was already down the web track. So PHP seemed like one of the best choices that I could make. And the thing is, like, I, I remember, I took the Code Academy course on PHP when it was free. And I basically, speed run through that in like, one Friday, when I got a pretty general understanding of things. I like I did the whole thing, including algebra oriented programming and stuff, I didn't really get that I just, like, understood what they told me and complete the exercises. But even really, like I didn't really know how to use it. And then I, I built like a few test things like I remember building, like our license manager app, something that you could connect to a database, I was writing the queries by hand and everything. And like, verify if it has an API endpoint, that you could verify if a license exists or not. I didn't even know Jason exists at this point. So I made kind of made my own format for to return things, which wasn't great. And then pretty fast. Actually, I only made like, one complete app in PHP, I mean, complete app, it was like three PHP files, like all the database and application code was mostly copied from the PHP docs. And then I stumbled upon Laravel, which is a PHP framework inspired by rails, and all these different things. But that was the thing that really clicked for me. And really, actually what I've been building until just recently, I build all my products and apps with Laravel. Okay,

Tim Bourguignon 13:06
okay. You mentioned projects and apps, quite a lot of times and I looked at your, your homepage before, there's a whole bunch of projects there. How do you, I assume you are really project driven, you take a project, and you say that as well, you take a project and do something and through doing this, you will learn something new. And so the question I have is, how do you choose the projects you want to do? And how do you make sure that those projects enable you to learning what you want to learn?

Miguel Piedrafita 13:36
Yeah, so at the start, it was like, like, I remember, as I mentioned, I started learning Laravel, I found this great site called Lara cast, which is basically like, a course platform. Yes, for Laravel. And they have like, free courses for like learning level from scratch. And everything is like a really, really great resource. They also like update him every year and stuff. And after learning, like the basics, the model view controller model and stuff. I said, like okay, I want to try out something I'm basically I guess, made I think it was like a profile. I don't remember what it was, it was Yes. Like, it wasn't a real thing was just like a combination of things I want to figure out how to do. I can remember at some point, there was a way to upload avatars because they wanted to learn file uploads. There were social like endpoints for with validation and stuff, authentication codes, that comes out of the box and stuff like that. But after that, after I did that for like, a week, and then I got tired of that. And I, I asked myself, like, what can I make that will actually teach me like, I wanted to make a foolproof basically, um, around that time I was participating in in Google coding, which is like competition that Google organizes for teenagers to learn to code and stuff. It was this was in December, and I noticed that all these organizations where you had one of the first tasks you had was like, okay, so you create a GitHub account you request to do In our organization, some someone approves you. And then you basically start a few repos and stuff like that. And the thing was, like, like I, like I say, mentioned, even before learning HTML, I read a lot of stuff out CSF. So I had a pretty good understanding of like API's and servers and stuff. And I noticed like, there's a pretty big bottleneck with like, every month having to basically fill out a Google form with your GitHub username, and then someone has to come in and manually add you to organization. And so I thought, there's probably some endpoint on the GitHub API that allows people to invite others to organisations. So it would be really cool if I made an app that basically allows you to have people out to invite them into your organization. And I took I made a few important decisions with this, basically, I, I decided that it would be open source. And my reasoning for that was basically I'm making my like, second ever Laravel app, third PHP app, they call this probably going to be awful. I want people to be able to look at the code and tell me there's a better way to do this and contribute. And yeah, on a rando time, like when I got into Laravel, I started like, la casa notion community with lots of packages. And so I started to contribute to some of those I contribute to the Laravel framework a few times as well, free was really into, into open source at that time. And that was also how I got the first people to follow me on twitter on several building my audience stuff. And so I started working on that I managed to get it working, it was ugly, but it was, it worked, which was nice. And it also a few big organizations started using it. I even got some, like, there's this organization called force for Sasa, which is like, like, you know, open sourcing SEO organization that organizes a lot of events and stuff. Also, the open source design organization, they actually designed the logo for the application for free, because like it was open source and stuff. And yeah, that was really cool. That got me into it was like a big break. Because I had to make a dashboard, they had to make authentication, I started adding new things. At first, he asked to enter your username and click the button and you were invited, then you had to log in with GitHub, and you were redirected to the invitation and stuff like that. And I actually ended up redesigning the thing a couple of times, now, it looks a little bit better. Like that was the first point that I picked up when tailwind actually came out to figure out how I could implement the design. So yeah, and after that, it was more of a kind of, like, I know, I will probably learn something with anything I make. So basically, just I had a cool idea that I think this would be cool to work on. This would be fun. And or I was playing around with stuff and figured like, Oh, this would be interesting to do this with this. And then I guess went with it.

Tim Bourguignon 17:47
That's fascinating. You said something you said, I want to figure out how this works. So that really sounds to me like you have some experiments in your mind that you want to knew or try out. You want to understand how logging work, you want to understand how how authentication were etc. And then you find you find a way to do that. That is that is really cool. But how do you go over the problem that the usual problem of finishing things, of not just trying it out understanding how that works, and then leaving it B and leaving it to rot and not finishing the project? And you seem to really go the extra mile of finishing things and pushing stuff really on the internet so that people can use it. That is fascinating to me. How do you how do you do that? How do you manage?

Miguel Piedrafita 18:33
Yeah, so a lot of it is basically that I'm a perfectionist. And yes, in general, like for example, one of the latest products I released which we can talk about later which is situs it took me eight months to finish and it is not because like the implement the parts of matter where like I had that on the first month it's because I redesigned the whole front end four times and actually five times now because I really signed it again, a just a on December. Like I didn't really and even more now that I got into design I really obsess over every detail. It's like the thing about the finishing breaks is that I don't finish Hello folks like I have a I start a lot of things The thing is you usually just see me talk about the things I finished because like the old things don't last more than a week so I may make one tweet about it but the one that guarantees tweets like four weeks and then actually has a finished product is the one you see it's kind of like survive up CPS likely even the product list so my website is kind of like I only add things in there re released in some form. So yeah, I play with a lot of stuff. Like for example, I usually every summer I I start from three to five different products ideas, and then pick one to continue after. So yeah, I I just play around with a lot of stuff and if you if you follow me on Twitter, you'll see Because I'm always talking about things that I'm learning and discovering. But the things that people know about because they are, they are the ones. They're the ones that I talk about the most. And that's because they're the ones that actually don't die in the first week.

Tim Bourguignon 20:12
Okay, and the list is too long, I'm gonna say, I'm impressed. So if that is just the tip of the iceberg, I have no idea how big the iceberg really. But there's really cool. That is really cool. Awesome. You said you you, you took part to the OSS community. So So submitting pull requests to Laravel. When did you do that? And how did you decide that it was the right time to submit something, you also made the comment that it was when you when you push this first open source project, and that it was your second Laravel project? And you were afraid people would or you were hoping people would would correct you and tell you how using. So how was the courage to submit?

Miguel Piedrafita 20:56
So what I started doing is I started reading through lots of code, like because the great thing about open source is that you can go to all these awesome packages, and you can just read the code, and it's going to be PHP, and it's usually going to be more or less understandable. And if it's not, you can either I opened a few issues like hey, great project, I'm just wondering, like, I am just learning new stuff. And I wondering why you did this, why you took this approach and stuff. And people are usually like, obviously, they take more time to reply than actually back requests, because it takes more time. But especially in the larger community there, they were really helpful. And they helped me a lot. And I started like there was like a few years maybe where I basically read through every pull request that came through for Laravel. Like every day, I would take my GitHub notifications and say, Oh, so these people prtc in and then it got accepted, or it got rejected and stuff. And so at some point, I had like a pretty good idea. At first, it was more like, I guess quick fixes, I think I'd be like, I'm gonna go in sick now. But probably the first one was like a typo, or something like that. And then eventually, as new features were added, like I remember Laravel has this templating language called blade, which is like HTML with a few sprinkles inside, you actually don't have to write PHP in it, you can just do add if and it is a conditional block. So you have like open bracket, PHP, if whatever return and the thing about that is that got added. And then we got like directives, you could make your own ATI things. And I thought I'm doing if the user is authenticated a lot, so maybe I should add, add auth to check that. And like, that's something that literally every Laravel app uses today. Which is pretty crazy. To me, like, yes, a person through applications in the wildland sim some code that I contributed five years ago. That must be awesome. But yeah, in general, yes. Like I thought, or maybe someone made like, there was a thing where people were adding, like string helpers. So string between the strings that and like, eventually the Taylor, which is like the creator to go to a tail of it, and he was like, no more helpers, there's, we're not going to accept those anymore. And it became kind of a meme. But there is also PR, I think, one or two of those, because it was like low hanging fruit. I can also I like to review, like I was reading through prs. Anyway, if there was something duplicate and stuff, I would comment on it or review it. And eventually, that helped a people start to know me, as well. And I started understanding more. And maybe the things that I was reading through a few months ago that I didn't really understand I understood now.

Tim Bourguignon 23:40
And things like that is fantastic. And you weren't you were 16 when you started, or 15, when you started with those open source communities

Miguel Piedrafita 23:47
that most of the level community started knowing me at 16. So that's like, more or less the eight, this is amazing.

Tim Bourguignon 23:54
This is really cool. Good for you. When When questioned about the project again, when do you decide that a project is going to be more of a learning project? And so you can take the time and really start with a new technology? For instance, take up Java and start with it. Or when do you have a feeling? No, I really want to get this project out the door. And so I should maybe go back to Laravel. Until when because I knew those and I'm really, really efficient with it.

Miguel Piedrafita 24:20
So going back to the the first way that I made these a GitHub thing after I kind of finished that or it was like a usable state, I decided, Okay, now let's try something else. And I basically like you know, these I don't know how familiar with like GitHub depends about these other basic prs, your dependencies. So someone had made the first one of those for JavaScript dependencies. Like I think it was green tech related or something like that. And he thought it would be really cool if you have something like this for PHP. And I made that I actually, like I really knew the GitHub API. And that was mostly the GitHub API. So I made something like that. That was called dependency II, which is a pretty great name. And I'm, I'm mad that no one else has made up for it with a name because it's really great. And I decided to go close a source for that one. Because I, I had tried the open source thing, I was more confident with my code. And I was hoping to like I was saying people in the labor community made paperless. And I was hoping to eventually made software as a service hub. And like, that got to production kind of post like beta. I never like I opened access, but I never learned to I think I may have learned to them production. But like, it didn't really take off. And there was like this pretty big issue with like, the we updated your dependencies a file, but the lock file wasn't updated. So you have to pull it down and redo that, because I basically was doing all the updates from memory, I wasn't in a using the file system at all. So yeah, so I kind of gave up on that. It was like the beta got released, it had users, I think it got like 100 user at some point. But I was playing with, I basically was playing more with like, UI kit that I found. And I thought this would be like it was like a documentation UI kit. And I thought this would be really nice to have a habit automatically generate documentation for people with this, like Laravel. Laravel has really, really great documentation, like everything is design and documentation, it's open source. So anyone come here and stuff like that, I thought it would be really nice. If the lower of barrier of barrier, the barrier of entry for these kinds of quality was lower. So I thought I have all this design for a recommendation, it would be really nice if I could get like connected to GitHub, because I had been using GitHub a lot for the API. And you could just like have a repository full of markdown files that just generated this. And so it was like my first the first commercial breaks that he made was called on MacBooks. And the really great thing about this break is that I basically made my own markdown parser. So people could embed videos and stuff like that that markdown really does not allow. So I can talk more about like building products and trying to figure out how to actually make money with with learning pace in a second. But the thing about this is that for these first ones, there was basically like I had like a lot of ideas, because that's easy. Coming up with IVs, at least for me is easy. I had like an endless list of them. So I just picked something that was fun to work on wouldn't get me completely out of my comfort zone. Like I was doing things with the GitHub API, which I was comfortable with. It was doing things with Laravel. But also I would learn something new, for example, in this new period, I would learn markdown and also I ended up learning a lot of reax for personal maximum. So I tried to find something that was first of all fun. And then that would also teach me something while not having to start from scratch every time.

Tim Bourguignon 27:52
Okay, so you try to keep many variables the same. So you saw that you're really confident in what you do. And you change one variable completely. Maybe it's the domain learning markdown and how to handle this. Or maybe it's, it's the GitHub API and etc. and really trying to have one variable where you're really gonna learn something.

Miguel Piedrafita 28:09
Yeah, I basically wanted to allow myself to have a prototype of this in like a week or two weeks out. And then after I heard that, that is the core, I can do more things like I remember, before I learned CSS for Mac docs, there was this like, they still I mean, dashboard. thing, I think it was like YUI kit or something like that, which was just like CSS for dashboards. And I thought, Oh, it would be nice to use this or something like that. And so I started with a template. And so I, I added another more things after that. But it was like, on top of that, so I'm always learning something new, but I have the foundation. Okay, did you recreate some projects with other technologies, just to see how another technology handles the use case you had in mind, I wanted to have like real proof. So I didn't really do a lot of rebuilding. I recently like when I told you, I'd rebuild the the site source interface again, I basically it was view, and I just ripped it all off, like I deleted the COVID server from scratch, and he remade in react. So I did that. And also there was for site service as well. There was like a part, the actual most important cause of the app, the app that actually does the thing that the app is supposed to do. And maybe I can talk a little more about that. So site service, we have jumped a few products, I can maybe talk about a few of the other ones because they are interesting as well. But Saito's basically takes dynamically generated sites like site with a back end like a WordPress site, for example, and make some static unit static sites from them. And the cool thing about this is that it basically watches for changes. So maybe when you publish a new entry on your own your WordPress site, and then it updates the static site. So you basically get the only thing of all the cool things about it. Let me say it's like you have a dashboard, you can have a team everyone add things. But you get all the bonuses from static site, which is like they load much faster. servers are incredibly cheaper they scale a amazingly and also like, you can't really hide them because they are plain HTML files. And so the parser actually generates the site was originally in PHP. And it wasn't, it wasn't great. And I wanted something that was really fast, like I wanted the compression of almost any site to be done in less than 30 seconds. And so like I made it, I made anything go. And this was like, This was my first ever go project, like I had never thought to go. And it's like, also way outside with my scope. Close, because I have been doing like PHP, some Python and node but go is like way low level like you had to, to clean your own, you have to do garbage, cleaning yourself, all the errors, they are not thrown, you just have to catch them and stuff. So that was fun. That was a fun challenge. I ended up figuring it out with like, go routines and like it's a really different paradigm. And I really enjoyed that. So basically, I don't I usually don't reveal stuff in our language. Yes, for fun to learn, I try to make it when it makes sense. And if it doesn't, I maybe try to build something new with that technology, instead of like revealing something. The thing about this is that what keeps him motivated to do all these things is like having fun with the project. So I try to do things that interest me, what decided you

Tim Bourguignon 31:28
to go in for this example with go and not not with a scripted language, or any other

Miguel Piedrafita 31:33
I mean, it wasn't really like a study decision, I just thought, oh, maybe this will be fine with go and then add. But also, like I know that go has a really, first of all, you can compile it to a binary, which is really great for the entire infrastructure that I ended up using. So at first I was running everything on my own server, but now like the binary runs on bare cell server, and I offload all of that, and I can just ship the binary without worrying for people stealing my code and stuff. So that's nice. And also I want to I have to make a lot of we have web requests for this. And they wanted to I have been hearing about go routines and routines like, which is like basically my understanding is like a better implementation of async await and promises. And so I thought maybe these would be like, I know, a lot of scrapers are either Python or go, and especially more go now. So I thought I this is probably one of the best languages to build this in. And so again, now we just have to figure out how to do it.

Tim Bourguignon 32:35
Just big air quotes. were cool. Yeah, really cool. It is worked out. And you're making money with it.

Miguel Piedrafita 32:42
Right? Yeah, so that's. So like I said, from that second prayer dependency, I one, I my dream was to like basically make a size that may serve as a service app that makes money. So dependency is immune to an idea and I never launched then the there was this other macdon thing, which was called a Mattox, which I made free for open source project, because that's what like, the idea was to allow people to have better documentation. And but I also made a paid plan for a paper that one person ended up subscribing to which I mean, it was amazing, because it was like my first money and on the internet. And after that, I made something called blow cast, which basically used AI and text to speech for like good text to speech, not Siri, to convert articles into podcasts. And you could just give it the URL of any article in anchor, and it would convert it into audio. And you'll see this a lot recently. Like they come in like 20 products lunch with this, and some newspapers have started, I started to use it. Like the great thing. The amazing thing is like when I started doing it, there was maybe one other breakthrough in it. So I feel like some of it is inspired by this, which is really great now like the newspaper thing, but all the these people aren't saying for example, the hunt. My goal for blockers was to make it in a week. Like That was my goal. I want to have a finished version of these in a week with like a dashboard and everything. And I ended up making that and I got my first paying customer in that week, like at the end of the week, which was really great. And that one I worked on for like half a year or maybe a year I'm not exactly sure. And that one ended up making like it was doing $50 a month, which is like it's not a lot but like I was at in a year at that point. I didn't really have any expenses at sight from like $5 amount the house and service so it was really really nice. Yeah, so after that the thing that I made after that, which is that these sites of thing, that was something that I knew would be a lot bigger. Like after I basically I learned say it is going to we're coming up on a year on that. But like after the second month, which was when I started getting like my friends into the app I already have one person paying me. And the plan was like 19 a month. So it was like a lot more already. And that one is it's an open startup. So what that means is that you can go to site source dot app slash open and see all the metrics. like yeah, that's, that's actually been doing really cool. I mean, I don't really do any marketing outside of like, tweeting about it. And when I come into podcast, I talk about it. So for that, for not doing for just word of mouth, it's doing pretty, pretty good. And yeah, that was, that was how I started making money on the internet.

Tim Bourguignon 35:36
That is cool. And is this your, your plan, as much as there can be a plan to create many small, small with with air quotes, again, projects that at some point really enable you to to do whatever you want, and have fun with what you do while you're trying to go after the big one project? Or how do you want to continue? Because Because you're not employed, right? You're really on your Yeah,

Miguel Piedrafita 36:01
so I'm not sure that's what I'm figuring that out. Because like, the original plan was to like, go to university, and I mean, university this year, but then like COVID happen. So what I'm thinking like, I obviously still want to be an indie maker and have projects and work on them. I think I may try to get to get a job for the next year just to try it out. Because that's something I've never done. And like, I can't really tell what I prefer to do, if I don't know what the options are. Like that's related to another thing that I've been really into recently, which is crypto. And if you read them and all these decentralization and stuff, and we're I have like a few places that I'm interviewing for, and they are all crypto because I think like, that's the closest to the future that I can work on. So yeah, but my plan is to keep building all these different things. Cuz like even with crypto, that's how we learn. That's how, like, I recently wanted to figure out how does this logging with your crypto wallet work? And they ended up recreating, making my own crypto library, like my own cryptography, not cryptocurrency, like you know how everyone says like, don't roll your own encryption and stuff. So I did. Yes. elliptic curve laboring, yes, to learn how it worked. Okay, I probably will never release that. Because like, why maybe I'll put it up on GitHub. But it's how I tried to understand and learn about things. So yeah, that is that is fascinating. And also, even even with the employment and stuff, I've been working on a new thing that I've announced, but I haven't really onboarding anyone into, which is the M dot link, which is a really interesting break, because it allows people to basically subscribe to a newsletter inside of Twitter. So for example, if you want to receive updates about the M dot link, you go to the link, there's like a subscription button there. That brings you into my Twitter, DMS. And there's, there's like a button in the DM that says, guess subscribe to his newsletter. And then every time I tweet about the end of link, you receive that within your DMS that's interesting, which is like a really interesting approach for like, I mean, it's great for a few reasons I really like like the advice everyone gets for like building an audience on Twitter. It's like a stick to one topic. And I never really liked that. Like I tweet about tech Hydra crypto Twitter, I was marketing a tweet about I've been learning through this and recently, and I tweet what they thinks that I make I, I was like the pay the patent lease for a Apple and Google all these things and tweet about interesting patterns when you see them. So I tweet about a lot of different things. And the cool thing about this is that I can make like, the link list for any any of these, and people can just subscribe to the ones that they care about. And because like I like, I know that there are people who really don't like there are non technical and follow me for like, marketing to it. Because like, as I learn in the open, like a when I'm learning something, I'm building something, I tweet about it. And so that's helpful. Some people and these people are, like, subscribe to a marketing list. And then they receive notifications when they do that with marketing, and they don't have to have their their feed full of tech stuff, basically.

Tim Bourguignon 39:19
That is fascinating. Yeah, I had to look at the link as well, that I need to look into it a bit more to understand really how that works. Yeah.

Miguel Piedrafita 39:26
And the thing is, I know Twitter employees talked about it in like meetings, and a few are subscribed to the list, which is really, really great. Like, I mean, it means that they are not going to shut you down, hopefully, because like, there were some prayers with API rate limits, because I'm the I mean, a lot of people and they basically Pump me up so that I don't hit those. Okay, let's do the thing. So it seems like Twitter likes these kind of things with his rate. So yeah, I'll be working more on that soon. And hopefully getting a few people in that is very, very cool.

Tim Bourguignon 39:57
And very interesting list of projects that you have on will will That to the show notes and so that people can find all the projects you mentioned. That is, that is fascinating to me. We have unfortunately reached the end of our time box, what would be the one advice that you would give to, to listeners, if they wanted to start stepping a bit more into this indie making scene and making projects like this? What What is the one advice that you think would be really important to hear.

Miguel Piedrafita 40:24
So I think something that a lot of people overlook, because it's not really a part of the product. But it's also important is community not only not only community for your project, which is also incredibly important to start doing marketing before you start building even, but like a community of indie makers that supports you and, and you can build together and it serves like as, as a collective knowledge service, like you don't have to fail to learn, you can learn from the failures of other people. But it also helps with motivation. Like there are there are these communities, my friend said, You started a maker, which is basically like, it's a social network based off to policed. So instead of posting, you serve, like tweeting out, you post you to ghoulie to do items, and then completed, and they have this great, really great community of people cheering into each other helping out, when someone launches something, they all tweet about it. So it's really great for like motivation, meeting people, and all of these things. And I think that if you were starting, like, if you've never worked on a project by yourself, and you want to basically learn something, it's a great place to be in, you can just go to gate maker.com is free to go in. And it's free to use, you can pay for like dark mode and stuff. But it's free, you're going to find a lot of people who are in the same position as you and a lot of people who are ahead of you and behind you. And then you can just talk talk about it and earthquake communities in hackers, which is more of a forum style. There's also a with a chat, which is more separate community. And it's a little bit more advanced for people who are I would say, a few years into in the making. So yeah, and also in Twitter, there's like a pretty big maker community and Twitter, mostly they can make it logon people and stuff, you can start interacting with them. And then people tweet about the things they do the channel equative if you build in the open, like you tweet, what you're doing, do you have motivation to continue? You have like, if you don't ship for a while, people will tell you, Hey, why are you not working on it? It has like an accountability. And also people get excited about your product. Or maybe you are already doing marketing without really realizing it. So that's I think that's what I like the most non technical technical people I can give.

Tim Bourguignon 42:39
Thank you very much for that. Let me get where can people find you online?

Miguel Piedrafita 42:43
Yeah, so my, like the center of everything is my Twitter that's at MC LPF. But instead of the first one, a I insert a nicer one, like difficult to spell, I assume it will be in the show notes somewhere, is definitely

Miguel Piedrafita 42:58
I also have a website with custom newsletter by recommend a sent anything in two years. But you can see subscribe, if you can, you should receive something at some point maybe like in five years. Yeah, it was a blog with a few technical articles I've been I haven't written anything in like a year I've been starting to write I my goal is like to do one post about crypto a week. Maybe I have like another blog for that separately. But it's linked from my website. I also like call a live market and like design, sometimes on Twitch, like I do a lot of things, the best way to is to follow my twitter and I talk about all the things that I do there, then people you know what you have to do?

Tim Bourguignon 43:42
Me Well, oh, fascinating. Thank you very much for this. And people really go on to his on his project site and look at all the things he created. And try to understand how fast you create new things. This is just amazing. Miguel, thank you very much.

Miguel Piedrafita 44:02
Yeah. Thanks for having me.

Tim Bourguignon 44:03
And this has been another episode of devjourney. And we see each other next week bye. What an inspiring story. Miguel is so young, yet he has done so much already. I really love how he carefully said, "Well, I decided to make this project open source because this was my second PHP app and my first Laravel app, and my code was probably going to be awful. So I wanted people to be able to tell me how he's making better". This is absolutely the right things to do. Yet, it is an astonishingly hard barrier for most developers. I am abashed. Did you check his projects already? If not, you really, really should. And how did you like his story? Right after the recording, I had to contact a colleague of mine and talk to him about why we don't manage as a company to create small projects like that. By the scores. This is really, really fascinating. I'd love to hear more about your thoughts. listening to me with a story. You can reach me on twitter @timothep, or use the comment section on our website, devjourney.info. Now, you are up, it's time to start a new project. So please decide on what you want to learn. Give yourself a short deadline, the end of the week and deliver something and if you do, and if you tweet about it, Link me to it and I'll push it further. Do have a great week. Bye