Building is easy. Shipping is hard.

Shamoon Siddiqui
5 min readJun 3, 2020

Over almost 2 decades, I’ve written code for at least a dozen companies. Some were my own endeavors. Some were for companies in the Fortune 100. But most were somewhere in between. In that time, I’ve worked on frontend, backend, Microservices, apps, databases and all of the little plumbing and glue that holds it all together. My journey has been documented by my own ignorance thanks to Stackoverflow. I’ve never been one to shy away from asking for help and my most popular question is a testament to that, with over 360,000 views:

I’ve asked almost 1,000 questions in the 10 years I’ve been using Stackoverflow: that’s almost 1 question every 3 days! I also have been organizing the JavaScript NYC Meetup for almost 9 years and have had the privilege of speaking with and collaborating with some of the best developers in the world.

Want to read this story later? Save it in Journal.

But, like most developers I know, my Github is filled with half-complete side projects — and even worse: 95% complete.

Given all of that coding experience, why is it that I haven’t shipped many side projects?

The quest for perfection

This is a huge problem. I’ve had over the years. After starting a project, I’ll get hung up with some incredibly minor detail that end users will never really care about.

Maybe that button needs to be a slightly darker shade of blue? We are own worst critic and when it comes to building something that other humans might one day use, I’ve noticed that I can be especially harsh with myself.

For example, look at the user interface here. Looks pretty clean, right? I’ve asked countless friends what they think and they seem to think it’s at least “good enough.” But here’s what you don’t know: it took me 3 days to find that shade of light green in the background that you barely even noticed.

As I write this, I also realized that “in 4 months” should start with a capital “I,” and on and on it goes. The quest for perfection is probably the number one reason that great ideas and projects don’t see the light of day.

Too many opinions

As I build something, I ask my trusted colleagues, friends and peers for their opinion. While I appreciate their input, at times, it can be too much.

In my head, I have a vision for how it should be. Most of the time, I’m building something because I’m trying to scratch my own itch. But after asking 12 people for their opinion 6 times each, I lose track of why I was building whatever it is in the first place.

A camel is a horse designed by committee.

By the time I’ve changed and iterated based on feedback, what I end up having looks nothing like what I had intended in the first place. With so many opinions from so many people, whatever side project it is eventually dies a slow death.

The curse of time

When I’m building a product for a company or client, there’s almost always some time pressure. Working backwards from some deadline, I can figure out which features are feasible and which need to be relegated to the icebox. Most people don’t like working under deadlines as it imposes stress and anxiety. But it helps when trying to get something out the door. Most people working in tech are familiar with the “sprint” cycle and having some deliverables at the end of each defined time period.

But when it’s a side project, there’s no timeline. I get an hour here and an hour there. I can’t impose a deadline, and even if I do, no one is holding me to it. Having that infinite time means that I can continue to (a) search for perfection and (b) ask for opinions. That continues to change the scope and the vicious cycle continues. What should have taken no more than 4 weeks is suddenly in it’s 4th month.

Burnout

Getting tired is a part of life. But after a “simple weekend hack” is still not complete, it gets hard to stay motivated. I’ve spent countless hours on projects that never made it anywhere. Being exhausted is a natural part of the human condition. Weeks and weeks of progress (or lack of) causes burnout.

The Solution

I set a goal for myself on May 28th, 2020 (my birthday) to build and launch a product in a week. And I did exactly that!

It’s called emitter.dev: It’s hard getting WebSockets to play nice with modern Serverless architectures. There are some solutions for this, but nothing as simple as what I had hoped for. emitter works with Functions-as-a-Service without having be locked-in to a vendor.

I launched on:

So today, I officially launched! https://www.emitter.dev

I hope you’ll check it out and provide feedback.

📝 Save this story in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

--

--

Shamoon Siddiqui

Building products + communities with code. Entrepreneur with more losses than wins. Lifelong learner with a passion for AI+ML / #Bitcoin.