Recently, I stumbled upon this article and related Reddit discussion.
As a founder who has made these mistakes, I agree with most of @nemild's engineering killers. Some specific experiences come to mind:
- If you're a seasoned developer, you should seek to maximize tech debt at a startup (there will naturally be an upper bound, because you'll inherently find tech debt unacceptable).
- Pre-PMF, speed (ideally velocity) is magnitudes more important than scalability. Instead of focusing on scalability, we should've shipped shitty work to validate our product hypothesis. Timing (and time) is critical. Perfectionism kills startups. As the CEO (product founder), discovering and aligning your team toward velocity is your job.
- Use boring tech. We unnecessarily spent time migrating from ULIDs back to UUIDs (we should've just used the boring technology from the beginning).
- Death is the concoction of over-optimistic product vision combined with undefined engineering objectives. As the CEO, this was my responsibility and my failure (related: Plan first, then hire). @nemild makes a nice point:
ensuring a healthy product-engineering relationship is one more reason it’s critical to have hired the right engineers
Words of warning
Startup advice that's good and relevant to your company is rare. I've found and followed terrible advice and wanted to call out some philosophies I strongly disagree with.
If you're a developer considering joining or starting a startup, it's always easy to point fingers at the business/product person. Truth is, "business" is an overly broad abstraction. Product is often more nuanced than what's typically observable on the surface. A B2B business is completely different than an SMB and will require different positioning and growth strategies.
Failing to consider the importance of salespeople or "business people" is the same as treating engineers as a "service organization that can be steamrolled when important business decisions arise".
Build your team carefully. Build a deep respect for your players, one that's ideally grounded in personal experience and appreciation of the craft.
Teamwork makes the dream work, otherwise it's just a solo nightmare.