How do you, with a new product and one engineer, have an elixir backend and a clojurescript frontend? Genuine question about the choice of tech here.
I had the pleasure of meeting Ben in real life and watch him work — he's just really good at what he does, and his experience with ClojureScript is deep and wide.
One thing that sets him apart from myself and other engineers I've seen is *speed*: while I'm still thinking about a problem, Ben has implemented multiple prototypes, learned more about the problem and picked the best solution.
Hahaha excellent question.
I'm a front-end developer / ClojureScript engineer by trade. When it came time to choose a backend technology, I needed one that was foolproof, had excellent support for working with vector embeddings, and could train a few models.
I didn't trust myself not to blow both my feet off with Clojure, so I originally went with Python. After 8 months of using Python everyday, I can honestly say there wasn't a single programming session I didn't actively rue Python. Combine that with the hard switch from immutable functional paradigms in ClojureScript to mutable state object-oriented paradigms in Python, and I was thoroughly unhappy.
Elixir is immutable and functional, they've made great strides in ML tooling (especially with Nx & Nx.Serving), and Phoenix is absolutely foolproof.
I bit the bullet and moved my webserver to Elixir. Ever since, when something needs updating on the python side, I just migrate that feature to Elixir. After the initial setup, with the exception of one or two features, it's often faster than debugging it in python.
It definitely will make hiring more challenging, but it has 10xed my enjoyment of working on the project. Plus, surely there are some Elixir devs out there aspiring to be ML engineers :)