Welcome to another Sponsor Spotlight, today we’re talking to ElixirExperts!
Please tell us a little bit about ElixirExperts
We started in 2014 with an initial European base in Switzerland, quickly expanding globally. The US, Australia, Switzerland are our onshore delivery centres with India and Sri Lanka being our offshore delivery centres. Our Elixir Competency Centre is based in Chennai, India with over 15 experts with global exposure and industry verticals.
How did you discover Elixir?
A couple of years ago we noticed Elixir was mentioned as a fast growing technology in an article by Gartner. This is when we decided to invest in Elixir resources by forming our offshore Competency Centre and brand it separately as “ElixirExperts”. After an initial adaptation period we started to promote Elixir and build our customer base, gradually moving a number of customers from more fragile stacks to Elixir.
What attracted you to Elixir the most, or what was the biggest advantage of Elixir that was most relevant to you and what you do?
Coming from an Erlang background, we were fully aware of all of the major advantages of OTP and the Erlang VM, however some of the language abstractions like pipe operations, macro-programming and leveraging the most advanced features (AST) of Erlang through Elixir attracted us to easily fall in love with Elixir.
How big is your dev team?
There are over 40 developers at our Competency Center.
How many of your developers work with Elixir?
Over 15 developers work with Elixir.
How did you train your developers?
Our strategy is as follows:
- We recruit developers with expertise in other open source technologies
- We recruit freshers out of Universities having passion for programming
- Class room sessions conducted by our CTO (an Elixir expert) for 2 weeks
- At the end of two weeks, we assign a practical assignment which is more to do with internal products and applications of the company.
- They do shadow support with the existing team
- Finally move to the primary development team
Were there any gotchas in training your developers?
We assumed that developers with Ruby on Rails experience could quickly scale up in Elixir but this was actually not the case. Consultants with Erlang background and freshers with an open mind for functional programming performed much better. We have corrected this in our subsequent selection process.
What are your policies on remote work?
Since we have a large focus on collaboration we prefer our developers to be in the office most of the time, but developers are fine to work from home from time to time. We are also looking into adding remote offices, so that an entire team can work together and still have that collaborative environment, but live outside of India.
What kind of Elixir related projects have you worked on and how are you using Elixir generally?
Elixir has been used mainly for high transaction based systems and we have also developed a client’s patented algorithms using Elixir, which can identify an image from billions within a fraction of a second.
All of our internal products are being developed using Elixir due to their nature of serving millions of requests.
We’re very aware of the advantages of Elixir as well as its limitations and we overrule the short-comings with the major advantages that Elixir brings to the table.
We have also worked on ERP systems for healthcare domains using pinches of Elixir, Python, Java, though mainly Erlang.
Were there any difficulties in transitioning to Elixir?
When Elixir was slowly gaining popularity between 2015 – 2016, the community was very young and finding support for certain things proved to be a greater challenge, so we had to solve some of our issues just by trial and error methods.
It’s always interesting researching the unexplored and our clients usually have their own unique set of requirements, which was more of a challenge to cater to the early adoption stages.
Are there any architectures or methodologies in particular that you follow?
We follow the Agile Development model for all our projects. Sprint plans are defined and sprint backlogs are monitored. Weekly dashboards are sent and reviewed to show the sprint indicators, progressions and bottlenecks. Replaceable Component Architecture & Single Responsibility Principle are also valued.
Which database systems do you use the most?
We often use SQL for rapid prototyping also popular distributed NoSQL clusters such as Riak, MongoDb, ElasticSearch, Redis, etc., in situations where they’re needed.
Which front end technologies do you use the most?
Even though there are numerous frontend technologies, the most appealing to us and our clients are ReactJS and Angular. For most of our clients we, recommend using ReactJS. There are certain particular reasons for choosing ReactJS like it being wide-spread, quick for prototyping, easily reusable, etc.
What was your primary language before you discovered Elixir?
Erlang and Ruby on Rails.
How happy are you with your choice in using Elixir?
We’re extremely delighted to use Elixir because of its actively growing community and its versatility in terms of adoption.
Is there anything in particular that you’d like to see in Elixir?
Yes, there are no official NoSQL DB drivers like Ecto for SQL. Having such an integration would be beneficial for many of our different use cases.
What would you say to other companies thinking about adopting Elixir?
Elixir is not just any programming language, it’s an expression of a system and it will give you an alternate paradigm of how to think about system scalability and design patterns. It improves your project and your team in numerous ways.
Thank you for answering our questions! Is there anything else you’d like to share? Any plans? News? Tips?
As one of the early adopters of Elixir in and around Asia, we hope to one day organise (or work with others to organise) events and conferences that attract the biggest names in Elixir – if you’d like to see that happen or help us, please get in touch!