> there's actually proportionally less failures in Product Hunts busiest period
This is a really interesting post! I think there's a little survivorship bias. As Product Hunt grew 2015-2017, users posted old projects of theirs which were already popular and successful.
This is advice that seems reasonable but is actually pretty harmful.
Take a startup with a few users. The senior engineer decides they need pub/sub to ship a new feature. With Kafka, the team goes to learn about Kafka best practices, choose client libraries, and learn the Kafka quirks. They also need to spin up Kafka instances. They ship it in a month.
With postgres, they’ve got an MVP in a day, and shipped within a week.
The article does a good job of explaining the difference between WHERE and HAVING. The simplest resource I've found for this is Julia Evans' "SQL queries run in this order" [0], which points out for example that SELECTs are one of the last things to run in a query.
I've managed software teams and data engineering teams, and both teams get tripped up with even moderate SQL queries. To simplify, we encouraged teams to use a clearer subset of SQL. Most HAVING can be replaced with a WHERE inside a more readable and explicit subquery. Similarly, we got rid of most RIGHT JOINS.
This is quite a bit of infrastructure for an app that hasn't launched yet. If it's not too late, consider simplifying by removing RabbitMQ or Redis. Perhaps even getting rid of both, and only using MySQL. Maybe your workers could become cron-jobs or threads.
For hosting, consider Heroku and Heroku add-ons for MySQL, Redis, and RabbitMQ. You could run workers in Heroku as well.
It would be possible to run this entirely in a VPS as well and fairly straightforward. I've also had success running the web app (with postgres and redis) in Heroku but the workers on a VPS.
When you first hear Tailwind's concepts, they seem to contradict everything you know about good software design. When you try it out and begin to remember some of the class names, you get into a great state of flow - it's the high developers are always chasing.
I can't help but feel that Tailwind detractors have never actually tried Tailwind or are too square to give it a chance.
Lots of developers believe that if they think hard enough and choose the right side project, it will succeed.
I think the takeaway here is that chance plays a big role. So increase your chances by shippings lots of projects. And a tip to ship several projects is to stay emotionally, physically, and financially healthy.
Hi HN, PrettyPrintPlease is a small weekend project that I’m excited to share.
I work at a hardware company and spent a few months with our logistics team integrating a lot of outdated APIs to automate moving hardware around the world. APIs to check shipping rates, taxes/duties, international banned entity lists, etc!
You wouldn’t imagine the horrendous software these logistics companies use. Pretty printing invalid json has been tremendously helpful for debugging issues!
I didn’t have the compute to find my 10 digit number with the area code.