10

How Long to Crank Out a Decent Side Project?

Profile picture
Data Engineer at Financial Companya year ago

When doing a side-project to add to my resume to learn a new tool (e.g. Spark, Airflow, dbt since I'm a Data Engineer) or even a new language, how long should a good side-project take?

I know this question is incredibly ambiguous in that side-projects can have tremendous variability in terms of their depth and breadth, and I know that the best side projects (those with real users) can never end if you're constantly improving them and taking feature requests.

Still, if I'm a beginner to them and am trying to add 2-3 in the next, say, 3 months, how long (in terms of hours) should a decent side-project take?

I believe Gayle Laakmann Mcdowell says you can do a good resume project in a weekend. That's ambiguous (2 hours or 48 hours straight?), but it at least bounds it.

484
2

Discussion

(2 comments)
  • 9
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    a year ago

    I believe Gayle Laakmann Mcdowell says you can do a good resume project in a weekend. That's ambiguous (2 hours or 48 hours straight?), but it at least bounds it.

    This is somewhat correct but is mostly wrong (unless we're talking about 48 hours worth of time being distributed across an entire month or something).

    It's somewhat correct because building the v1 of what can someday become a successful portfolio project shouldn't take you that long. Ship something imperfect and hone it. All the side projects I've shipped (several with 100,000+ users) I built their initial versions in 1-2 days of hacking.

    Now here's why Gayle's statement is mostly wrong:

    • Everyone and their mom can get something functional with any technology in a weekend and slap it on their resume as the tutorial landscape is so good nowadays
    • Recruiters and hiring managers know that, so rarely is a project impressive due to the frameworks it uses or its "technical complexity".
    • What makes a project genuinely impressive is how many users it has. This is the clearest way you can stand out vs. all the other candidates who have cookie-cutter projects on their resume
    • The problem is that getting users takes time - It's incredibly rare that you'll get a meaningful amount of users (i.e. 1,000+) in the first 2 days or even the first week

    And that's why building a truly meaningful side project is difficult. You have to build, deploy, and then iterate, iterate, iterate, doing the hard work of dogfooding it, listening to user feedback, and improving it bit by bit every week. There are no shortcuts here.

    So let's go back to the original question: How long should a decent side project take? Here's my experience:

    • The initial version should take 1-2 days - Bias towards shipping, don't let yourself get stuck in development hell. It's a side project - There is no need to scope creep yourself. Release something as early as possible so you can play around with it, share it with others, and get feedback.
    • Getting meaningful usage takes at least 1 month - Your initial version is going to suck: No worries, all initial versions do. But in order to make it not suck, you need to make several updates to it (ideally from user feedback or dogfooding intuition), and this takes time. I define meaningful usage as 1,000+ users.
    • Achieving major traction takes 3+ months - For me, major is 5,000+ users. This is when your side project is really taking off and is a shining gem you can put on a resume. I got hired at Course Hero as their first Android engineer with just a few side projects having 10,000+ users each, and it literally made my career.

    I talk about all this more in-depth in our new side projects playlist: [Taro Top 10] Building Impressive Side Projects

  • 6
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    a year ago

    You want two different things:

    1. Add a project to your resume that looks impressive (i.e. results in an interview)
    2. Learn a new tool like Spark, Airflow, or dbt

    My answer is different for each.

    • For #1, like Alex mentions, the truly impressive thing is to get traction. That will almost certainly take longer than one weekend.
    • For #2, if you follow a tutorial and then extend it slightly in a creative way, you can easily achieve the learning objective in a weekend.