The Stack Overflow Podcast

Leaving your job to pursue an indie project as a solo developer

Episode Summary

On this episode we chat with Samuel Simões, the developer behind Poker Now. Simões created the project so he an his friends could play poker during the pandemic lockdown. It became such a success, growing 100X, that he left his job building hospital management software and is now focused on trying to make a living as the sole author and architect of Poker Now.

Episode Notes

We discuss how Simões learned to code and the feature set that allowed Poker Now to differentiate itself in a crowded space. 

Simões shares the tech stack he used to craft the first version of Poker Now, and how he rebuilt the service after it crashed under the weight of a massive wave of new users. During the peak of lockdown, his site went from an average of 100 concurrent users to more than 10,000 at a time.

Lastly, we chat about the allure of leaving a regular job behind to work on a passion project, and about the challenges of maintaining a service and earning a living as a solo developer.

Today we're celebrating Divakar, who was awarded a lifeboat badge for answering the question: Searching a sequence in a NumPy array.

Episode Transcription

Samuel Simões When you have a software that you don't need to use with any kind of download, any kind of registration, it's a very good selling point. So I find that people, it helps people to choose Poker Now, because the alternatives back then was doing a download of a software, registration and had, you know, a lot of friction to play a game.

[intro music]

Ben Popper Couchbase is the SQL friendly, no SQL, JSON document database. The Couchbase Java SDK recently added great new features for Java developers like you. Check out couchbase.com/StackOverflow for sample apps and tutorials.

BP Hello everybody. Welcome to the Stack Overflow Podcast, a place to talk about all things software and technology. I am Ben Popper, director of content here at Stack Overflow and I am joined today by my wonderful co-host, Paul Ford of Postlight.

Paul Ford Ben! Here we are back again.

BP So Paul, one of the nicer things that happened to me during the pandemic is a group of guys I've been playing poker with for about 15 years, started regularly meeting up online to play poker and we had started playing right after college we played every week, it was a big bonding experience. And we got married, we had kids, we have jobs...

PF Oh interesting, so you're a hold'em guy, you're like, you'd like to hang out around the table. You do the little table tap? You do that?

BP Yeah. Table taps.

PF Alright, good for you.

BP Stack the chips, you know and mix them. So it was a great thing we have. But as you know, as we got older we had, we sort of stacked up our other responsibilities. We stopped meeting up, we probably met up like every three or four months and it wasn't as great. So the pandemic with the remote life and the Zoom and the text chain kind of brought us back to actually playing once a week. We started out with this service called Blockchain Poker, we were just looking for something that's like, hey, if we go on the web, and it's free, and it's easy to set up a table invite people in and keep it private. We had tried like one of the big like Poker Stars or something but you had a download a client. People who had worked laptops weren't allowed to install it. It became you know, confusing so is like what's a simple lightweight browser interface we can all use and so we had initially done--

PF I didn't know any of this, Ben. This is all news to me. I didn't know you were a poker guy. Are you a Vegas guy?

BP Well, I used to go to CES every year for my journalism life. I wouldn't really play a lot of poker there. But, you know, I enjoyed a little bit of gambling, you know, here and there.

PF Alright, all things in moderation.

BP Yeah, among friends. Poker has definitely been a great sort of like social connector for a while.

PF I play it with my children who cry. So, it's... [Ben laughs]

BP So we were doing Blockchain Poker, it was okay. We were collecting actual satoshis. But I don't know for whatever reason, they started changing things up there.

PF Really something wasn't something wasn't constant, predictable or functional in the world of blockchain based software? Well, what did you do? What did, how did you solve this problem?

BP We scoured the internet and we ended up using this service called Poker Now, which is better in all ways.

PF Sounds great!

BP Yeah, it's a blockchain, from what we can tell it's been a pleasure for use. And one of my friends noticed that at the bottom, it had a little sort of like, tip your developer. And so we started sort of poking around. And what we discovered is that it's run by an independent developer, a gentleman named Samuel. And so we sort of were shouting him out on Twitter, and he connected with me, and today, we have Samuel on the podcast.

PF An actual real life programmer?!

BP Yes!

PF Ah, that's the best. Samuel, welcome!

SS Thank you. Thank you for having me Ben and Paul. It's my pleasure to be here talking on Stack Overflow podcast, this is a truly amazing opportunity to be honest. And yeah, I am the developer of Poker Now, I created it. It's like Ben already said, this is a application that you can play poker on your browser with your friends. And you don't need the registration, you don't need to do in kind of the load. You are free to play the how many hours if you want to, it's free to play so everyone is welcome there.

