Although there are countless things to keep in mind when knee-deep at a start-up, there are two aspects that always sit front & center at ikura. For us, nothing is more paramount than user-trust, and customer retention.
As it turns out, trust & retention are quite complimentary: one doesn’t want to deal with a product/company that can’t be trusted. And similarly, customers don’t tend to stick their neck out for a product they don’t love.
Matching trust with technology
Erlang/OTP is a fantastic choice for any software start-up that cares about trust. Let’s consider Erlang’s strengths for a moment.
Erlang comes with libraries and best practices that are battle-hardened via demanding industries like Telecom & big software. OTP dates back to 1996, and Erlang the language, dates from a decade prior to that. Simply put, Erlang is a tank of a language and won’t likely let you down. I think tech founders should seek out tanks, and not gravitate to the newest vehicle in the cul de sac.
Erlang’s slogan of ‘you can experience nine nines (%99.9999999) of uptime’ is no joke. Once a well-constructed OTP system is humming away, acts of god are usually the types of things operations have to worry about.
When it comes to trust, I think adopting unproven technologies is frivolous. Certainly, new toys can provide for some fun learning, but at the expense of users? That’s unwise.
In choosing OTP
There are some ‘gotchas’ if Erlang/OTP is to be selected over other more trendy languages.
First, some Erlangers boast that OTP is an excellent choice for prototyping. In my experience, it’s not. Sloppy Erlang code carries an astoundingly high technical debt. In the long-run, reworking that hairy mess of functional code will set your start-up back, although you may have beaten your competition out of the gate. (But why are you going into an arena where there’s competition in the first place?)
So, writing fast & loose Erlang in order to prototype is probably a zero-sum game. However, if you prototype with some care, you certainly can maintain a sustainable code-base without much pain.
Another glaring issue when choosing Erlang as your start-up’s language of choice is this: it may be difficult or expensive to locate developers. There isn’t much to be said about this as it should be obvious why this could challenge a start-up. However, the sliver lining here is that you may attract some interesting talent when touting an Erlang code-base. Also, the BEAM ecosystem is growing slightly thanks to new languages like Elixir & LFE. Soon enough, there could be no shortage of Erlang-hungry developers. Who knows?
Trust is king
With the above caveats in mind, any founder or technical lead who cares about trust should seriously consider Erlang. For me, Erlang means reliability — and reliability means trust for all those customers.