Welcome to another Sponsor Spotlight …today we’re talking to AmberBit!
Please tell us a little about AmberBit.
How did you discover Elixir?
We had technical problems with our stack. Simple things like long-running jobs, uploading/downloading files, running periodic tasks were routinely turning into rocket science with our previous tools. We needed a solution that would allow us to write simpler code for those tasks. We started squeezing in Elixir to existing projects and then it just clicked and we started preferring it over Ruby.
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?
The performance is nice, but the core advantage for us is that we can build systems that do more work in parallel, and delay the point in time when we need to solve hard scaling problems - or even remove it completely. Given that our clients are often start-ups, with limited budget and tight deadlines, Elixir allows us to deliver software that handles initial growth better than Rails.
How big is your dev team?
15 developers and growing.
How many of your developers work with Elixir?
How did you train your developers?
Extensively. We run training programs in-house, that are optional, but everyone in the team is free to attend and contribute. I believe everyone in the company attended the Elixir training, at least the initial part. This has been done in a form of weekly Hangouts, where one person presents a subject such as - say GenServer usage, and the rest are listeners. Afterwards we often have some discussion and do some coding.
We run similar programs for other technologies and methodologies, at the moment two most
popular ones are related to DDD and Elm.
What are your policies on remote work?
We are 100% remote team.
What kind of Elixir related projects have you worked on?
During the last 2 years we have worked on couple of recruiting software projects with back-ends in Elixir, two medical systems that handle sensitive information, a gift card / payment platform, mobile payment platform, project management tool, GDPR-compliance framework and an advertising platform.
Were there any difficulties in transitioning to Elixir?
Yes, it takes time. We found out it takes slightly more time to change your mind about how the code should be structured and work if you come from object-oriented language, such as Ruby. The similar syntax is a false friend. Elixir and functional programming is very much different from the languages we are usually taught at schools. It requires practice to learn the patterns, but then it clicks and you never want to go back.
Are there any architectures or methodologies in particular that you follow?
We do sort of degenerated Scrum in our projects, but we are trying to be flexible and make it work. for all our clients. We used to be pretty religious about following Scrum, but nowadays we are more relaxed about how we run things. The important thing is that we have some structure and rules and follow them - so we can actually deliver the projects on time.
Which database systems do you use the most?
We are in love with PostgreSQL, and we think it loves us too. It’s been a very good database for the majority of our projects.
Which front end technologies do you use the most?
We use React, Redux, MobX and/or Elm.
How happy are you with your choice in using Elixir?
10/10 would recommend it to everyone.
What would you say to other companies thinking about adopting Elixir?
Do it. We are happy to help Just reach out to us over at email@example.com and we can have a chat about it.
Thank you for chatting with us today! Is there anything else you’d like to share? Any plans? News? Tips?
See you at ElixirConf EU! We will be delighted to meet members of the forum, just find Hubert from AmberBit and say "Hi!”.
I encourage everyone to ask more questions. You can ask any questions openly here, and we will try to answer, you can also e-mail us directly at firstname.lastname@example.org or DM me on this forum.
Amberbit keeps a very helpful and insightful blog - multiple of my “google voyages” stopped there.
Thank you Hubert (and the whole Amberbit team) for your input to the community!
Thanks, bro ;). I am glad we infected you with Elixir too :D. The funny thing about keeping the blog is that you end up on your own article, months or years after you wrote and you have the “ah, I already solved that problem” moment, more than once
I have a question
Regarding training your devs, which learning resources/books/courses did you use and which did you find most helpful?
So for the starters, we went through the excellent online tutorial of Elixir School. In fact, I think it’s best starting resource for anyone who want to start with Elixir. Being open source and available for contributions, it means it’s always fairly up-to-date and you do really want that when you start with a language that’s new. In fact, I think we pushed a few minor contributions to it while going through.
Each chapter was being read by team members, then one of us referred major bullet points and demoed some practical uses / tips / tricks with Hangout/screen sharing, we had some discussion after each chapter sharing experience from real projects and discussing common “gotchas”.
Then we went on building a project. We run similar training for Elm and the team wanted to try both of these together, so we were building a game with Elixir/Elm & Phoenix channels.
At the moment we are starting going through the Absinthe Pragmatic Programmers book in simialr manner to Elixir School. So each of us reads a chapter, then we meet on Hangouts / present major points and discuss / do some experiments together.
I don’t know if this method of learning has been used by others, we sort of invented it on the fly but it seems to work and gives us some opportunity to talk to each other as we’re remote team
Hey ElixirForum folks!
Just to let you know, we may be available to hire for something new and have capacity to take on another project. We have done a lot of Absinthe + Apollo + GraphQL + Elixir but are interested in all things Elixir.