BP So Samuel tell us I guess first of all, say your whole name, I didn't want to butcher it and then where you're from, where we're talking to you right now. And yeah, what's sort of like your background? Do you also work in like a software engineering job and this is a side project or is Poker Now now your full time thing?

SS My name is Samuel Simões, with the Brazilian accent. Some people call it Samuel Simoes. But it's, you can call me Sam if you want. And I am here from Brazil, Rio de Janeiro, and I am working with software professionally. It will compete in the next 10 years worked professionally with software development, mainly with  web development. This is my main focus since the beginning. I am basically a full stack engineer because I read worked with only interfaces. I worked with back ends so that I had the skills to build Poker Now from the interface to the back end because this set of skills that I accrue it with the time.

BP Did you go to university for this? Were you self taught?

SS So I never to be honest, I went to a university, but I kind of dropped out in some months, because to be honest, I am kind of a rebel programmer to be why I thought that it would be necessary for me. So I skipped the university and I, before I get my first professional software development job, I was already learning a lot of stuff by myself, because I always liked these programming, create websites, great things. This was I think the maker spirit inside of me, was always forced me to learn software development some way. So I basically I can say that I'm basically a self taught developer.

BP And so that, starting 10 years ago, were you learning through YouTube? Stack Overflow? Are there sites in Brazil or in Portuguese that are sort of well known for letting people teach themselves this craft? What did you use to learn?

SS I recall watching some YouTube tutorials, learn to programming PHP, back then in the I think the name was Code Igniter framework, I think the Code Igniter doesn't even exist anymore in these days, or I figured it's not been developed. But I started to learn how to program with PHP with tutorials in YouTube. And then I started to learn to develop on Ruby on Rails in Ruby. And then most of my developer career was using Ruby in Ruby on Rails. Because in the end, I learned that a lot to use in a lot of resources, like you said, Stack Overflow, for example, tutorials, there is a haos cast, I think it's not maintained anymore, too. But this was a very helpful resource back then to learn haos alone, learning PHP, and Ruby, Ruby and Ruby on Rails, I was learning JavaScript, because the front end, if you want to do front end stuff, you need to learn JavaScript, you can't skip it.

BP And so you had been as you said, doing you know, web design for yourself. You went to University of Minnesota, you do you know, be better just as an independent creative. What were some of the places that you were able to work in to sustain yourself? What kind of companies, were they local in Brazil, were you working for other places around the globe? What kind of work did you do? And what led you up to I guess, yeah, creating Poker Now?

SS Yeah, until now, I was working basically, in Brazilian companies here, local, local companies, before Poker Now because right now I am working, totally focused on Poker Now. I was working on a company that they do a bunch of software's for government, like, for example, a hospital management software for a government. So because here you need, I think everywhere you need a software to do the management of hospitals. Texas, for example, we also was doing this. So I was basically working with softwares that were doing management bureaucracies. You know? Basically this. I was not, I was not even working in, I was not even working game. People think that I am into developer for some gamey company or something. But no, I was working in this kind of boring software. But today I work basically, with this. But before I was working with these, I also worked in with some agencies, and some other companies.

PF So tell us about how Poker Now got started. Give us the story.

SS This is an interesting story, because I always liked it to create side projects. This was a thing that I always loved. I was loved to try new things too. Because inside project you can try whatever you want, whatever technologies that you want. So I always like, I have some other side projects that people probably know we know. And Poker Now was one of these side projects. I was looking for a way to play poker with my friends in an easy way. Like you said, yeah, I was basically in the same situation that he was. I was trying to learn how to play poker with my friends, but I didn't want to take the loading a client to 100 megabytes, or, for example, create an accounting or something like this, I was searching for something quickly to start. So I think that to eat would be a great opportunity to have stuff into play with my friends. Before everything. This was my main object. So I start to create poker. So I created it. The first version was pretty simple. Today, Poker Now has a lot more functionality, features that it didn't have back then. But this was the start of the Poker Now journey, I created it. And then I shared it on Reddit with some people. And then some people start to play. But it was always a side project. I never did marketing campaign, for example, to show it to people. So I was I was receiving a very few accesses every month, I was okay with this. I like it Poker Now. And I always work on these in my spare time. And basically was this in the beginning.

PF Talk a little bit about the the stack, what did you build it in? What were the tools that you used?

