Making a Side Project, Part 3: Validating the Idea


Have you read Part 2 of the Making a Side Project series?

In the previous post we discussed the ideas on the table, but tbh I can’t stop thinking about this FIRE Community idea. In this post, I’m going to break down my process to validate it.

The Idea: FIRE Community

The idea is to create an online community for people who want to retire early (FIRE means Financial Independence Retire Early).

This website will people who have achieved early retirement, and will provide a community for those beginning their journey. In creating this community, I hope people can achieve their financial goals.

Though my biggest reason, albeit a little foolish, is because I really want this to exist. I’m frustrated that outside of Reddit’s /r/financialindependence, there’s no other viable online community. I’m frustrated feeling lost about my finances when I so desperately want to control them so I can achieve my ideal lifestyle.

Validating the idea

Even though I’m bullish on this, it’s important to validate your idea. Any experiment is an investment of time and money, so how can we know if this will work before we invest more heavily?

The Lean way

The Lean Startup Methodology would have us gather feedback at this preliminary stage. We would use a method to test whether this idea is worthwhile to pursue.

Common idea validation methods are user interviews, surveys, and “fake door” landing pages. These tests are designed to help you decide if the problem is real and what the right solution is for the problem.

Going against the grain

But I have two concerns about following that advice at this stage.

  1. I’m concerned that it will be time-consuming/challenging to seek out feedback before we have an MVP to show.
  2. It’s easy to get stuck before starting because you never leave the “gathering feedback” stage. I’m concerned that if I don’t start, I’ll lose motivation and never pick this up again.

I think at this preliminary stage our goal is to build a basic MVP (or MUP, minimum usable product, as Mubs calls them), then aggressively gather feedback to iterate.

However, it’s worthwhile to repeat that I’m inexperienced and I don’t know what I’m doing. In a future blog post, I can address whether I think this was a good idea in hindsight.

Is it worthwhile to even build an MVP?

Even though we’re not gathering feedback at this stage, we can still think critically about the idea so we don’t waste time building an MVP. Following similar questions that Mub’s asked himself in his Making a Side Project series, we can crystallize our idea.

Would I use this? Hell yes! I want more guidance to reach my FIRE goal.

Do I know people who would use this? Tons of millennials I know want to retire early. They’re even willing to work hard for it, but they want to adopt a system that works. They need a network to provide mentorship and a clear path to success.

Do I know where people who would use this hangout? Yes, /r/financialindependence and many big FIRE and retirement blogs.

Does something like this exist? Yes, but they’re mostly unmaintained forums and blogs.

Is it viable? We’ve seen Product Hunt, Nomad List, and Indie Hackers use this template to build real businesses on top of communities. In addition, we know this is a viable community hungry for more because of the traffic of the top bloggers in the space. Ironically, many bloggers receive so much traffic that they achieve financial independence by blogging about their FIRE journey.

How long will this take to build and launch it? What are the costs? I want to aim for 2 months of work. Outside of time, the only real cost will be domain and hosting which is close to $4-16/month.

How much time/money would this take to maintain? Same as the previous answer.

How will this make money? For my first project, I’m not concerned about making money. But there are plenty ways to do so if we can successfully build a community like:

  • Premium offering of joining the community chat
  • Advertising
  • Partnerships

We’re looking good, guys! FIRE Community is checking our boxes. In the next blog post, we’re going to outline our MUP.

Making a Side Project, Part 2: Narrowing down ideas

Have you read Part 1 of the Making a Side Project series?

In the previous blog post, I talked about how I come up with ideas. Coming out of a week of ideation, here are the top ideas that I’m leaning toward:

FIRE Community


money pink coins pig

Since I heard of Mr. Money Mustache and the FIRE (Financial Independence Retire Early) community from the Tim Ferriss Show I’ve been obsessed with personal finance.

Everyone wants to retire early, but the road to retirement is still unclear and difficult.

There’s tons of financial advice, but it’s still scattered. The online community around early retirement remains concentrated around disparate blogs and Reddit, which buries the best resources in blog posts and books. This creates problem of noise, making it hard to distinguish what is high-quality and targeted advice.

So the idea for this community would be to collect resources so anyone can start their road to retirement. It would invite people around the world to talk about their experiences so that others can learn and replicate their success.

Junior Developer Job Board

working woman technology computer

There’s been a lot of talk recently about how the Junior Developer is dying. The problem is there are too many Junior Developers and not enough companies providing opportunities for mentorship.

This job board would connect companies looking to mentor juniors, so they wouldn’t have to bother with the high frequency hiring channels. There are incumbents already sort-of hitting the mark, but the sites look unmaintained.

