I’ve been reading “Hello Startup: A programmer’s guide to building products, technologies, and teams”, by Yevgeniy Brikman. I don’t agree with everything but it is a fun and interesting read.
In particular there is a nice chapter on picking your stack, where he proposes that there are certain technologies so complicated/error-prone/already solved/time-consuming to build, that you should not build them yourselves, but instead go with leading solution in its category (unless you want to develop yourself for learning purposes, or for critical customization). Here is his proposed list:
- Security: cryptography, password storage, credit card storage
- Web technologies: HTTP servers, server-side and client-side frameworks
- Data systems: databases, NoSQL stores, caches, message queues
- Software delivery: version control, build systems, deployment automation
- CS 101: basic data structures (map, list, set), sorting algorithms
- Libraries for common data formats: XML, HTML, CSV, JSON, URLs
- Utility libraries: date/time manipulation, string manipulation, logging
- Operating systems
- Programming languages
Just curious to see how others view this in terms of the Elixir/Erlang-OTP ecosystem. Here is my quick take:
-
Security: cryptography, password storage, credit card storage.
ssl_verify_fun
comeonin -
Web technologies: HTTP servers, server-side and client-side frameworks.
Phoenix - web server -
Data systems: databases, NoSQL stores, caches, message queues.
Ecto
Postgresql
Graphql -
Software delivery: version control, build systems, deployment automation.
Mix -
CS 101: basic data structures (map, list, set), sorting algorithms.
(standard Elixir library?) -
Libraries for common data formats: XML, HTML, CSV, JSON, URLs.
poison - JSON
floki - XML
CSV - plataformatec/nimble_csv -
Utility libraries: date/time manipulation, string manipulation, logging.
(standard Elixir library?) -
Operating systems
(some Unix variant?) -
Programming languages.
Elixir / JS (front-end) -
I would add “Deployment Solution” here also:
(Heroku, Digitalocean, Bluemix, Amazon Web Services?)