SS The stack, it's basically JavaScript today. I choose JavaScript for front end to of course, using react JS for the front end. So it's basically I don't use any framework, because when I started it, I wanted to be simple. I don't want to do introduce too many things. So but but I use a lot of the concepts of Redux on the interface, because I like that one direction flow that Redux propose. And in the backends, I use the node js with socket IO, and express js. For the databases, I use the Postgres, Postgres for, for the persistence to store the data persistence database, and I use Redis as the cache and the Message Broker because I need to exchange some message between some software parts. but the first special broker now didn't use Redis but now it used because I need to do cache, I need to do a lot of stuff to be able to handle all the load that Poker Now receive today. 

PF What kind of scale did you achieve? How many, like how many people are using it, let's say, right now?

BP And what was the turning point? 'Cause you said it was kind of cruising along, most of the radar, what was the thing that sort of like I don't know made it scale up?

SS Before the pandemic, because the pandemic was a major turning point for Poker Now, I was receiving 100 players, couple hundred players. So it was, it was working, okay. It was handling, okay. But when the pandemic situation becomes worse, I started to receive 1000s of players. And now in this point, I needed to change a lot of things internally to the application be able to handle all these players. So in the peak of the pandemic, you know when the lockdown or around the world was happening basically, everywhere. I receive it to 10,000 of players, concurrent players on Poker Now, a little bit more than 10,000 players but was around 10,000 players concurrent. And then the panic situation start to not necessarily improve but people will start to see that because before the big, the lockdown around the word was pretty aggressive because people don't know what the Coronavirus could do. So after this, the lockdown started to lower a bit. So after this, Poker Now start to receive, start drop a bit on and access.

PF So 100 times the traffic shows up? 

SS Exactly. I could say that was a traumatic experience but because I because I need to go like I said, I need to increase on the traffic was gigantic and Poker Now wasn't prepared to this. Even if I put the best servers--

PF You're still at your job at this time, right? Like are you working?

SS Yeah.

PF Okay, so now you've got Poker Now scaling, you've full time work and you need to figure out what to do next.

SS Yeah, fortunately, my employee was, understood my situation understood that my sub project was kind of blowing up. So they understanding give me all the time to put the things in the right place. Do the scaling.

PF That's great!

BP What a cool boss.

PF Yeah, that's a good boss.

SS Yeah, yeah, he's a very, very good boss, he understood the situation. He was very nice with me on this, but was a very traumatic experience because Poker Now wasn't prepared. Like I said, even if I put the best server in the world, the architecture of the application wasn't prepared to handle all this level of information going on. So I needed to do scaling at the architecture level. So I started to do a lot of things. And every time that I was doing an adjustment, and in the next day, this adjustment was already not the necessary to handle the quantity of people that was coming to Poker Now because every day more and more people was knowing Poker Now, it was exploding. So it was like crazy. Fortunately, a lot of players helped me to give me ideas on what to do, what to improve, what to do. So this helped us a lot. Even players that was working on companies like Amazon, Google, they was helping this was truly amazing because I was receiving help from these people because they basically because they wanted to play with their friends. So I needed to decide to be online. 

PF There are lots of ways to play poker online. Why do you think yours grew so quickly?

SS When you have a software that you don't need to use with any kind of download, any kind of registration, it's a very good selling point. So I thought that people, it helped people to choose Poker Now, because the alternatives back then was doing the download of a software, the registration, and this kind of you know, had, a lot of friction.

PF So you invite your you invite your friends and you're like, but at first I need you to fill out a form and create a password. [Ben laughs] That's not fun, no one comes over to my house, I don't make them enter a password before they come hang out.

BP We had a bunch of problems, I'll just talk you through some of the user experience out of it. So like with Blockchain Poker, it was it was pretty simple to like, you know, just jump in online. First of all, you have to, you have to be able to create a table and then share that like, you know, a table meeting, not a database table. But like a table where people can sit down. It's easy to like, create a username and drop in so people know who you are. We used to have this problem all the time of blockchain poker where somebody would want to leave or they would get disconnected. And then they couldn't sign back in. I don't know if it was like an attempt to stop people from cheating or something. But just be all these issues are like, you're sat down, you're playing with people, you get disconnected, you sit up and then you can't sit back down. And so now you're out of the game for the whole hour and a half. You can't play with your friends, for whatever reason, Poker Now that didn't happen. So it was great. You could come back, you could kind of come in and out. And then there's a few like little sort of like toggles that you want to do at the beginning, You want to say like, how many chips Am I going to come in with what are the blinds just like a few rules of the game that the other sides didn't make it easy to set up. So like you could drop in without logging in, it was easy to create your own table, make it private, and then touch up a few features so that you could just get going. And I guess with Blockchain Poker, there was also like a rake. So they were giving out the money and satoshis but then they were like taking a certain amount off the top. I'm not sure Poker Now does that. But that always made it confusing at the end to like figure out like we were trying to you know, then like settle a ledger somewhere. And that became very complicated. So Poker Now, as far as I can tell, in our like, three, four months of using it, we haven't run into any of those issues. It's been, it's been a pleasure to use. 