Custom Job Board Aggregator

book computer design development

In my recent job hunt, I’ve been grateful yet disappointed by the experience. There are tons of high-quality opportunities for engineers, but sorting through these jobs is still incredibly time consuming and unwieldy.

For example, my process for finding jobs that meet my parameters is to check 15 pinned tabs every day.

Instead of querying over a dozen job boards and aggregators, I’d love to check a single one. What if you could aggregate these job boards into a single, customizable feed? You can turn a job board on and off, or create a custom filter so only jobs with certain parameters show up.

Newsletter Unsubscriber

Newsletters are wonderful and terrible: They are a great way to access deals and amazing content, but more often than not we don’t need them.

It would be great to have an easy way to sort through what you’re subscribed to and easily unsubscribe. Short of using (which sells your email data) and using Google Scripts, another solution would be nice.

Relationship Manager

adult casual collection fashion

I’m bad at relationships, especially business colleagues. In recent years, I’ve begun to keep a list of all the people I meet. Each entry has details like when we met, where I met them, and what I know about them. This has had a profound effect on my life, as I’m able to store important details about people, but I’d like a better way to do this.

This app would store all your contacts, making it easy to never forget anything important about anyone. It can provide reminders to wish your colleagues happy birthday, or to follow up with them once in a while to keep the relationship alive. It would provide a way to keep your relationships healthy and vibrant.

I had a dozen of ideas that I felt were pretty good, but I really like these ones. Each idea seems like a great place to start my first project of the year.

In the next blog post, we’ll decide what to work on and why.

Making a Side Project

Recently, I’ve been inspired by the Indie Hackers community, Pieter Levels and Mubashar Iqbal.

I was enjoying Pieter’s book MAKE and Mubashar’s Medium series Make Side Project when I realized it’s time to get off my ass and start building.

Even though I’ve worked as a web developer for 4 years now, I still haven’t developed the skill of creating and shipping products. In addition, there are tons of subsequent skills–design, marketing, talking to customers, etc–that matter when launching products that I’ve never had to learn.

I thought it would be a fun and challenging exercise to build in the open, so the Making a Side Project series was born. This series will showcase the challenges, lessons, and mistakes I make in real-time. I hope by making my first, real side project in the open, you might learn something too.

My attitude is that it doesn’t matter right now to build something great. I just want to strengthen the muscle of shipping product.

Let’s go!

(FYI: I’ll be updating this blog post as I go.)


Part 1 (May 20): Coming up with ideas

Part 2 (May 29): Narrowing down ideas

Applying to Jobs? Organize The Chaos with Trello

I use this workflow to manage dozens of applications so I can remember where I am in the process, take notes about the interviewer/interview/company, and maximize my candidate potential.

When you’re sending tons of applications and emails, you need a system. Otherwise, something important will slip through the cracks or, worse, you’ll fail to be as effective as you could be. When you’re gunning for a great job, you want every bit of help you can get.

To solve this, I use Trello to manage my job application workflow. It’s not the first time I’ve talked about using Trello to manage my professional life (see My Trello Workflow for Generating Blog and Product Ideas). The product is so versatile and easy-to-use if you can find the right workflow – I’m absolutely smitten with it for these applications.

Here’s a quick explanation of what it is:

Trello’s boards, lists, and cards enable you to organize and prioritize your projects in a fun, flexible and rewarding way.

It’s been essential to stay on top of what jobs I’ve applied for, what stage of the process I’m in, and log and refer to notes about the company. The workflow is dead simple:

  • Create a board, “Jobs”
  • Create the following lists:
    • Want to Apply
    • Applied
    • Interviewing
    • Not a Good Fit
  • Create the following labels:
    • Phone Interview
    • (Any other types of interviews that are common for your job process)

Screen Shot 2018-03-30 at 6.29.12 AM.png

Want to Apply

Found a company you’d like to work for? Add a card titled with the company name to this list.

Trello allows you to add notes to cards, so log any information you want. I often link to the application, the hiring manager, company culture notes, etc.


When you apply to a company, add a card or move an existing card to this list.

I often add cards here directly as I apply from job board websites where I can apply to multiple companies quickly.

At this point, I recommend adding a note with the link to the original job description. This way if you land an interview, you can refer to the description to focus the conversation on what they are looking for.

If you can’t remember what they’re seeking in a candidate, how can you be prepared to be the best candidate for the job?


Congrats, you landed an interview! Move a card over to this list now.

Now, use Trello’s Labels feature to label the stage of the interview process you’re in. This helps for visual scanning to see where you are in the interview process.

