Phrasing | CTO | Europe, REMOTE | https://phrasing.app Phrasing is a language learning application that actually works. We have a working product, a few paying users, and a bunch of ideas. Currently we're just smoothing out all the bugs before a big launch this fall. Currently it's a two person team - one engineer and one designer. Looking for another engineer to join in a co-founding capacity and help us scale. Lots…
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'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 :)