15 minutes news, tips, and tricks on the Go programming language.
Hey there. I'm Dominic Senthien Pierre and you're listening to Go Podcast. Today I talk about is Go a good choice for your startup? It's a little bit more complicated than that. Hello gophers.
Dominic:This will be a solo episode this week. So I was again lurking on r slash go hang on on reddit basically and yeah I saw I saw this topic you know going for a startup and it kind of triggered me so because it turns out like you know I know a thing or 2 about the startup and go basically so I you know let's start from the beginning I've been I've been building software service since 2,008 basically So at some point, I was, 8 years old in in this, in this industry at this point, and I saw I saw an opportunity to, you know, to have more fun than what I was building in a typical line of business application and things like that. You know, it it appealed to me that I wanted this freedom or this, yeah. This this this control over what I wanted to build. Maybe it would be a little bit more, exciting and whatnot.
Dominic:So, I mean, this, this space attracted me a lot, in in this early, early days. So I've been yeah. I've I've been I've been building small small SaaS you know so some some has been you know somewhat successful and then you know nothing nothing really crazy never went the the venture capital way as well. So it was always bootstrap. But I mean, there's there's 2 that, that, you know, sustained multiple employees and things like that.
Dominic:So I mean, it's it's not all failure. There there's a lot of failure and I even wrote a book in in 2018 about that. So that I turned into an online course later. And I'm thinking about, you know, adding some, some interesting thing in in in this course. But, I diverge a little bit.
Dominic:So to Go and start up, yes. I mean, well, of course. It's a Go podcast. It's we are all probably gophers at some point, you know, with multiple different years of experience and whatnot. I mean, we will probably say, yeah.
Dominic:I mean, go go can can do most of of the things. The things the thing is, you know, when when you're going to to build a startup. Well, first of all, it depends. There there's 2 path. There's the, you know, the self funded way, you know, of bootstrapping a company and there's the venture capital way.
Dominic:So if you are going to to take the first path, which is the self founded, you might be, you might be solo. You might be with 1, one co founder, maybe, maybe 2 other, you know, it it depends at some point. Of course, the best way to go is probably, you know, based on the technical fund there. What they already know is is probably the best show choice of technology to be frank. Because at some point, the goal of starting a software business is to finally start to have conversation with customers, making sure that your users are understanding what you are, you know, proposing them and start to get some early, early stage feedback to, to shape the product into what could be something that would bring money at some point.
Dominic:So the technology is, is not at all important to be, to be completely frank. I mean, and that's why you are seeing those no code, you know, offering these days. There there's there's there's people that are not technical founder that are able to bootstrap, a software company to, I don't know, 2, 3, 4 grand, in in MRR. And if you don't know, you know, MRR is like monthly recurring revenue. So the, you know, the technology is, is not at all important until you reach a very, very later stage of, of, of, of scaling.
Dominic:And you might never, never reach that to be, to be completely frank. So I always I always say things like there, if you are to build a software company, a startup, Anything that that feels over engineer at first is is overkill for a long time, you know, there's no need for all that shit. You're not building a company that has 500 engineers that needs to work on, you know, 10 different project that it's not it's not the same thing. So, I've seen that as the first mistake that people are are doing is that they are coming from the organization slash big enterprise world and they want to build a software company and they build that with the same kind of, you know, over engineered and over complexed way that they have seen so far because this is what they know. And the danger with that, especially if you are solo.
Dominic:So first of all, the first danger with that is that you will focus most of your time in your engineering things. Because you will have so many things to maintain just to, you know, just to change something and things like that. You will not have enough velocity to be able to do marketing and do customer development and things like that. So, if you if you are going to be solo I'm sorry but let's, you know, build a a small monolith, deploy that on the $5 per month, DigitalOcean server. Just SSH there, copy, copy whatever you need to do there or you don't even need a a CI at at this point and things like that.
Dominic:You you just need to put something out there and make sure that there's at least a couple of people, hopefully businesses that cares enough to talk to you and maybe try your software. So this is the first challenge. So building a software company is not at all about technology. And I've I've, you know, I've been doing that since 2008 and I I was not thinking like that at first. So my first attempt as most technical founder, you know, I I jumped into this mistake of thinking that I was getting progress because the project was was growing in terms of complexity, in terms of feature.
Dominic:So let's take an example for my the first product that I've built was a a a Twitter a Twitter, kind of application at the time. It was allowing you to enter some keywords and it was doing some research in the background and it was following people for you. So at that time, early stage Twitter, 2,007, 2008, when you were following someone, you know, you you were kind of guaranteed to be followed back most of the time. So this tool was basically just a, it seems simple today, but, I mean, it it it it reached, almost, 15,000 users. I was not charging for that.
Dominic:I was just building. I was just the this was this was probably the the the product that that that I've built that got the most product market fit in a sense. But, I was completely focused on the technology part. I was not really, you know, even thinking about charging to that. So so my my business mind was not really great.
Dominic:I was I was like 27 years old at that time. I I I just wanted to build something something cool. And and to be frank, it's fine. It's totally fine. But my point is as most technical founder did do, at first, we tend to see some progress in a software business because we are building things, we are adding feature that we think will will be useful and things like that.
Dominic:So this this is this is a trap. This you you should not and this is why, you know, this is why people keep saying you should you should build the minimum viable product and things like that. But it's it's it's it's bigger than that. You should you should probably not build anything more than probably 1 or 2 user interface and and try try to see if you are solo, try try to find people first. This this will be where where you will have the most problem.
Dominic:You know you know you will you will be able to build a software. We are software engineer. This is what we do, you know, to earn money and things like that. This is not the problem. If you are, with with a co founder hopefully you you have found yourself someone that is good at marketing, someone that is good at you know customer development or early stage getting traction to to something.
Dominic:So now you can probably focus a little bit more on the technical part, but even there. You know, and and this is, this is, this is where I'm coming with Go. So, especially especially so if if the the technical person that is going to build the software isn't, you know, proficient in Go and, and it's, it's not their, their main language. There's no reason to pick anything else that you already know. Unless you want a challenge or something like that.
Dominic:I've done that in the past, But, it's it's probably not the best choice to be frank. You are mostly better to go with what you already know and, you know, control what you can and and and think monolith at this point. And this is the danger with Go. So a Go technical founder could be tempted to to implement you know, way too much overkill, over engineered concept at this point. And what is this point?
Dominic:This this point is your early stage software business time. You're not looking after scaling, you are not looking after handling, you know, 10,000 users. You you will you will probably never have more than 500 to 1,000 concurrent user in your software anyway. And and trust me on that. I mean and if you are, then you have built something extraordinary extraordinary and you will probably be able to get funding at some point.
Dominic:Or you will have a lot of money to just rewrite the shitty monolith that you built at first. But I mean this this is like 0.01% of everyone that is building a software business. So the danger with with Go is probably to go with gRPC and go with a super decentralized distributed web application at first and you does not even know if your software offering will be bought by any companies out there. So, that, you know, that that is a huge investment. So, if you if you are to to take, I don't know, 3, 4, 5, 6 months to build something that you don't even know if anyone would care about that and and and worst, you know, anyone would would be ready to, to show you some money, then what what is the point of building that?
Dominic:You know, you're you're you're not really trying to build a software business. You're you're just trying to have fun and you probably want to build something. That is that is totally fine, But, it's you know, if your goal is really to build a sustainable software business that you, maybe you alone, maybe you and 1 or 2 other co founder would be able to live on that. Then I'm sorry, but the the quicker you can put something out there the better. So that's why you know something like a monolith is probably easier.
Dominic:I would even dare say that's why Rails and Django are so popular in the software, you know, early stage industry because it's, it's such it's so much quicker. And I know I can, I can also build, you know, a monolith and go very quickly? It's it's it's not really the act of building the monolith. It's it's everything in between. The database migration, just the overall integration with the front end and the back end, because you're building a software business.
Dominic:You will not have a huge front end team that will handle all the the shitty JavaScript and HTML CSS thing that that you don't like to do in your day job. Right? So, so you, you still need to account for that. And if you, you know, I come from a time where a programmer that was building web application in, in the early 2000. So I started my career in 2001 actually.
Dominic:And at that time, if you were building web application, you were, you were, you were by default, you were a full stack engineer that what we call full stack today, that that was simply a web developer in my time. There was no back end, there was no front end separation between those 2, you were handling, you know, the front end and the back end that that was that was what we call a web application after all. So, if you are building a software business and you are alone or you are with some co founder the co founder, maybe you will be lucky and you will be able to find someone in in the co founding team that will be able to do the the UI as well. In that case, then yes, you know, you may you may be tempted to, to just focus on on the back end and maybe now, you know, building a model back in the API and go could be could be something you you could investigate. I'm I'm not convinced that that it will be quicker.
Dominic:But it's certainly there's there's other reasons though to choose Go. And I've built 2 SaaS in, in Go. 1 in 2016 and 1 in 2018, actually. And I, I never regretted that, you know, that choice. So what happened basically in in 2016 I think it was 2015 actually.
Dominic:Don't really recall. It's not important. I was, I was starting a business or in fact, I was I was joining joining someone that that already adds some kind of validation for an idea, but they were looking at now implementing this idea into a software product. And they wanted to, to go with Node. Js because you know Node.
Dominic:Js at this this time was extremely, extremely solid. It still is. And in turn, you know, when I say solid I mean I it's it's it was a poor, choice of words. It was like popular. Yeah.
Dominic:So I did that because, I mean, I the the, the value of easily finding people and things like that. You know, at at some point, I I said, alright. You know, I I'm proficient with with Node and and TypeScript and whatnot. I mean, this this is fine. So I did that and after 1 month or maybe it was 2 months.
Dominic:I was I was having so much pain with all all the the callbacks and things like that. You know, promises was not really very very dare at this time or at least maybe not super popular. The the front end was in React. At some point, I woke up in, in the morning and and and I I already started, Go for for 1 year, at that time. And I I rewritten the entire back end.
Dominic:So, it was still the the right time to do that, because it was very very early, there was not a huge amount of feature, but you don't want to be in that position. You don't want to do a wrong choice of technology when you are starting a software business. You know, the less time that you fight with with the choice of technology the better the better chance you will have to to have a successful business. So, that's why the you know the the rules number 1 is go with what what you know, what you what you know that you will be able to build something very quick. If it's good and fine, it's it's all good.
Dominic:If it's something else, you you should probably not consider anything new at this point. You will have a lot of time at some point because let me let me explain a little bit how it works. Because it's very different. If you if you if you've never been into a a small software business and when I when I what is a small software business? A small software business is under 15, 20 employees maximum.
Dominic:So, you know, this is this is very calm well, often, if you are lucky and and you want to build a a great culture and things like that, you might have heard about the calm company, you know, mindset and but, I mean, we are diverging that there's so many things to say. I mean, we are exactly where, where I'll I like to be in my life. This is the kind of thing that I really really enjoy building. So for me, it's it's not building a software. For me, it's about building a software company that have a great culture, a culture of calm where future employees will will just want to work there.
Dominic:That, you know, there's there's no crazy meetings and there's no agile and and all that all that enterprise, weight that you that you you can you can skip at that scale because you are maybe 5, you are maybe 12, etcetera. I mean, this this is this is completely different. But the thing that you're building is not really the software. So so so you're building this company and and and this is yeah. This is, this is where choices really will impact, your your future.
Dominic:But I I I was starting to say that at some point, you you will have a lot of time. Because the the cycle for a typical cofounder is that you will be working like a crazy person in the early stage of your software business. So, it's probably it it could be the the 1st year, maybe it's the 1st year and a half, 2 years where if you are lucky you will you will gain some traction at some point and now, you will start to receive some customer feedback and and things like that. And and the product will be shaped based on what your team envision for the future and how to how to grow it. But that's the beauty.
Dominic:If you're lucky and you can skip the venture capital, then you you will have so much control over what you want to build and and this is this is where building a superb software business is possible. Because now, you're not in a growth at all costs mindset or forced to do that because the Venture Capital needs to, you know, to capital on on their investment and they want they want to see result and things like that. And you need to burn money and things like, you know, so this isn't this is probably the the biggest choice that that the the founding team that that that start a software business will need to do. You know, are you going to be self funded? Are you going to take a little bit of of, you know, of investment?
Dominic:Or are you going to need to, to have a series a and things like that and now you you need, I don't know, 10, 10,000,000 to survive. You know, this is all very, very different. I never did the, you know, the the huge VC founded thing. So I I cannot really speak for that. What I can speak for is if you want to build a calm software company, then like I said, at some point, you will have time to over engineer.
Dominic:If if if this is if this is what you really like to do, don't do that at first. But if your if your company is successful and you want to scale and at some point you say to yourself, well, we need to go from our old monolith to a distributed service based Go application. You know? There's no problem that there will be a place and time to do this transition for you. And and you will have you will have the perfect, you know, environment to do that because now the money will flow.
Dominic:You will not have any stress. You will be able to do that, you know, if you if it took if it takes, 6 months that's that's no that's no problem at some point. Because at some point, you know, it's not it's not like a software business needs, updates and a new feature and things like that every every weeks. So, so, yeah. I mean, this is why I I think, the the choice well, yes.
Dominic:The the choice of language is not very It will not impact you for a long time. It's it's not it's not an organization that you're stuck and at some point you cannot change because that would be extremely crazy to do. A startup is a small software company is very different than probably what you have lived. And for for me it was the other way around. So my my my experiences are more with, you know, smaller software, companies since the beginning.
Dominic:And I've only had one experience with a huge enterprise. And I can see the difference. I mean, in in a huge enterprise well, you cannot you cannot say, you know what? Next Monday we are we are going to rewrite this core software application and we will do that in the next 6 months. You know, it will take 5 years to do.
Dominic:If if the if the management, you know, far far in in in on top of you ever accept to do that. Because at some point, you know, they they are they are probably making some bonuses on, you know, key objective for the company. So they don't care at all about, you know, about about the software rewrite and things like that. Even if if if it's it would be extremely beneficial for the company at at some point. Yeah.
Dominic:There's so so many so many level to convince to do something. And it's not like that if you if you were able to find enough customer. And at some point to, you know, after let's say after 2 years, you're you're you're bringing, maybe 85 or 100,000 per month and you are still like, I don't know, 3 person, 4 person. You know, you can you can just decide to to say you know what? We are starting to have a lot of scaling issues because now we are growing and and there is, there is 200 new customers per month.
Dominic:So it's it's time for change. You you you will have time to do that. It's not at the beginning of your software business that you you need to do those things. You need to really focus on shipping something, making sure that it will not cost you more in terms not not only in terms of money, but especially in terms of of time. So, if if for you you you have all always built, you know, distributed service oriented and and you want Kubernetes at first and you want you want to deploy on AWS because this is what you know and things like that.
Dominic:And you are certain that you will you will not have any any blocker or well, by all mean, if it's what you know and and you're confident that you will be able to build something very quick, then then go for it. The issue is is that if you're not really sure and and you you you when when you evaluate the kind of the amount of work that you will have to, to do because now you you are going to do the architecture, the back end, the infrastructure, the front end. You will probably have to to give end with some some limited support. Maybe just email or being on on the live chat. You will probably want to to listen to a cup a couple of customers interview.
Dominic:And if you are alone, then you you have you have a lot more, you know, on your plate. Now you will you will need to do, you know, the marketing website. You will you will need to do marketing. You will need to do customer development, you know, you will you will need to talk with with customers, do do some demos and things like that. There is a lot of things to do.
Dominic:So, it's very, very different than just being responsible for one part of a software in an organization. So so that that that is that is where the the choice of technology I think is very very irrelevant at first because you you need to pick the easiest thing for you or if you are 2 person that is this going to, to work on, you know, on on the technical part, then then, you know, choose something that that both will will be fine with and and that's it. So, So, yeah. I mean, This is this is, This is an interesting topic for me as well because, yeah. I've been I've been there.
Dominic:I've I've built I've built a lot of Sass. At first they were all in dot net. At some point I I changed it to JavaScript. Go, and Python as well with Django. So I mean yeah.
Dominic:The the technology choice is is not at all important. I'm sorry. I'm sorry to all my software engineer friends, that that might be listening, but but yeah. A software a a small software development company. It's it The choice of technology as long as as as you are good with it and you will you will be able to ship fast.
Dominic:This is all that matters. Alright. On that, I will see you next week. Bye. Alright.
Dominic:That's it for this week. I would really appreciate if you can talk or share about this podcast. It's always helpful. Also, another way to support this show is by purchasing my course. There's always a link in the show notes.
Dominic:So on that, see you next week.