As an engineer, there are often stages of interviews: Phone interview, technical interview, then an in-person interview. As I work my way through each interview, I’ll add the corresponding label.

In addition, after each interview, I recommend adding a note comment with how you feel, what went well, and what you could improve in the next interview.

Not a Good Fit

Unfortunately, you weren’t a good fit for the company. It’s OK, it happens! Move the card over to this list, and note any feedback about what you can improve.

Wrap up

As well as providing an organizing principle to a messy and emotional process, this workflow has given me a sense of progress.

It can be demoralizing failing interviews and applying to companies who will never respond to you. I think this feeling of progress keeps my eyes focused on landing the right job, and keeps me motivated.

It’s worked and continues to work for me. Give it a try and let me know what you think.

Thanks for reading!

Refined GitHub: GitHub’s “Edge” Version

Refined GitHub is a browser extension that improves the GitHub experience with tons of user experience improvements. It adds fixes to annoyances that you didn’t even know you had, and once you learn about this extension, you won’t want to go back.

This was originally published by Hacker Noon on Medium. See the original article here.

Refined GitHub is a browser extension that improves the GitHub experience with tons of user experience improvements. It adds fixes to annoyances that you didn’t even know you had, and once you learn about this extension, you won’t want to go back.

A few months ago, I started using the extension and it is badass. Started by the respected developer, @sindresorhus, this extension fixes tons of the small annoyances we have with GitHub. The improvements are executed so well that the company has started to follow suit and implement some of them, too!

Because of this, the extension makes you feel like you’re using GitHub Edge™. It’s the same GitHub you know and love, but with a better experience. ⚡

For me, the extension has performed perfectly and it keeps improving all the time. I’m pretty jazzed about it, and I think you will be too.

Here’s a list of my favorite features so far:

1. Reaction avatars

See the avatars of those who reacted to an issue, pull request, or comment. It’s so much better than simply seeing a faceless (get it?) number!

2. Show links to closing PR in issues and PR

A link to the PR that will close the viewed issue can be seen prominently in issues and PRs. No more searching comment history to find the PR mention.

3. Linkifies URLs and issue/PR references in code, comments, and titles

Similar to how GitHub “linkifies” URLs and issue and PR references in markdown, it will create automatically create links to URLs, issues, or PRs from your code and issue titles.

4. Mark issues and pull requests as unread

Add an issue or pull request to your notifications. Need a reminder to check out a comment later? Here’s your solution.

5. Add indenting with the tab key in textareas

Adds indent with tab to textareas. Writing code blocks in GitHub comments just became a cinch.

See more and contribute

If Refined GitHub only changed one or two things, I don’t think it would add enough value to be compelling. But when you package these improvements altogether, it significantly improves the UX.

In addition to the ones I mentioned, there’s a bunch of other quality-of-life improvements that I left out. To see the rest of the features or help with development, check out the GitHub project repo.

I’ll wager that these changes will fit so well with your current workflow that you’ll forget what’s GitHub and what’s added by extension, too! So give it a try and let me know what you think.

Thanks for reading, and thanks to the Refined GitHub team!

Goodbye Sublime Text: Transitioning to Visual Studio Code After Using Sublime Text for 4 Years

After 4 years of being a loyal Sublime Text user, I’ve moved on to Microsoft’s Visual Studio Code permanently. Every year I have dedicated a week to trying other IDEs, but there was always something about other text editors that I didn’t love. VSCode is wonderfully familiar while offering much more than any other IDE I’ve experienced.

It took an hour to get up and running and I haven’t looked back since.

The Problem with Sublime Text

I was a diehard Sublime Text fan (I even paid for it)! When I began programming, it was my first text editor and I couldn’t get over its speed, simplicity, and extensibility at the time.

But modern web development and the competitive landscape has changed dramatically over the past few years. We’ve seen ES6, build tools, and so much more come to the forefront and our needs have changed. We want better means to collaborate, debug, and extend.

Unlike other IDEs now, Sublime is rarely updated and the extension community, which was once wildly innovative, has moved on.


When GitHub dropped Atom, it changed the game. The extensibility, user-friendly touches, and familiarity to Sublime made almost everything about the experience a joy. It truly set a new standard for our development tools.

But it seemed like no matter how many releases, Atom could not beat or come close to the speed of Sublime. In addition, for all of its usability improvements, something was missing for me.

Enter VSCode

A few months ago while watching a course from Frontend Masters, I saw VSCode in action. When I saw IntelliSense for the first time, my jaw dropped. The instructor was effortlessly navigating between files from its call, previewing function definitions without navigating to the source file, and using autocompletion like I’ve never seen.

