Hayden: Hey Adi, thank you for taking the time to sit down with me to discuss the release of your book, the process you undertook to complete it & all things Elixir. Before we discuss the book, would you mind giving a brief overview of your background?
Adi: Sure! I'm Adi Iyengar. I've worked as a Software Engineer since 2015, mostly doing Elixir and Phoenix. For my day job, I work as a Staff Software Engineer at theScore, building their sports betting platform. On the side, I advise a few startups and smaller organizations ranging from B2B marketplaces, Blockchain, Real Estate and Healthcare, all of them use Elixir in some capacity. I am also the co-host of Elixir Mix podcast, where we discuss hot topics in the Elixir ecosystem on a weekly basis.
Hayden: Thank you, that’s a great introduction.. So perhaps if we start by going back a few years, could you tell me how you first discovered Elixir?
Adi: I knew a bit about Erlang from College working with one of my professors on one of his projects, but my first real introduction to Elixir and the Beam ecosystem came from my first job at a company named Annkissam. They were primarily a Ruby on Rails shop and were looking to scale up some of their applications. So, their CTO at the time, Eric Sullivan, was looking into Elixir for that purpose. Since I was paired with him, I got the opportunity to do Elixir as part of my first job! From then on, the more I worked with Elixir, the more I liked it.
Hayden: What was it that attracted you to it over other languages?
Adi: There are so many things I like about Elixir. From a technical perspective, it takes the scalability and robustness of Erlang and exposes it in a ruby-like readable syntax. Phoenix adds a lot of more value to it as it allows us to build web applications very quickly, much like Ruby on Rails, but with Elixir's scalability. Finally, the Elixir community is so involved and passionate about Elixir, and that plays a huge role in making me even more excited about the language.
Hayden: How did you find yourself embarking on this journey into literature?
Adi: I had been reached out by a publisher to write an Elixir book in 2018, but I wasn't sure if I had the time to commit to it then. However, it was always at the back of my mind that I wanted to give back to the community somehow and writing a book would be a great way to do that. So, when I finally had a topic that excites me, I decided I should finally give it a go.
Hayden: If you had to give an elevator pitch for ‘Build your own Web Framework in Elixir’ for someone that hasn’t read the blurb, how would it go?
Adi: This book will teach you how to build a smaller version of Phoenix. Its goal is to demystify some of the inner workings of Phoenix, Cowboy and Metaprogramming in Elixir to empower you to explore even further, and maybe even contribute to Phoenix!
Hayden: How did you find the process of writing? Was it a problem to juggle it alongside personal & professional commitments?
Adi: It was really hard! I think there were a few things that helped me with this:
Picking a topic that I was really passionate about.
Having some sort of a schedule or time dedicated for writing and thinking
Having a circle of developers to talk Elixir with, to keep you motivated.
It's really important to have a group of people who help you stay positive and motivated. My wife, my parents and my friends played a huge role in this.
It wasn't easy as it's a huge commitment, but in the end, it was all worth it!
Hayden: How was the process, is there anything you would have approached differently?
Adi: The process was really smooth, thanks for Packt! They gave me a lot of freedom to approach this the way I wanted. Overall, I'm quite happy with how things turned out, but if there's one thing I would change I would get more feedback on the structure of the contents of the book before starting to write it. I had to change it a few times based on feedback half way through the book, and I could have avoided spending all that time if I had gotten some more feedback early on.
Hayden: I understand you’ve created an app that can revolutionize the process of writing code-related books, could you tell me more about it?
Adi: I wouldn't say revolutionize, but yes I did build an app specifically to help technical authors with the entire book writing process. I've actually given a talk about it at Code BEAM America. The goal for this app/tool was to make technical writing easier. It does that by adding ways to dynamically insert code snippets and command line outputs into markdown. This allows you to ensure that each code snippet and command line output in your text is testable independent of the non-code text.
Here's a link to the talk: https://www.youtube.com/watch?v=myxH2MXEEIc. I was
down with the flu, so my video is off :)
Hayden: What are the plans for sharing this application? It sounds like it would be valuable to your fellow authors!
Adi: It's next on my list after a couple ongoing projects I'm working on. The app is pretty much ready but needs more documentation and setup scripts to make it easier to use for others.
Hayden: Do you have any plans to write further books, if so are there any topics in mind?
Adi: Nothing yet! However, now that I have written a book I am definitely more open to writing another one if an idea comes up that I feel really passionate about.
Hayden: Outside of your own, of course, are there any particular books that you would recommend to aspiring Elixir Engineers?
Adi: There are some really amazing Elixir books so it's a tough decision to select a subset of books but the ones I recommend my mentees are Elixir in Action, Testing Elixir and Designing Elixir Systems with OTP.
Hayden: Following on from that, what advice would you give to anyone that’s considering writing their own book?
Adi: Talk to others about your book! The more you discuss your book with other Elixir developers, the better the book you'll end up writing. It also helps you stay motivated throughout the writing process.
Hayden: Our final question, what advice would you give to your ‘Elixir beginner self’?
Adi: Be a little less opinionated and listen to others more. This one is irrespective of the programming language (and even irrespective of the career), but listening to others more and trying to understand why others disagree with you or think the way they think is a great way to learn and grow as a developer (and as a person).
Hayden: Thank you so much for taking the time to speak with me! It’s been great to learn about your process & the book itself
You can buy Adi's book here: https://packt.link/sEaa3
Use this code for 15% off: 15ELIXIR (15%, valid until July 31)