SS Yeah, the main idea that I have for poker now is to make it simple and flexible. So I tried to find a right balance and being flexible and simple. And for example, I don't have you define it the stack of a player, you can change the stack of a player while you are playing, to make easy to keep the things running. Because for example, there's groups that want to remove some cheap stuff, some hours of playing, for example. So you can do this on Poker Now. There's people that want to play a tournament that is short, that has just a four blind levels, for example, or they want to play a tournament with I don't know, a lot of blind levels, you can do this. So the idea of poker now is to make it simple and flexible. So yeah, and like I said, we don't have limits on the chips, any we don't have a rake. Because the other platforms, they charge for the chips, they charge they they have heiki to make the platform running. Since I am have low costs. It's just me and my wife helped me with the support, I can keep the application running just by the donations so I can let it, as it is today free and unlimited chips, because my cost today is low. So although I have some plans to monetize Poker Now to help to grow the the application or grow the possibilities, although I think that my current limitations is something good for the product, because I need to keep it always simple. I can't introduce a lot of features--

PF Right, you're right, you're totally right.

BP No, that's what happened to Blockchain. They got, I think they must have gotten too big or something they started saying, you know, the blinds have to be set this way. You can only come in with these stacks. It lost some of the flexibility over time and we weren't really sure, they didn't explain the feature changes. We didn't know why. Go ahead Paul.

PF No, there is a game. It's a word game called boggle. And there is a version of it called Web Boggle. But its interface hasn't changed since roughly 2006. And it's got hundreds of people online right now playing the game and you can jump in as a guest and so on and so forth. So it's this little piece of infrastructure that people really like and you don't have to, and the simplicity of it is is really the true feature. It's like I jump in, I play a game for 20 minutes. I jump out, you know, for you, and I think what makes this so powerful is there's a social aspect. But it's not about aggregating people into one big pile of and monetizing them. It's about helping friends mess around and goof off with their friends. Yeah, like that, that's just going to spread virally. That's wonderful. Talk a little bit about the plans though. Like, what, what do you think comes next? How do you keep it simple, but grow it?

SS Yeah, right now, Poker Now, lacks some important features, you know, for example, it don't have you can replay a hand for example, you don't have a way to see, for example, stats of your game, how you play it, this would be interesting. And I have a plan to introduce the API for people who start to create their applications around poker. And poker now would be your poker engine. And you would have an API to control a table programmatically, or create a table introduce a player remove a player, this, I think this would be very interesting, because this way you allow other developers to create other stuff around poker. So this is a strong plan that I have for poker now. But right now, right now, in this moment, I am working on a very important feature for poker that is multi table tournament. When you for example, you want to play poker with more than 10 friends and multiple tables. So you will be able to create the tournament invite your friends and Poker Now you create the tables for you, we'll do the table balanced for you all this. I'm work on this feature, I want to release this feature soon. But the next plan, the long term view, honestly, I don't have a very long term view, you know, I prefer to see how the things go. Poker Now will never die, this is you can be sure, Poker Now receive a great number of players today. So I think pretty sure this is a project that we never die in. If people start stopped to play Poker Now, I basically will just reduce the server's capacity and it will probably will be online forever. But I want to improve the application. Right now it's my main focus. And I want it to be bigger, you know. So I'm working on this I have, like I said to you, I have some monetize is to introduce some things. Customization, for example, would be very interesting to introduce. And some banner shapes that I have. And I am talking with some companies for some partnerships and some stuff like this, but I want to keep Poker now independent, you know, it keeps me free to do whatever I want you know? So I like this. 

BP Very cool. So you mentioned, you know, when it was originally set up, it was a single process. And even if you've been able to, you know, throw a whole bunch of servers at it, once it hit that sort of new scale, you wouldn't be able to keep up. Can you just talk a little bit about what kind of re-architecture you did and like what the changes were that you made that allowed it to match the new scale? 

