Today, we’ll be talking about side projects and why developers like to pick them up. Whether it’s to explore a personal interest, a new idea, or give back to your community; there are tons of great benefits to having a side project. But managing a side project, on top of your day job, laundry, and Youtube video addictions – can be more tricky than you might have thought! On today’s episode, I talk with Emanuel Genard, Liam Jeffries and Dave Anderson, about the side projects they’ve picked up in the past and the opportunities they unlocked, how they manage their time, and what they’re into at the moment. Take a listen!
Key Points From This Episode:
[0:00:01.9] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast in the scenic and shining Chelsea Location. Ladies and gentlemen Stride has recently moved offices and we are moving on up, over to Chelsea. So the intro is going to change a little bit because we are actually moving locations, or we actually already have moved location, and just wanted to give you all an update as to where we’re currently recording and the recordings will now happen in Chelsea.
Today I have my co-host:
[0:00:31.9] DA: Dave Anderson.
[0:00:33.3] MN: Our producer.
[0:00:34.2] WJ: William Jeffries.
[0:00:35.0] MN: And our regular guest.
[0:00:36.3] EG: Emanuel Genard.
[0:00:37.0] MN: And today, we’ll be talking about side projects and why do developers like to pick up side projects, why should you want to pick up a side project?
[0:00:46.3] DA: So many reason, you know? Like sometimes I just want to try a new technology, sometimes I have a problem and and I need to solve it. All the reasons.
[0:00:54.3] MN: We are going to dive right into those particular questions and answers and why people do it. I imagine we all in here at some point in time have started a project before. Why? Why would you do that to yourself? Why would anyone want to do that to themselves?
[0:01:10.5] EG: I find the best side projects I have done haven’t been this internally motivated – where I’ve been interested in a language, been interested in an idea, an itch, “Oh man, I really wish someone would do this thing.” Or, “Wouldn’t it be great if I can track my expenses the way I want to track them?” Or something like that, or with my goals in mind. So there, as a programmer, we often have the ability to put those ideas, to put your curiosity into a “if I can use it, all you need is your computer to use every day for work anyway and you can just do a bunch of things on there.”
And so I think the biggest reasons that I would be interested in doing side projects, are you know, that come from things I like and things I am interested in.
[0:02:01.6] DA: Yeah, sometimes also it’s good to give back to the community or do something that will make people’s lives easier. Like be it an open-source project or a pain point that your team is facing that no one has really addressed yet. I think that could be an interesting side project you can even spend your work time on.
[0:02:21.0] MN: So I have heard some pain points about life and as developers we want to make things easier for yourself and inadvertently you can help out the community by sharing that particular piece of application to the world so that their lives are also easier and then everyone’s lives are easier.
So when it comes to tracking your time or your expenses or whatever, if there is an application that makes it easier for you who’s to say that it may help someone down the line or someone else in the world? So you’d just be able to put that on GitHub or any other way of sharing your open source application to the world and have everyone have at it.
I think another reason why, I mean me personally, I like to learn new technology and I try to figure out some pain points and then purposely chose something like brand new in that space. So an example that I have, I’ve been trying to figure out a reason to learn React Native. I have been using React for some time and React Native seems to be like the new way for mobile development.
So I was like, “Oh, well it would be useful for me to learn this thing that’s brand new that people may be interested in hiring me to do. So why not just learn how to create like a forum or something on React Native just to figure out how to do that?”
[0:03:41.0] EG: Do you feel like the side project always needs to be work-related? Because I have mixed feelings about always like – I have sometimes trouble keeping and staying motivated if I am waking up on a Saturday morning or a Sunday afternoon to do something that I feel is almost like work.
[0:04:00.1] MN: Yeah.
[0:04:00.5] DA: Yeah, I agree. Like it is nice to have something fun and maybe like whimsical with it. I have done a visualization of Choose Your Own Adventure using T3 and a Python Wrath Library and I read the Choose Your Own Adventure and that was the fun part. I tracked everything in a database, that was the less fun part, and then visualizing it was also the fun part. Just reading the entire book cover if ever was also awesome, yeah.
[0:04:33.1] EG: Cheater. You chose all the adventures.
[0:04:38.6] DA: There’s actually a page too where they’re like, “Hey you didn’t chose. You broke it.” Yeah, hags.
[0:04:47.4] MN: I think learning is a motivator but sometimes you’re right, I don’t want to wake up on a Saturday morning to learn. I think that side projects that involve money is also a pretty decent motivator not like something where I feel like if you are making your primary form of living through this project, that’s your main project. I just want to make that distinction. But if it is something small and you’re getting small amount of money as well as learning this new tech, I feel like that also helps.
But I mean it’s difficult to find a side project that would pay you enough where you got motivated to because it will probably become your main project.
[0:05:29.9] WJ: Yeah, I mean mining Bitcoin.
[0:05:33.9] MN: Mining Bitcoin, being real and those coins by the way too, don’t forget the “those”.
[0:05:39.3] DA: One of the Striders here has a yoga app for mobile that is actually sold in an app store and makes money. So that’s kind of sweet. So you should pair up with him and see if you can transport it to our React mobile, React Native.
[0:05:54.6] MN: React Native, yeah for all mobile devices will be really cool.
[0:05:58.2] EG: There is a Strider with me and a client who has two side projects and he is working on a mobile app to help people sign in or participate in the Broadway lotteries for shows. Every morning he is joining all the lotteries for shows and the apps that are doing that are really bad and he wants to make a better one. And at the gym he goes to, they have a pretty poor website with some ridiculous stuff on it and he spoke to the owner and he’s re-doing the website for the gym.
[0:06:35.5] MN: Oh that’s dope. I mean that incentive will probably be like, “Hey I am building your website can you give me a free gym subscription?”
[0:06:43.5] EG: Not even that, he is being paid cash.
[0:06:46.6] MN: Oh yeah, well that’s good stuff too. I mean that is the incentive that we were discussing earlier. Whether it is the pain point of trying to find an easier way to join the Hamilton Lottery or making some money on the side to help your local gym community is pretty dope.
[0:07:02.7] EG: That gym website was really bad man. I saw it, it hasn’t been updated in 15 years.
[0:07:10.6] MN: Awesome, yeah I mean it does. Was it like, the Space Jam? Have you guys seen those space jam website is still the same from ’92.
[0:07:18.4] DA: It was a good year for websites.
[0:07:20.3] MN: Oh yeah. Yeah, I think an idea I’d like to figure out, another reason I find myself I’ve done a side project before was when I realized I was going to a – when I first picked up React and going to a React client. I realized, “Hey, I need to find a better way to learn faster than just like being on a client and doing React-related work.” So I ended up trying to do some React code at home. Whether it was following a book or a video, I actually just tried to build something small whether it was a small forum or something of that nature.
My projects are small so they are usually forms and shit, excuse me, they’re like forms and stuff. I do think that once you get the idea of how to change text and input from a user or whatnot it’s like you cover a lot of that and then of course, there’s CSS to style in and make it look nice but you can learn that some other time. And CSS is probably like, you can take that knowledge with you from CSS and use it later on.
[0:08:25.7] EG: Let’s say you are just doing a side project, right? Let’s say I am interested in a side project and I’m really into it. Have you thought about trying to get someone else interested in it and get other people to help you do it?
[0:08:42.4] WJ: Yeah, I found that the main trick for that is sharing credit. People don’t want to work on your side project. They want to work on their side project. I remember one thing that made a big difference for me because I started a side project and it ended up turning into my main project. One of the key things that seems to shift people’s perception of it was when I took it off of my own GitHub and put it in its own GitHub organization.
[0:09:08.6] MN: Oh interesting. So people were probably more willing to work on something that was part of an organization than say that belonged to you?
[0:09:16.9] WJ: Right. It’s like, “Oh, this is its own open source project. It’s not “William’s open source project.”
[0:09:23.9] DA: I think it adds an air of legitimacy too.
[0:09:26.7] WJ: There’s also that, yeah.
[0:09:28.4] DA: It’s like, “Oh, It’s not just this guy doing it nights and weekends.” It’s like, “We, together are part of this thing.”
[0:09:35.6] EG: And you have to write access or read access or push access to an organization repo, not “William’s repo.”
[0:09:43.9] WJ: Yeah and we ended up creating a non-profit for it and once you get the domain name setup you can give everybody emails addresses. It feels like they are a part of this company and then they are actually a part of the company after it.
[0:09:59.5] MN: So you build a community actually around this application that then allowed people to also be more — give an incentive to join in and be a part of the open source community that you created from your project.
[0:10:12.1] WJ: Yeah, we had a regular meeting every week. So there is a touch point for volunteers to come. We put ourselves up on Meetup.com and started recruiting people through there. We joined the competitions and tried to get other people who are interested in the competition but didn’t have a project. There are a lot of ways you can get people to sign up. There are a lot of people who want a side project but don’t have an idea of their own or want to move onto something that seems like it’s already successful.
[0:10:38.9] EG: That’s interesting. You mentioned at the beginning that this was a side project that became your main project?
[0:10:44.6] WJ: Yeah.
[0:10:45.1] EG: So do you have a job while you are doing this and then?
[0:10:47.7] WJ: Yeah, so the company is called Heat Seek. It’s a non-profit that helps people in low income housing who don’t have access to adequate heat during the winter time. What we do is we make web connected temperature sensors and we put them in people’s apartments and we monitor the temperature all winter long. Then that way if somebody isn’t getting adequate heat, there’s data. There’s hard evidence that you can use to show the city or to show a court to force the landlord to turn the heat on, which previously was a big problem.
[0:11:17.6] MN: Right because I believe, in New York City at least, given a certain temperature, you’re household needs to be a range that is warmer than outside and if it’s not then it’s illegal for the landlord or the super to have living conditions like that.
[0:11:33.9] WJ: Yeah, exactly.
[0:11:34.8] MN: So to have the — oh I see, this application actually kept recorded data of the temperature if the event that it was colder than the range that was legal for a tenant to have, you can then use that for evidence for whatever the case may be. In the event that you pursue legal actions.
[0:11:53.9] WJ: Yeah and so the app, in addition to interfacing with the hardware, it also produces graphs and charts that you can then bring into court or take to your landlord to complain or whatever you want to do with it. But it was a side project for me up until we got enough funding for me to quit my job and then at that point, I became a full-time CTO and did the startup thing for a while.
[0:12:16.4] MN: Wow that’s awesome. You're helping out the peoples who are unable to get heat.
[0:12:21.7] EG: Did you find it hard to just balance that with your job? I mean I supposed it probably got big before you are able to get funding, right?
[0:12:29.7] WJ: Right, yes that was hard. Definitely. I was a little worried that my employer was going to find out about the project and be upset with me.
[0:12:39.7] DA: Did you have an agreement that you signed with your employer for the work that you produce during your employment belongs to them in some way?
[0:12:49.5] WJ: I don’t know if they ever had like a legal claim to it, but the whole thing had an MIT open source license on it so I think it was pretty safe and I’d also started the project before I started working for that employer. So I think it was mostly fine?
[0:13:05.5] DA: Yeah, that’s always scary though when you are reviewing a contract for a new job. It’s like, “Wait. Does this mean that they own my yobobby.com?” Like that’s my Yo Bobby.
[0:13:15.4] MN: Yeah, I really hope that is not the case because yobobby.com is awesome.
[0:13:20.6] DA: It’s a gold mine.
[0:13:21.2] MN: Yeah, go if you like but don’t I guess — now everyone is going to want to go to yobobby.com. As William mentioned before, that was a project that I imagined you saw a space that was necessary for people who deal with this particular situation and this is issue to figure out how to gain evidence. Which is pretty amazing to see the self-actualization of the New York City people not getting heat. Then I guess there are other projects like mine where it is literary just the website with a face on it. Side projects are things that we want to do in all aspects of life I guess.
[0:14:02.8] DA: Right, yeah.
[0:14:03.6] MN: I guess the question that I have about side projects is when it’s a side project, when do you find the best time to work on a side project? Is this something that you guys do over the weekend or is it in the morning? Because me personally, I am a morning person. I try to wake up where I have an hour of time to see if I can finish a feature or something in the hour.
[0:14:27.6] EG: Plus one for morning people like yeah.
[0:14:30.9] WJ: I find the weekends work best for me. I think it varies from person to person though.
[0:14:34.9] MN: Yeah, what are your thoughts Dave?
[0:14:36.2] DA: I tend to do reading in the morning just like something relaxing and if I am coding, then inevitably it’ll probably end up being late at night and doing it in a big block of time.
[0:14:48.9] MN: So you read, you do the learning in the morning and then in the evening you crunch out?
[0:14:55.0] DA: Yeah.
[0:14:55.3] MN: Oh interesting.
[0:14:56.6] WJ: Yeah, I just can’t sink into something during like a one hour period.
[0:15:00.6] MN: Yeah, I have been finding that to be a problem like especially with React Native. Because like Java Script, you just get the “error undefined is not a function” and you just have to figure out what the error means and that’s been a very painful experience in my one hour side project.
[0:15:18.8] DA: So it ends up being an hour of Googling.
[0:15:19.9] MN: Yes, that’s exactly what it is.
[0:15:22.7] WJ: If you can find a way to convince your employer to let you do it during paid time, that’s really the best. We all happen to work at Stride, which has a profitive policy so you can work on your side projects and get paid for it during working hours.
[0:15:36.9] MN: You mean I could have been getting paid for yobobby.com? Is that what you tell me bro? Really?
[0:15:43.2] WJ: Yes, I think so.
[0:15:44.8] DA: I didn’t think working on yobobby.com, does it sound worth it?
[0:15:50.0] MN: Oh bad idea but yeah, I should have –
[0:15:52.0] WJ: Have you set some Google Analytics on there?
[0:15:53.6] MN: No, no I have to have it.
[0:15:54.3] WJ: I guess we’ll have to see what happens after this episode comes out.
[0:15:56.3] MN: I actually have to once we close over the shop, it’s going to be a quick retrospective on the episode followed by Google Analytics.
[0:16:06.6] DA: Yeah, I have a question actually. So I always have so many ideas for side projects and I start so many of them. When do you feel comfortable just abandoning a side project and saying that it is done?
[0:16:20.2] EG: As soon as I lose interest.
[0:16:22.2] MN: Yeah.
[0:16:23.1] WJ: There were a couple of people on the internet who started doing a project a day. Like there was one person who did a project today for a 100 days or doing it for a full year.
[0:16:30.7] EG: Oh yeah, I heard about her. Yeah.
[0:16:32.6] WJ: And I think she got hired really quickly because of that.
[0:16:36.2] DA: Like it took her a 100 days or less?
[0:16:39.7] EG: No, she did a project a day for a 180 days. So she would ship up something at the end of the day sometimes like three in morning or whatever, before she went to sleep for six months. She did a 180 projects, yeah it was really interesting and inspiring to watch. Yeah man.
[0:16:53.3] DA: That’s awesome.
[0:16:54.1] EG: Like it was something really simple websites to some more complicated stuff as she got better and over the six months, she did more and more. Yeah, it was really interesting stuff.
[0:17:04.8] DA: That’s really cool. I have heard of people doing that with music but I feel like with music, you can just jam it out and be like, “Okay, fine it’s a song.”
[0:17:11.9] EG: Jam out that code man.
[0:17:14.1] DA: Sure, yeah. I’ve got to change my mental model for a code. I’m just going to jam on it.
[0:17:18.2] MN: Yo Bobby, Yo Bobby 2, Yo Bobby 3, Yo Bobby 4.
[0:17:23.1] DA: Revenge of the Bobby.
[0:17:24.9] WJ: There was one really cool one that went kind of viral. It was an Amazon purchasing app that would accept a certain amount of money and then it would spend all of that money on random things on Amazon and ship them to you without you knowing it.
[0:17:39.4] EG: What?
[0:17:39.7] MN: Oh my god. That’s sounds –
[0:17:42.8] DA: Oh wait just completely random things or random things from a wish list?
[0:17:46.5] WJ: Just completely random things. It’s a great way to get you in trouble with your wife.
[0:17:51.1] MN: Yes, I would imagine. That would not pan out very well.
[0:17:55.1] EG: Wow.
[0:17:55.8] MN: It’s like, “Oh why do we have these fishing hooks and a bag of rubber bands for?” “I don’t know, I’ve just have been spending money but I suddenly get to this app that ships me random things.”
[0:18:06.9] EG: Who’s this underwear for? It doesn’t fit anyone in the house.
[0:18:11.3] MN: “These are for you!” “But these aren’t my size”.
[0:18:14.6] DA: Quadruple extra large T-shirts, why?
[0:18:16.3] MN: Well the question is, “Why not?” Because it’s completely random.
[0:18:20.3] DA: Yeah, that’s interesting because it really opens up the question of like what is the space of things that are available on amazon.com?
[0:18:28.3] MN: Yeah and not feeling it. I need to write an app that will return random results on Amazon now because I am interested in what that would be, I don’t know.
[0:18:37.0] DA: Yeah but not spending the money.
[0:18:37.9] MN: Yeah, but not spending the money yes. So I know before I purchase whether I want this completely random thing or not. Are there any other side projects that people want to share?
[0:18:49.8] EG: Yeah, I have a side project where I volunteer for Scripted and one of the things that can sometimes be difficult is getting the kids to answer questions or to even raise their hand sometimes. So I thought it would be fun to do a random name pick where you put the students names into an array and just randomly pick them out. So I worked on that. It was actually, I wanted to do it all TDD style. Java script TDD style with plain JS without any framework or anything.
Using just plain dam queries and things like that and it was really interesting to do actually. I really enjoyed it and the kids sort of liked it. I don’t know if the kids liked it that much.
[0:19:30.8] MN: They still have to answer the questions.
[0:19:32.6] DA: Yeah.
[0:19:33.3] EG: Yeah but it was really fun to do. You get to style it however you want. I styled it however I want it. I wrote the code how I wanted. I got to play around with different ideas of putting these things together. It was fun, yeah.
[0:19:48.5] MN: Awesome, yeah. When you have mentioned random name generator, it took me back to the late 90’s, where you put in your name in this random website and it gives your Wu-Tang Clan name version or something like that, which I thought was always funny. It’s like, “Yeah, here is some random name that will give you, there it is. Look at the internet in the 90’s before Y2K it was awesome.”
[0:20:11.5] DA: Yeah, that’s where I thought you were going that two or three, you are going to be naming the kids random things like Wu-Tang names.
[0:20:17.8] MN: Yeah, exactly. Well I mean I am glad to see that those were other people’s side projects such as here’s your Wu-Tang name if you give us your real one. I thought that was a clever –
[0:20:29.2] EG: I feel like that’s always a good way to have fun because I feel like I’ve seen a couple of those recently, like in the last couple of years just show up like.“Hey give me your name and I will give you your startup name,” or the product name with that missing vowels and stuff.
[0:20:47.6] MN: Or the R at the end.
[0:20:49.0] WJ: I think you’re just trying to get out of naming your first daughter Scalene.
[0:20:52.0] MN: No, that’s not happening guys. I am not trying –
[0:20:55.8] WJ: I know you are going to name your first daughter Scalene?
[0:20:57.2] MN: No that’s been a conversation my wife has been mentioning. I am not naming her after a triangle that has no equal sides. That makes no sense.
[0:21:08.2] WJ: Dude, it’s beautiful. Beautifully imperfect.
[0:21:10.4] MN: No, no, no, no, no that places the best triangle on all three. Well equilateral and right, whatever. No. Scalene is not happening, I mean– my wife does have the ultimate say when it comes to that.
[0:21:24.2] EG: So it’s about to be Scalene Nunez.
[0:21:26.5] MN: Yeah, that would be an A. Yeah, if they’ve got to carry, she has to carry a baby for nine months the least I can do is not get angry at the name that she has chosen. I will be bitter. Scalene, you know well –
[0:21:40.8] EG: You would be bitter.
[0:21:40.6] WJ: Their whole life, the underlying bitterness.
[0:21:44.2] MN: Exactly. The child didn’t, that will make me really angry I guess.
Just to wrap things up on side projects, I hope this episode is inspiring to our listeners that we’re interested in either making a Wu-Tang Clan name generator or something more aspiring as William has created before in time. It was a great, great conversation with you all, thanks for hanging out.
Do we have any teach and learns today?
[0:22:14.1] DA: Yeah, sure. I’ve been working with React a lot more for the first time in a while. It’s been maybe over a year since I’ve looked pretty deeply at it and the ecosystem has changed a lot and especially around testing. Like the testing, it was some RAM, React has changed quite a bit like you now have things like enzyme where you can do shallow rendering of your components, where you don’t need to render the entire tree of things out.
It’s pretty awesome to work with. I’ve been enjoying working with that and also kind of been looking at Jest as well a little bit. How you can kind of do a snapshot of the render and have to have less crazy things in your tests. Less assertions, which is like – “Does it work? Yes.”
[0:23:06.2] EG: Yeah, that’s really helpful. We started using – I’m working on an angular four app and before, there’s some built in testing framework I believe it’s Karma and approach React with angular. We switched to Jest and it’s been really nice. It speeds it up, the snapshot testing sometimes obviates the need for certain specs, it’s really cool.
[0:23:27.4] DA: Nice.
[0:23:28.1] EG: Yeah.
[0:23:28.9] MN: It’s very interesting you guys actually give thumbs up to Jest because I think when Jest was first introduced, it was like really bad. People really disliked it for some reason and then they revamped it and then it just became amazing. Which is really cool to hear because I’ve been using Mocha Chai sign on to do my react testing. And using just like Facebook utils. The enzyme stuff is really cool but the client uses Facebook testing utils. But I hear a lot of good things about Jest so I can’t wait till I’m on a project with them.
[0:24:05.5] DA: Yeah, I haven’t used them myself so I’ll be picking a Emmanuel’s brain about that later.
[0:24:09.3] MN: Cool, awesome. I like to thank my cohost, Dave. Thanks for jumping on down to our fabulous new Chelsea location.
[0:24:19.3] DA: My pleasure as always.
[0:24:20.2] MN: William, for producing, thank you for coming on down. And our regular guest, Emanuel. Always a pleasure having you.
[0:24:27.5] EG: Super regular.
[0:24:28.9]MN: Yeah, our regular, super regular. Feel free to hit us up on twitter.com/radiofreerabbit. This is the Rabbit Hole, we’ll see you next time.
Links and Resources: