And How It Has Shaped the Identity of Our Company
Choosing the right technologies is crucial for any company – and for us Elixir has become more than just a tool: it’s a part of our identity. In this post, we explore why we often choose Elixir and the Phoenix framework for our projects, despite having extensive knowledge in languages like Java, Python, and JavaScript/TypeScript. We’ll discuss how Elixir’s robust and reliable foundation, built on the Erlang VM, allows us to create high-performance, scalable applications quickly.
We’ll also share how this choice has attracted top talent, shaped our company culture, and streamlined our development process, enabling us to focus on what really matters—delivering value to our customers.
In our customer projects at Inspired, we use several programming languages, including Elixir, Java, Python, and JavaScript/TypeScript. The choice often depends on the project’s needs or any specific requirements of our customers. For example, Python is a natural fit for Data & AI tasks and big companies often are focused on Java. However, when we’re building web & cloud applications, and there are no restrictions, we usually choose Elixir with the Phoenix framework.
While Elixir might seem like an unusual or even exotic choice to some, it’s built on the reliable Erlang VM and offers us the tools we need to create fast, interactive, and stable applications.
Here, we’ll delve into the reasons behind our tech stack and how it benefits both our customers and our development team.
What is Erlang?
Erlang was originally developed in the 1980s by Ericsson to support telecom systems that required high reliability, concurrency, and low latency. It was designed to handle millions of simultaneous connections with minimal downtime, making it ideal for real-time communication systems.
Erlang’s virtual machine (the BEAM) is known for its fault-tolerant nature, allowing systems to recover quickly from errors without affecting overall performance.
What does Elixir have to do with Erlang?
Elixir, created in 2011 by José Valim, was built on top of the Erlang VM to bring modern programming features to this robust environment. Elixir inherits Erlang’s strengths – such as lightweight processes, strong fault tolerance, and distributed computing – while adding a more developer-friendly syntax and powerful tooling.
This combination of Erlang’s reliability and Elixir’s developer experience makes it an excellent choice for building stable, scalable applications that can handle high levels of concurrency with ease.
Statements from our team
Up to that point, I've programmed JavaScript in a functional style and fell in love with it. Elixir as a purely functional programming language and Inspired Consulting as a company actively using this language in production got me curious, so I joined! Both haven't disappointed me, and it has been a very rewarding journey so far« 💪🏼🙂
Now, it feels like we have a more complete and well-rounded understanding of how to model problems and design effective solutions.«
It's hard not to love a framework that excels in every aspect, from real-time capabilities to developer happiness.«
Our Tech Stack
Our technology stack is carefully curated to leverage the strengths of Elixir and its ecosystem:
- Elixir: The core programming language we use.
- Phoenix: Our web framework, which includes many tools and sub-frameworks, e.g. for sending e-mails or parsing JSON.
- LiveView: For building highly interactive user interfaces.
- Tailwind: Our chosen CSS/UI framework.
- Ecto: A brilliant database library that simplifies interactions with our databases.
- PostgreSQL: Serves as our database backend, handling both relational and document data and sometimes acting as an event broker.
- Erlang/OTP: The runtime environment that powers our applications.
- Google Cloud Run or Kubernetes: Our preferred environments for deployment.
Advantages for Our Customers and Users
Choosing Elixir and this specific stack offers several key benefits to our customers and end-users:
- Highly Interactive User Interface: With Phoenix and LiveView, we can create dynamic, real-time interfaces that enhance the user experience without the need for extensive JavaScript. This makes our applications more responsive and engaging.
- High Performance: Elixir, running on the Erlang VM, is renowned for its ability to handle a large number of concurrent connections with low latency. This translates to faster, more efficient applications that can scale effortlessly. Unlike traditional Single Page Applications (SPAs), our approach uses server-side rendering, which makes the initial page load incredibly fast, which is great for the users and also for SEO rankings.
- Stable and Robust Applications: The reliability of the Erlang VM, combined with the fault-tolerant design of Elixir, ensures that our applications are stable and robust, minimizing downtime and providing a seamless experience for users.
- Cost Efficiency: Phoenix is designed to handle front-end concerns without imposing a platform mentality, making it easier to isolate and solve business problems. This streamlined approach reduces complexity and, ultimately, lowers costs for our customers.
Advantages for Our Development Team
Our choice of Elixir not only benefits our customers but also has significant advantages for our development team:
- Expertise Development: By focusing on a specific tech stack, our developers become true experts in Elixir and its ecosystem. This deep knowledge leads to better, more innovative solutions.
- Focus on Business Logic: Elixir allows our developers to concentrate on business logic rather than getting bogged down by infrastructure concerns. The absence of hidden abstractions in tools like Ecto ensures that developers aren’t sidetracked by framework-specific issues, enabling them to maintain focus on delivering business value.
- Job Satisfaction: Elixir programming is enjoyable and less frustrating, leading to a happier, more motivated team. Developers appreciate the language’s elegance, the powerful tools available in the Elixir ecosystem, and the ease with which they can predict and manage side effects thanks to functional programming.
- LiveView’s Impact: LiveView has been a game-changer for us, simplifying the development of interactive applications by allowing us to maintain most of our application logic on the server. This has revolutionized how we think about and build user interfaces.
- Supportive Community: The Elixir community is known for being friendly and helpful, providing a strong support network for our developers. This positive environment contrasts with some other ecosystems and contributes to our team’s overall satisfaction and growth.
- Attracting Top Talent: We attract top-tier developers who specifically seek out opportunities to work with Elixir and functional programming. This has been a key factor in our ability to build a strong, dedicated team.
One of the biggest advantages is that we have a complete, well-established stack ready to go. This means we don’t have to spend time evaluating and discussing tech choices for every new project—like which build tool to use, what dependency management system to adopt, or which logging and database access tools to integrate. This streamlined approach allows us to hit the ground running, focusing on delivering fast, interactive, and reliable applications that benefit both our customers and our development team.
Conclusion
In summary, while we work with a variety of programming languages, Elixir with the Phoenix framework is our preferred choice when building applications without specific restrictions. It provides the performance, stability, and ease of development that help us deliver top-quality products. By using Elixir, we can create fast, interactive, and reliable applications that stand out in the market, benefiting both our customers and our development team.