SS Sure, sure. The first Poker Now and like I said, was just an old process running in the Digital Ocean server by droplet, I think that the base kit droplet that that they have. So when the pandemic situation got worse, a lot of people come to play, I needed some steps, I went to Heroku. But in Heroku, I tried some things, but it didn't work correctly. Then I was to, I went to Amazon Web Service where today I use a Container Service, something like this, I don't recall the name correctly my head, but they have so it's basically service that to allow you to run many Docker containers behind a load balancer. And this load balancer do the job sending the traffic to these containers, basically, because today, when you create a game, you will have spikes on use, people you use, your application, more people will use your application in the night with play with their friends. So basically, I need is something that could allow me to have elastic configuration so when the load increases it start to starting Docker containers. So if the application and this application start to have more capacity, and when it's lowered because people are stopping to play, it reduces it shut down to the Docker, this Docker containers to not have a super expensive bills running are super powerful formation. So this is the, this is the main thing today. I use, like I said Redis like a cache store. So because these Docker containers they don't hold the data. The hedges holds the data. So every time you an action is saved. To this list of servers they sent to the hedges, they I processed the information sent back to and propagated these between these Docker containers. So this was the main thing that allow me to escape Poker Now. I think I tell a lot of people that Redis is currently the they start behind the Poker Now, it's a very, is a very powerful piece of software.

BP No, I like what you're saying, which is that, you know, I think right now you're in sort of this beautiful, you know, place this balancing act. And, you know, be interesting to see what happens as you work towards monetization, but you're saying like being able to scale up and down to meet demand, but to keep costs from getting too high, to be able to run it and build new features, just on donations without having monetization, you're kind of in that super sweet spot of this independent project.

SS Yeah, I am in a fierce searching for the sweet spots and all the costs, the monetization that allow me to be free to do whatever, whatever I want, because I received some investment proposals because a lot of people poker is a lot of investment people play poker. So you can imagine that a lot of people come offering investments, and it would be great, but I think it would be forced me to, to look at too much for the business side, you know, like I said, I am a creator, I mean, I am a maker. I want the product, I want to see this because I am pretty sure that when you create something great people will come, you know, this is will happen eventually. But when you start you get investment, probably you need to keep too much focus on business side. Monetisation, keep it growing, you need a base of growing and I don't like too much this so I'm trying to, to keep me in the sweet spot, you know?

PF You know, not bad. Very, very wise. So last question. Last question. Do you ever have time to play poker? [Ben laughs]

SS To be honest, I don't recall correctly my head that was the last time that I played poker because, because my friends because in Brazil, poker is not super strong like it is on United States. You know, for example, people the Friday Poker Night is a cultural thing on United States in Brazil. It's not so my friends are ready to give up from the poker. You know, they don't play poker anymore. So I don't have, I don't have friends interested in poker in this moment. So basically, I'm not playing poker, I have just got--

PF Good answer.

SS But fortunately, I receive a lot of vital people for the games too. But, but I am trying at this moment I am in the super focus to deliver this feature, this mood stable feature, so I am trying to not lost my focus playing games.

PF No, of course, of course. Keep going. Keep going.

[music]

BP So it's that time of the episode every week I shout out the winner of a lifeboat badge, someone who came on Stack Overflow and found a question with a score of negative three or less. They gave it an answer got it up to a score of three or more and their answer has a score of 20 or more. So awarded June 17, to Divakar 'searching a sequence in a NumPy array.' Love a good NumPy array, we'll put that in the show notes. I am Ben Popper, Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper. And you can always email us podcast@StackOverflow.com. If you like the show, please do leave a rating and a review. Sam, who are you? Where can people find you online? And if they want to check out Poker Now where should they go?

SS Okay, you can find the Poker Now Twitter profile @poker_now_club and you can find me on Twitter my personal profile @samuelsimoes. It's a bit hard but you can probably search on the Google 'Samuel Poker Now' either that you find me. So it's basically this and I am always open to anyone that wants to send feedback on Poker Now. Thank you for the opportunity. It was a very nice experience. It's very nice to talk on this on the podcast of Stack Overflow. It's it's a very, it's my pleasure. Thank you.

PF It's great. It's great. And it's a very, it's a very smart audience, they're gonna find you. I'm Paul Ford, co-founder of Postlight. Check out our company Postlight, postlight.com. It's that simple. 

BP Alright, very cool. Yeah. And you can always head over to pokernow.club to check it out. And you can, it's we're on version 0.167 and above that, tip the dealer. Show some love.

PF Woohoo! Tip the dealer!

BP Keep this project going.

SS Thank you.

[outro music]