Here at Progress we’re huge fans of side projects. Most of us have built a variety of projects for many software ecosystems over the years.
So for today’s Slack we wanted to talk about what we’ve learned from our side project experiences, and what we can recommend to developers who want to get started. Specifically, we’ll cover the following topics:
To get things rolling, let’s start by listing a few side projects we’ve built in the past, and the benefits we’ve gotten from the experience.
Jen Looper: Well my oldest, and best project, has always been Practice Buddy, a mobile app that helps kids practice their musical instruments, mentored by their teachers.
This project has a special place in my heart because it impacts kids and music teachers directly and I have gotten to know some very dedicated teachers!
TJ VanToll: To me side projects have been a way I could escape my normal routine as a rank-and-file developer. They let me build things that I would never have the opportunity to build for official “work” reasons, and in many ways it’s the reason I have the job I do today.
Brian Rinaldi: Most of my side projects are ones I build for either a presentation or an article. For instance, I have all the static site samples I built for my static sites books and articles, or the web audio samples for my web audio presentations and articles. I tend to use those tasks as a way to try out new things.
Tara Manicsic: A lot of my side projects tend to be on things I'm volunteering my time on or to help a friend or family member out. Unfortunately, a lot of times that means I don't get to work with technology of my choice, usually Wordpress.
For instance, a few weeks back I worked with Southwest Ohio Givecamp and led a group to make a site for the Women Helping Women non-profit organization. This past month I've been putting together a website for my neighborhood's Village Development Committee. Both of those sites are Wordpress because they did a great job making a platform a lot of people can figure out how to build and manage.
Jen Looper: I recently wrote an article on what side projects have meant to me. To me, my side projects have really helped build my career. In my previous few job interviews, they have come up prominently as a discussion point and proof of ability.
TJ VanToll: Good point. Lots of times the things you build for a company are hidden from the public eye, so you can’t really use them in interviews and such.
Jen Looper: Also you have full creative control! 🙂
Tara Manicsic: I think that’s a really great point, Jen! I think one of the best things you can do for your career is to work on projects that you want to!
Jen Looper: The whole open source ecosystem has really both helped us build our careers and sustain these projects.
Brian Rinaldi: Jen, this has been true for me too. I’ve gained a lot in my career from side projects. In fact, my first job as a developer (I won’t say how long ago for fear of dating myself) came from a side project I built.
It really helped me stand out as an applicant to show something I’d built even without relevant work experience.
TJ VanToll: My biggest side project was my own blog, which definitely helped in interviews and such. What better way to show you know a technology than giving a link to an actual thing you built with it?
Brian Rinaldi: TJ, nice plug! 😉
TJ VanToll: Gotta make that $10/month in ad revenue somehow 💰
Tara Manicsic: Whenever we would hire software engineers I always looked to see if they had side-projects they worked on, i.e. not school work or work work. It really shows that you actually find value or fun in coding.
Brian Rinaldi: Tara, right! I think it reminds you what you love about coding in the first place. Sometimes work is a slog (not mine of course! 😉 )…so you can forget why you became a coder.
Jen Looper: I’ve used side projects as a way to work with loved ones - my daughter Stella named Practice Buddy and used it; and I have the Snappy Squirrel e-book series as a co-effort with my dad, my older daughter Allegra, and myself.
For me, the hard thing is to maintain these projects. I had to shut down several of my apps as there is no way I have time to maintain them, and it’s not fair to users to keep increasingly outdated software products in the market, IMO.
Of course, some folks make actual money from these projects 🙂 - I did sell one of my more popular apps, Roomalyzr
Brian Rinaldi: Yeah, I had a widely used open source project years ago (you may remember it, Jen), but I simply could not maintain it - especially when I no longer used it personally on a regular basis.
TJ VanToll: To add to what Jen said, these project can become a real maintenance burden, especially if they gain a following. It’s hard to pull the plug on something you’ve put so much energy into.
Tara Manicsic: For me, the hard part is running out of free time and not finishing projects. Coming fresh out of Node-land, a lot of the side projects I do had been working with node-ist things. I started building an API for my husband's company’s inventory using hapi.js and have spent some free time looking into fixing some workshoppers from NodeSchool. Unfortunately, I have not seen any of those projects through 😣
Jen Looper: I have decided to really only maintain my most popular app, the one I am sure is being used which is Practice Buddy.
Brian Rinaldi: TJ, yes. It’s also hard to learn to delegate it to someone else as well. Handing it off or finding reliable help isn’t easy either.
Jen Looper: Very true, Brian.
Tara Manicsic: The open source community is getting better with that with open open source and also Maintainers Wanted
Jen Looper: It’s very easy nowadays to spin up new things. Maintaining them is the hard part.
TJ VanToll: Yep.
Brian Rinaldi: And documenting them 😞
Jen Looper: Oh yeah! for sure
TJ VanToll: Side projects don’t need documentation. That’s part of the fun! 😛
So we’ve covered some of the benefits, let’s move on to some concrete ideas. What are some projects you’d like to consider if you have free time this holiday season?
Jen Looper: Well, as a shameless plug, I have a Holiday App contest running right now in the NativeScript Community Slack channel. There are prizes to be won!
Spin up an app, see what you can do!
Brian Rinaldi: I have one but the actual code aspect (which will be....a static site! surprise!) is pretty simple. It’s a site designed to help connect first time speaker and authors in the developer community and help them get the help they need to write articles and submit CFPs. Things like editing, topic guidance, even introductions to potential publishing sites or conference organizers.
Jen Looper: DevPost is another great resource for spinning up projects for Hackathons. They have lists of events and some of them have really nice prize money.
TJ VanToll: To Jen’s point, I do find that NativeScript is a really fun way to get into a lot of these side project ideas... since it lets you spin up a basic app really quick, and also integrate with these various IoT SDKs and such rather easily.
Brian Rinaldi: Yeah, it is important to find a technology or platform that you are motivated to use and that keeps you interested in experimenting.
TJ VanToll: During the holidays I plan to do some upgrades to my blog, which is based on Jekyll. I might look into Hugo which is a competing static site engine that I hear good things about.
And speaking of plugs 🔌, I might consult the book of a certain static site expert participating in this chat.
Brian Rinaldi: Yeah, Hugo is cool (and offers you a chance to learn a bit of Go). Thanks for the plug! The book makes a perfect Christmas gift for everyone on your list, right? Kids to grandparents!
Jen Looper: Since you mentioned IoT, that's another great way to start endless side projects (be careful!) Hackster.io has encouraged me to pair hardware with software to create some super demos and...yet another website, ThingLearn.
Tara Manicsic: I have one serious one and one fun one (although I’m sure they’ll both be fun 😉). I want to build up a website for our Women Who Code branch that lets local women share their side-projects & be able to vote for upcoming workshops and events.
For the fun one, a project called EthniCITY that tells you your official city ethnicity based on how long you’ve lived in each city & your age. So I’d be part Lorain/Cincinnati/Boston with small percentages of DC, Louisiana & Mississippi. I’ve been wanting to do this project for awhile now and think it’ll be a great opportunity to dig into Kendo UI for Angular 2’s components.
Jen Looper: Tara, a side project about side projects. That’s great 🙂
Tara Manicsic: Side project inception
Jen Looper: Love the name EthniCITY too! 🙂
TJ VanToll: Tara, EthniCITY sounds less fun if you, hypothetically, spent 100% of your life in Michigan 😄
Tara Manicsic: It’s cities though...
Tara Manicsic: ...and MI cities have very interesting names.
TJ VanToll: This is true. Westland/Mount Pleasant/Lansing for me though, so meh.
Tara Manicsic: Guess you’re going to have to move soon
TJ VanToll: 🙂
TJ VanToll: ANYWAYS
So we’ve listed a ton of benefits and given some ideas of what we’re interested in, but what advice do we have for the average developer that doesn’t know where to start?
Jen Looper: The average developer, or a total newbie to code?
TJ VanToll: Either
Tara Manicsic: Tutorials! Less thinking and straight into coding. A lot of times you get ideas while you’re doing them too!
Brian Rinaldi: I have a bookmark folder where I save things that seem interesting and I want to find the time to try. Like open source projects, tutorials, etc. Every once in a while, I open it when I want to find inspiration for a fun little project.
I’ll search through it and find one that inspires me in the moment.
Jen Looper: I think Kent Dodds has really been working this angle, to make it easier to get started, with his posts on ‘first timers only’
A ‘first timer’ could start by contributing to a particular OSS project, and then move on. Take a look at the ‘first-timers-only’ tags on Github, see what looks interesting to you.
Alternately, if there’s a particular sector of technology that is interesting to you, like creating games, take a look at the available SDKs and give them a try.
TJ VanToll: My advice is to build something you want to exist. In my experience it’s hard to get motivated to build another to-do list app to learn a technology, but you can be ultra productive if you’re building something that means a lot to you.
Tara Manicsic: I tend to have LOTS of ideas and then am slow to start because I can’t make my mind up about what technology to use. I’ve learned now to just pick one I feel most comfortable with and stick with it…no matter what new framework pops up that week.
Totally agree, TJ.
Tara Manicsic: It’s nice too if you can think of some kind of tool you need.
TJ VanToll: Your idea could be something for your family, for your friends, or maybe it’s just for you. Think less about the technology you want to use, and more about the thing you want to build.
It’s a good real-world problem solving exercise really. I want to build this so I’m going to evaluate my technological options for making that happen.
Brian Rinaldi: Well, I’d add that it doesn’t have to be useful
Tara Manicsic: Asking family members will definitely get you a lot of suggestions & requests. DO NOT worry if something you’re thinking of making already exists. It’s the journey not the destination.
Brian Rinaldi: I decided one day I wanted to recreate the Zelda theme in web audio. It was super fun…and totally useless. But I learned doing it and really enjoyed the experience.
Tara Manicsic: I want to see that project Brian!
Brian Rinaldi: Tara, presentation is a little old now, but you can watch it here:
TJ VanToll: Brian, nope, it doesn’t have to be useful. But I’d argue that it should be something you want to exist.
I mean, I think the person that built The Useless Web deserves a medal 🏅
Jen Looper: 100% agree
TJ VanToll: Useful, no. Should it exist, 100% YES.
I mean, heeeeeeeey.com/. Come on.
Or Endless Horse.
I could go on.
Jen Looper: genius
Tara Manicsic: Please stop or no one will have free time lol
Jen Looper: Tara you bring up a good point there. Just a caveat, don’t get so wrapped up in your side projects that you forget important things like making dinner 🙂
Tara Manicsic: Can’t you make a side project that reminds you to make dinner AND tells you what to make?
Brian Rinaldi: lol there you go!
Jen Looper: Well I did create a kid-summoner
Tara Manicsic: Oh another tip: I always keep a little section in my journal of projects I want to build so when the time comes I’m ready.
Jen Looper: Great point, make sure to jot down all those ideas you get in the shower!
Awesome, any final advice to end on?
Tara Manicsic: Be proud of your side project! No matter how silly or useless or boring you may think it is, you coded it. Oh and always use version control 👍
Jen Looper: I’d say, don’t be afraid to either succeed or fail! You’ll never know unless you try. And maybe you’ll stumble onto something big!
Tara Manicsic: Yes! You learn best by breaking things
Jen Looper: ...and YES to version control!
TJ VanToll: The next time you have a crazy idea why not try building it? It’s a great way of getting out of a rut and learn something new in the process. Who knows, maybe you could create something as awesome as Weird or Confusing.
Brian Rinaldi: My advice is to set an artificial deadline for yourself. This is why I often commit to articles or presentations on the very thing I want to build - because otherwise it’s super easy to simply procrastinate or never finish. You don’t have to present or write about it, but find a way to create a reasonable end date for yourself and force yourself to stick to it rather than play more Overwatch.
Not that I get distracted by Overwatch…never…um…sorry, have to go 😉
TJ VanToll is a front-end developer, author, and a Principal Developer Advocate for Progress. TJ has over a decade of web development experience, including a few years working on the jQuery team. Nowadays, he spends his time helping web developers build mobile apps through projects like NativeScript.
Subscribe to be the first to get our expert-written articles and tutorials for developers!