Tiago used the power of AI to turn this article into an audio version - click here to listen ...
Abbie: Hey Tiago, thank you for taking the time to answer some questions for our newsletter! It would be great to find out about your background in Software Development and your experience with Elixir & AI.
Please could you give a brief introduction to yourself, your background and your experience with Elixir so far?
Tiago: I have 15 years of experience in software development, with approximately 6 years of professional experience in Elixir. My interest in Elixir began several years ago when Jose Valim was still a member of the Rails Core team. After reading a book, I believe it was titled "Seven Languages in Seven Weeks," he was inspired to create something new on top of the Erlang VM, giving rise to the Elixir Programming Language. Since then, I have consistently utilised Elixir in my personal projects. As its popularity grew, numerous companies adopted it, leading me to secure a job working with Elixir a few years later when it had become more mature.
Abbie: Did you create the ‘Elixir Programming’ group on LinkedIn which now has over 8K members? If so, what made you create the group?
Tiago: I didn't create this group; someone else did many years ago. However, as he was falling ill, he observed my high level of activity in the Elixir community. He asked if I could take over the group, and I agreed. Since then, I have been leading the group, which has now grown to 8k members. Virtually almost all the best Elixir enthusiasts and developers are part of the group.
Abbie: Based on your insights as the owner of the group, how would you describe the general interest in Elixir over time?
Tiago: I believe Elixir has experienced significant growth over the years, attracting some of the brightest minds in the United States and Europe as well as other parts of the world, where you can also find some of the best job opportunities. Currently, there are still many people interested in learning and contributing to Elixir, leading to a continuous influx of new posts, articles, conferences, talks, books, and open-source projects being developed in Elixir.
Abbie: It really is a great group to be a part of and it's fantastic to hear there has been so much growth within the community! You’re also the author of ‘Elixir: From Zero to Completion’, please could you share some information about your book?
Tiago: Yes, I decided to write this book because I noticed that most of the knowledge in Elixir is concentrated in English. However, my own country, Brazil, has many skilled developers as well. Unfortunately, many of them don't speak English fluently enough to read the English materials. So, I decided to address this issue by creating content in the Portuguese language. This book serves as an introduction to Elixir, preparing developers to start using it professionally.- - Available to purchase on Amazon: https://bit.ly/3WYnqrw
Abbie: Did you enjoy writing it? Did you face any challenges?
Tiago: Yes, I am very proud of this book. As you can see, people also seem to like it, as it has a score of 4.8 on Amazon. It was indeed a challenge to write this book because, when I decided to teach Elixir, I realised that I didn't always understand some concepts well enough to convey them. Therefore, I delved deeper into the concepts to be able to explain them more effectively. After doing so, I recognized that the best way to learn something is by attempting to teach the topic to someone else.
Abbie: Who is the book aimed at & what can they learn from it?
Tiago: This book is for any developer with previous experience in any programming language who is interested in learning Elixir and starting to use it professionally. Currently, it is a bit outdated because many other features have been released since the book's publication, but it still serves as a good source to grasp the fundamental concepts.
Abbie: Would you like to write any more books?
Tiago: Yes, but probably for other topics such as vector databases, distributed systems, etc. Actually, I have some ideas in mind to help any developer better understand many of those concepts, where learning is like having fun. unfortunately I can't reveal the idea now.
Abbie: Sounds exciting! In hindsight, is there anything you would have approached differently with regards to writing?
Tiago: Yes, I think I could use more analogies to explain complex concepts because this helps a lot in understanding the ideas and remembering them in the future.
Abbie: Let’s talk about AI! Recently we’re seeing an increase in the excitement surrounding the use of Artificial Intelligence. You have been working with AI and Machine Learning, a subset of AI, for a number of years now.
Please could you tell us a little bit about your experience with Artificial Intelligence & Machine Learning?
Tiago: Yes, I've always been fascinated by intelligent machines since I was a kid. A couple of years ago, brilliant minds began enhancing this field with better machine learning algorithms, deep learning, computer vision, and natural language processing, which drew my attention. I started studying these topics because I wanted to combine intelligence with software development. I joined IBM during a machine learning competition in Latam and was ranked among the top 100 best machine learning developers. Since then, I have been investing my time in learning and applying most of those concepts professionally. Abbie: What do you enjoy about it and what do you think the benefits of AI are?
Tiago: I really like AI and almost everything it is capable of doing. Currently, we can generate images, texts, extract and summarise information from books, solve maths problems, algorithms, practice interviews, or learn a new language, and much more, thanks to the power of AI.
Abbie: It's fasinating to see how AI is capable of so much. Would you be able to share any information about the projects you’ve been working on?
Tiago: Sure, at IBM, I worked with supervised and unsupervised machine learning algorithms to solve classification, regression, and clustering challenges. I also had the opportunity to train computer vision algorithms to detect bugs on farms, identify fraud in financial transactions, and identify outliers and patterns.
While at Savi, I used Elixir and Python to apply computer vision algorithms to count the number of cars and the duration of their parking in different stores.
During my time at DockYard, I worked on NX and Scholar, which are two machine learning libraries for the Elixir ecosystem. I added some features in terms of distance measure functions, such as Jaccard similarity, standard scaler, train-test split, and others.
Currently, I have been investing my time in learning and using LLMs concepts such as Llamaindex, LangChain, ChatGPT APIs, vector search, RAG, and Prompt Engineering.
Abbie: It sounds like you've worked on some really interesting projects! How do you think Elixir can factor into discussions around AI?
Tiago: Elixir has been growing a lot in this field as well. Today, we have Nx, Axon, Scholar, Bumblebee, Explorer, and many other libraries that you can use right now to solve AI challenges directly in Elixir. This allows you to work within Elixir without leaving or mixing it with Python, which is the most popular language for AI nowadays. However, in my opinion, Elixir still has some challenges to overcome in order to become as popular as Python in this field.
Abbie: Do you have any advice for developers who would like to get involved with AI, where should they start?
Tiago: I believe that to learn AI, a person needs to filter the "hype" and find a reliable source to learn the basics. It's essential to invest some time in learning linear algebra, statistics, and calculus because these concepts become crucial to understand what's happening behind the scenes. After mastering these fundamentals, one should try to outline a real-world problem to solve with AI and apply the newly acquired concepts. Currently, there are numerous books and courses available; individuals just need to read reviews and ensure that the material is suitable for learning.
I particularly enjoy the deeplearning.ai website.
Abbie: Thanks so much for your detailed answers Tiago! As a thank you for your time & effort we would love to purchase a copy of your book 'Elixir: From Zero to Completion' to give away to our Beam followers. Stay tuned on how you can win!