IntelliSense in action

“Holy crap. I need to try this.”

I immediately downloaded the free software. The onboarding was beautifully simple. The documentation clear and concise. It was heaven.

It actually feels like a natural progression: Atom was inspired by Sublime, and VSCode was inspired by Atom. Using VSCode actually feels like using a new and improved Sublime Text.

Here’s a preview of the best features:

Intellisense – The coup de grace: Smart completions based on variable types, function definitions, imported modules right in-line the editor as you type.

Clear documentation

Simple onboarding – The onboarding was designed knowing many users are coming from other IDEs and make it dead simple to transition with keymaps. In addition, the interactive playground and documentation make it easy to start.

Fast development – Major releases with new features rolling out every few months.

Extensions community – The developer community is strong and thriving. Novel ideas being thrown about because of the powerful built-in functionality already available.

Extensions UX – Effortlessly find and install new extensions. VSCode will recommend new ones in the Extensions Panel based off of files you recently open.

Extensions Marketplace

Configuration UX – Configuration is dead simple with search and clear explanations. There are also project-specific configurations with Workspaces.

Integrated Git – Powerful Git integration to review diffs, stage files, and make commits from inside the editor. I use this as my primary diffing tool now.

SCM / Git integration

Debugging Tools – I haven’t used this much, but you can debug the code right from the editor.

Preview Markdown – Preview GitHub-flavored markdown files and see changes live.


There are still a few drawbacks, but they are small trade-offs compared to the power you get.

  • Slightly slower than Sublime Text, but much faster than Atom.
  • Backed by Microsoft, which has a poor developer reputation. I think they’re working on it though.
  • Microsoft’s product suite and branding are confusing as hell. Other than Visual Studio Code, there’s Visual Studio, Visual Studio Home, and Visual Studio Team Services.

Extensions to Get Started

Ready to try it? Download it here.

Here are a few extensions to get you started. I chose some because they will aid in the transition from Sublime Text, and others because only VSCode has anything like it. See here for an exhaustive list of my extensions.

  • Sublime Text Keymap – Use Sublime Text keyboard shortcuts.
  • Settings Sync – Setup a GitHub gist once and backup your configuration settings.
  • GitLens – Git supercharged – Powerful Git tool for visualizing code authorship and diff comparing at a glance.
  • Path Intellisense – Autocomplete filenames. This makes importing modules in ES6 a breeze.
  • Auto Close Tag – Automatically add HTML/XML close tag like Sublime Text.
  • Contextual Duplicate – Duplicates highlighted text like Sublime Text, instead of duplicating the entire line. If you don’t have anything highlighted, it will duplicate the entire line.

See the popular VSCode extensions here.

Have you had a similar experience? Did I miss something? Let me know!

The Best Visual Studio Code Extensions

It’s so important for us as craftsmen and craftswomen to know our tools and get better at using them. When a tool is critical to our workflow, tiny increases in productivity lead to huge gains overtime.

Since programmers work out of our code editors everyday, editor extensions are a great way to increase productivity (as well as making our editor our home).

Since I’ve been geeking out over Visual Studio Code recently, here’s my list of the best VSCode extensions that I’ve come across so far.

  • Sublime Text Keymap – Use Sublime Text keyboard shortcuts.
  • Settings Sync – Setup a GitHub gist once and backup your configuration settings.
  • GitLens – Git supercharged – Powerful Git tool for visualizing code authorship and diff comparing at a glance.
  • Path Intellisense – Autocomplete filenames. This makes importing modules in ES6 a breeze.
  • Contextual Duplicate – Duplicates highlighted text like Sublime Text, instead of duplicating the entire line. If you don’t have anything highlighted, it will duplicate the entire line.
  • Auto Close Tag – Automatically add HTML/XML close tag like Sublime Text.
  • vscode-icons – Icons for VSCode.
  • Bracket Pair Colorizer – Changes the color of each pair of brackets to make it easier for scanning.
  • Project Manager – Manage your projects right inside Visual Studio Code. Easily access and switch between them.
  • Prettier – Opinionated autoformatter for frontend code.
  • Open in GitHub / Bitbucket / GitLab / – Like GitHubinator for Sublime Text, jump to a source code line in GitHub or other clients.
  • One Dark Pro – Atom’s iconic One Dark theme for VSCode
  • File Utils – Adds convenient commands for creating, duplicating, moving, renaming, and deleting files and directories.

See the popular VSCode extensions here.

Keep an eye out for an upcoming post where I talk about switching from Sublime Text to Visual Studio Code.