Common Engineering Mistakes that Can Sabotage Startups: Learn from These Examples
Summary of my bookmarked links, videos, and Github repositories from Jan 27th, 2022
Links
- 4 Engineering Mistakes That Kill Startups
This article highlights four common engineering traps that startups should avoid. The first trap is premature scaling, which involves dedicating resources to large-scale builds before reaching product-market fit. The second trap is using shiny, untested technology that may not be the most productive choice in the long run. The third trap is hiring the wrong engineers, such as those who are not a good fit for the startup environment or who prioritize new technology over practical solutions. The fourth trap is problems with product and management, including setting unrealistic roadmaps and not valuing the input of engineering teams. By avoiding these pitfalls, startups can reduce self-inflicted wounds and increase their chances of success.
- “The Lean Startup” Is Outdated. Drop Everything That Comes From It.
"The Lean Startup" book, published in 2011, revolutionized the startup world with its methodology. However, this article argues that it is time to move away from its principles. The author believes that the book is outdated and not suitable for most companies today. They criticize concepts like the Minimum Viable Product (MVP), A/B testing, and the emphasis on speed over quality. Instead, they advocate for a customer-centric approach, starting with thorough research and involving CX/UX professionals from the beginning. The article suggests embracing Lean principles that focus on reducing waste and delivering customer value.
Videos
- CS 294-101 - 02 Matt Debergalis: The design and implementation of the Meteor platform
Matt DeBergalis, co-founder of the Meteor Development Group, gives a lecture on the design and implementation of the Meteor platform. Meteor is an open-source JavaScript platform for building web and mobile apps, focusing on isomorphic APIs and full-stack reactivity. DeBergalis explains the evolution of app development eras, from mainframe to PC to web, and now to the mobile era. He introduces the concept of building blocks in app development and how Meteor aligns with this approach. The lecture also discusses the use of the Distributed Data Protocol (DDP) over WebSockets for real-time data communication.
- Meteor.js with Matt Debergalis
Meteor.js, an open-source JavaScript framework, aims to revolutionize web app development with features like live page updating and hot code pushing. In a talk at HTML5 Dev Conf 3, Matt Debergalis discusses the origins of Meteor and delves into its simultaneous development capabilities. He highlights the shift from traditional web architectures to modern JavaScript-based client and server applications, emphasizing the need for a new protocol that enables bidirectional JSON data flow. Meteor introduces session-based protocols, data subscriptions, and local caching to create responsive and fluid applications. While WebSockets are considered the future, Meteor utilizes workarounds to provide efficient data transfer, and Debergalis explains how Meteor handles security and ensures a secure environment for building modern applications.
Github repositories
- denis-sokolov/oncilla
Oncilla DB is a client-side database that synchronizes data between your UI and server, enabling real-time and optimistic UI. It simplifies code complexity, provides a great user experience by default, and offers flexibility with various view and persistence tooling. While stable, it is still a work in progress and requires specific data modeling. You can access and modify data synchronously using Oncilla. Additionally, it allows you to check synchronization status, such as offline mode and unsaved changes. Inspired by PouchDB and GraphQL, Oncilla offers a customizable replication protocol and serves as a client-side source of truth.
- karolis-sh/use-optimistic-update
The "use-optimistic-update" package is a set of utilities that enable the Optimistic UI effect, enhancing perceived performance by predicting future outcomes. It provides hooks and functions to synchronize and update optimistic states, allowing for instant reactions to user actions. The package supports shareable state between components, offers TypeScript support, and grants direct event emitter access. By utilizing the "useOptimisticUpdate" hook, developers can sync and update the optimistic state, while the "useOptimisticState" hook retrieves the optimistic state. The underlying event emitter, "optimist", facilitates the synchronization and updating of optimistic and real values. Overall, "use-optimistic-update" empowers developers to implement Optimistic UI, a pattern that simulates mutation results and updates the UI before receiving a response from the server. The package is available under the MIT license.