Radious Subsystems, Inc. ======================== - Philosophy - 1. Focus on the backend. I.e. "Does the service work as intended?" a. Integration tests are better than unit tests -- aka "sanity checks". b. Fuzzing will uncover edges cases. c. Prefer battle-tested libraries and platforms. d. Do not over-complicate the deploy process. A complicated deploy process hinders patches and feature iteration. --- 2. Prioritize on end-user usability. Aesthetics are second-class to usability. a. No obtuse UI elements. (E.g. hamburger menus). Use words. Not buttons. b. If the action/glyph is a well-known metaphor, then an icon is acceptable. But! Add a simple tagline for clarity. For example: the save action can be displayed as " Save File". c. Do *not* execute minimalism to a fault. Graphical interfaces are a natural tenet of software. If actions are not easily discoverable, then it a poor implementation. Command-lines offer flexibility at the cost of discoverability. Know thy user. d. Oftentimes, vanilla HTML/HTTP forms can manage stateful use-cases without the need to introduce JavaScript. e. *Always* provide an API for users to scarf their own data. --- 3. Do not launch a free plan if it cannot, or is not intended to, be sustained. Software and hardware development incurs cost. Charge for it. Make it clear. Potential customers should not need to grovel to discover the pricing model.