3 ms·
cultofmetatron is hiding an grace/ability ratio of an olympic ice skater. My friend worked for a POS company where potential customers had features in mind and
by aitchnyu 2y ago
cultofmetatron is hiding an grace/ability ratio of an olympic ice skater. My friend worked for a POS company where potential customers had features in mind and engineers were expected to place the next block on the barely standing Jenga tower. They were bootstrapped, had excellent moonlighters and years of headstart in Indian market. They were dead by the time most shops got Android POSs.
- cultofmetatron 2y agoone of the best decisions I made as CTO was to focus purely on IOS devices. That massive moving target of android devices is a nightmare to develop for if you're going for bug free turkey operation. Second was moving to hire someone with "olympic ice skater" level experience with ios development. We tell our customers what devices to get and in B2b, its a very small part of their overall budget. The second best decision was to build our server infrastructure on top of elixir/phoenix. I don't think I could have gotten this far if we used node (and I had 10 years of nodejs experience)
- philipyoungg 2y agoInteresting. Do you do anything “special” on the server thats hard / impossible to do with node js?
- cultofmetatron 2y agowell for one, in elixir, you can get away with having a monolith architecture. elixir has the concept of a "genserver" which is a dedicated thread. the beam has a message passing system baked in. So lets say I want to create a service to which I want to send jobs, I can create a genserver which is just a file taht inherits genserver behavior and mount it at the top level's application.ex in the supervision tree. phoenix will take care of keeping it up and monitoring it in place of crashes. You can also have your api nodes connect to each other and maintain persistent data across them. this means a thread in one machine can send data to a thread on a completely different machine. If I were to do this in nodejs, I would need to setup a supervisor. I'd need a message passing broker like rediis or rabbitmq and I'd need an orchestrator to manage the various services. in elixir, we get all this baked in. I can add a microservice as easily as you can add a controller in rails. Also, the websocket system in elixir is so good makes nodejs look like a toy.