anchor
Insights /  
BEAM and Team: Your Playbook for Hiring Elixir Developers

BEAM and Team: Your Playbook for Hiring Elixir Developers

August 29, 2024
->
10 min read
Elixir
By
Ihor Katkov
Software Engineer
Sofiia Yurkevska
Content Writer

Finding the right talent can make or break your company's digital initiatives. This guide offers strategic insights into hiring the best developers for those considering Elixir for their next project.

Map out your business and technology strategies

Before diving into the hiring process, aligning your technical strategy with your overall business goals is crucial. Elixir, known for its scalability and fault tolerance, is particularly well-suited for:

small smile negative yellow
Building highly concurrent and distributed systems
small smile negative yellow
Developing real-time applications with low latency
small smile negative yellow
Handling large volumes of data efficiently
small smile negative yellow
Implementing real-time systems

To illustrate how these capabilities translate to real-world scenarios, consider this brief case study. A telecom company providing Internet and IoT solutions struggled with its Java infrastructure. Their system managed 50,000 connected devices but could only handle 5,000 per server, creating a scalability bottleneck. This bottleneck was compounded by slow SLA management, limited IoT integration capabilities, high development costs, and protracted three-month release cycles for updates and new features.

After analysis, they transitioned to Elixir. This choice aligned well with their specific needs:

small smile negative yellow
Elixir's actor model and OTP framework were ideal for managing numerous concurrent connections and addressing device scaling issues.
small smile negative yellow
The OTP framework's supervisor trees helped improve system resilience, crucial for maintaining SLAs.
small smile negative yellow
Elixir's functional nature facilitated easier testing and maintenance, reducing development costs.
small smile negative yellow
Hot code reloading enabled updates with minimal downtime, significantly shortening release cycles.
small smile negative yellow
Tools like Nerves for IoT and Broadway for data ingestion streamlined custom integrations.

The transition team consisted of two Elixir developers, a project manager, a business analyst, and a QA engineer. This focused team structure allowed for efficient knowledge transfer and system development.

What can we learn from this case regarding hires? Here’s what we think is essential:

1
Start with your current challenges
Identify your technical pain points before making decisions for technology or hiring.
2
Think long-term
Consider how a technology aligns with your future scalability and maintenance needs.
3
Consider team composition
The right team isn't always about hiring many specialists but about having the right mix of skills.
4
Plan for knowledge transfer
Consider how you'll build and maintain expertise in new technologies within your organization.
5
Be prepared for challenges
Any tech transition will have hurdles. Plan for them in advance.
6
Choose between local and remote
Evaluate whether remote hiring can expand your talent pool or if investing in local talent development better suits your needs.

It's worth noting that while Elixir offers significant benefits, the talent pool is smaller compared to mainstream languages. You may find fewer readily available experienced developers, potentially higher costs for top talent, and a longer recruitment process. However, this scarcity also comes with significant upsides. Elixir's community is known for its high skill level and passion for the language. This can translate into potential for innovation and cutting-edge solutions, giving your company a unique competitive advantage.

Create your ideal candidate profile

When building your Elixir team, look beyond just technical skills. The ideal candidate brings a combination of technical prowess, problem-solving abilities, and the right mindset. Here's what to prioritize in your search:

1
Engineering and growth mindset
At the core of any great developer is a strong engineering mindset. Look for problem-solving skills, analytical thinking, and a solid technical foundation. These traits often indicate an ability to tackle complex challenges, a key asset when working with Elixir's advanced features. Moreover, a growth mindset suggests a willingness to learn and adapt.
2
Functional programming experience
While direct Elixir experience is valuable, don't overlook candidates with backgrounds in other functional programming languages. Experience with languages like Haskell, Clojure, or Lisp can indicate a strong foundation in functional programming principles, potentially leading to a quicker learning curve with Elixir. If they can explain monads, hire them. If they can explain monads in a way that makes sense, they're probably wizards, and you’ll benefit from some occult knowledge on the team.
3
Specific Technical Skills
Depending on your project needs, specific technical skills may be more crucial than others. For instance, if you're building distributed systems, look for candidates with experience in Open Telecom Platform, Elixir's framework for building such systems. If you focus on web development, experience with Phoenix and LiveView (part of the PETAL stack—Phoenix, Elixir, TailwindCSS, AlpineJS, LiveView) could be critical. Tailor these requirements to align with your specific project goals.
4
GitHub Presence
A candidate's GitHub profile can provide valuable insights into their coding style, quality of work, and passion for programming. Look for active contributions to open-source projects, particularly those related to Elixir or functional programming. This can indicate technical skill and a commitment to the broader development community – a trait that can bring long-term benefits to your team.

The right mindset often trumps specific language experience. Be prepared to invest in training promising candidates who demonstrate strong engineering fundamentals.

Source Elixir expertise

Finding top-tier Elixir developers requires a multi-faceted approach. Given the relatively niche nature of traditional hiring methods, they may fall short. Here's a roadmap to help you navigate:

1
Start where Elixir developers congregate.
Platforms like ElixirForum and ElixirJobs are goldmines for finding passionate and skilled Elixir developers. These niche sites often attract professionals who are deeply engaged with the language and community. Additionally, don't overlook LinkedIn – while more general, it can be an excellent tool for targeted searches and networking strategies.
2
Tap into the personal networks of your current engineering team.
Your current engineering team can be one of your most valuable resources in this search. Elixir developers often know other Elixir developers from previous projects, meetups, or online communities. Encourage your team to reach out to their networks. This not only widens your talent pool but can also lead to candidates who are more likely to fit your company culture. As an option, implement an employee referral program – it’s always nice to be thanked for the trouble.
3
Build a community presence
Becoming active in the Elixir community can significantly boost your hiring efforts. Consider hosting or sponsoring Elixir conferences and meetups. This positions your company as a supporter of the Elixir ecosystem, making you more attractive to potential hires. Encourage your current team members to participate in these events, give talks, or contribute to open-source Elixir projects. This visibility can naturally attract talent to your organization.
4
Consider agencies – with caution
Specialized agencies with a track record in tech recruitment, particularly in functional programming languages, can provide access to a curated pool of candidates. However, be wary of potential pitfalls:
small smile positive yellow
Some agencies might flood you with resumes, many of which may be only tangentially relevant. This can lead to a time-consuming filtering process.
small smile positive yellow
Ensure any agency you work with profoundly understands your requirements, company culture, and the nuances of Elixir development.

Assess the candidates

The first Elixir hire is often the most challenging and crucial. This individual will set the foundation for your Elixir initiatives, lead future development efforts, and shape your team's practices. Ideally, you're looking for someone with deep technical expertise, mentoring capabilities, and the ability to contribute to architectural decisions. With this in mind, let's explore effective methods to evaluate candidates and ensure you bring the right talent.

Here are actionable strategies to assess Elixir candidates:

1
Instead of abstract problems, create coding challenges that mirror actual tasks in your projects. Set a reasonable time limit (4-8 hours) and assess the result and their commit history, test coverage, and documentation. For example:
small smile positive yellow
If you're building a real-time application, ask candidates to implement a simple pub-sub system in Elixir.
small smile positive yellow
Challenge candidates to build an ETL workflow orchestrator in Elixir. They should create a system that schedules and manages multiple ETL jobs, handles dependencies between tasks, provides monitoring and logging, and gracefully manages failures. Evaluate their system design skills and use of OTP principles.
small smile positive yellow
Building a basic Phoenix application with specific features.
2
Use pair programming sessions to observe how candidates approach problem-solving and handle feedback and collaboration. Pay attention to how they explain their thought process. This can provide insights into their coding skills, communication abilities, and teamwork potential.
3
For senior roles, consider incorporating a system design challenge. Present a high-level problem related to your business and ask candidates to design a scalable solution using Elixir and OTP. This exercise reveals their ability to architect complex systems, leveraging Elixir's strengths in distributed computing. Look for how they balance theoretical knowledge with practical application, considering factors like fault tolerance, scalability, and maintainability.

But the first 80% of the hiring isn't as tough as the second 80%. Your candidate has proven they can conjure some code, but can they charm the team and stakeholders? Here’s how you can explore the other essential 80% of your potential Elixir wizard:

1
Evaluate the candidate's commitment to growth:
small smile positive yellow
Discuss their contributions to open-source Elixir projects.
small smile positive yellow
Ask about recent Elixir features or libraries they've learned and applied.
small smile positive yellow
Inquire about their methods for staying updated with Elixir's evolving ecosystem.
1
Consider a trial day where the candidate can interact with the team in a more natural setting. This way, you’ll get more insights into your potential dev’s technical abilities, and even more so – you can include team members to gauge cultural fit and interpersonal skills. This approach can be invaluable for both the candidate and your team:
small smile positive yellow
It gives the new hire a realistic preview of the work environment and team dynamics.
small smile positive yellow
It allows them to work on small, completable tasks that demonstrate their skills in a real-world setting
small smile positive yellow
It provides an opportunity for the candidate to experience your company culture firsthand.
small smile positive yellow
It helps your existing team assess how well the new member integrates.
Freshcode Tip
To the point above – leveraging your in-house expertise is always a good idea. If you have Elixir experts on your team:
small smile positive yellow
Have them review the candidate's code from previous steps.
small smile positive yellow
Include them in technical interviews to dive deep into Elixir-specific topics.
small smile positive yellow
Ask them to assess the candidate's understanding of OTP, concurrency models, and relevant Elixir libraries.

Common Pitfalls to Avoid

Now that we've covered the do's let's quickly touch on the don'ts. Here are some common traps to sidestep:

small smile positive yellow
Overemphasizing Elixir-specific experience at the expense of general programming skills.
small smile positive yellow
Neglecting soft skills and cultural fit (remember the "second 80%"?).
small smile positive yellow
Conducting inadequate technical evaluations (those coding challenges aren't just for show!).
small smile positive yellow
Overlooking remote talent in an increasingly distributed world.
small smile positive yellow
Skimping on onboarding and mentoring (your new hire isn't a plug-and-play device).
small smile positive yellow
Forgetting about community engagement (Elixir enthusiasts often come in packs)

Onboard ‘em well

Once you've successfully hired your Elixir developers, the next crucial step is to onboard them effectively. A well-structured onboarding process accelerates new hires' integration and sets the foundation for their long-term success within your organization. Here are key strategies to ensure a smooth onboarding experience:

Facilitate quick code contributions

Aim to have your new Elixir developers make their first code contribution as soon as possible, ideally within the first week. This early win serves multiple purposes:

small smile positive yellow
It boosts the new hire's confidence and motivation.
small smile positive yellow
It provides a tangible sense of accomplishment and belonging.
small smile positive yellow
It allows you to assess their initial performance and identify immediate support needs.

Consider preparing a list of small, manageable tasks that are meaningful yet achievable for someone new to your codebase. This could involve fixing a minor bug, adding a simple feature, or improving documentation.

Implement a "Test Day" approach

Before finalizing the hire or during the first week, consider offering a paid "test day." This approach can be invaluable for both the candidate and your team:

small smile positive yellow
It gives the new hire a realistic preview of the work environment and team dynamics.
small smile positive yellow
It allows them to work on small, completable tasks that demonstrate their skills in a real-world setting.
small smile positive yellow
It provides an opportunity for the candidate to experience your company culture firsthand.
small smile positive yellow
It helps your existing team assess how well the new member integrates.

Ensure that the tasks assigned during this test day represent the work they'll be doing but are scheduled to be completed within a day.

Establish a robust mentorship program

Assign a dedicated mentor to each new Elixir developer. This mentor should be an experienced team member who can guide the new hire through:

small smile positive yellow
Your established Elixir coding practices and conventions.
small smile positive yellow
Team workflows and communication channels.
small smile positive yellow
Company-specific tools and processes.
small smile positive yellow
The intricacies of your existing Elixir codebase.

The mentorship program should extend beyond the first few weeks, providing ongoing support as the new hire grows into their role. Consider structuring it with regular check-ins and clearly defined milestones.

Create a comprehensive onboarding plan

Develop a structured onboarding plan that extends over the first few months. This plan should include:

small smile positive yellow
A roadmap of progressively complex tasks and projects.
small smile positive yellow
Scheduled introductions to different teams and key stakeholders.
small smile positive yellow
Training sessions on your specific tech stack and tools.
small smile positive yellow
Regular feedback sessions to address any challenges or questions.

Effective onboarding is an investment that pays dividends in increased productivity, job satisfaction, and retention rates. By implementing these strategies, you're not just integrating new Elixir hires — you're setting the stage for their long-term success and contribution to your organization.

Final words

Hiring Elixir developers requires a strategic approach that balances technical skills, cultural fit, and business objectives. By following these guidelines and considering all available options, including strategic outsourcing partnerships, you can build a high-performing Elixir team that drives your business forward.

Are you ready to explore how our Elixir expertise can accelerate your next project? Let's connect and discuss your specific needs.

Build Your Team
with Freshcode
Author
linkedin
Ihor Katkov
Software Engineer

Experienced IT professional and team leader with a specialty in the trading domain.

Author Insights
Oops... This author haven't any other insights
linkedin
Sofiia Yurkevska
Content Writer

Infodumper, storyteller and linguist in love with programming - what a mixture for your guide to the technology landscape!

Shall we discuss
your idea?
Uploading...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
What happens after you fill this form?
We review your inquiry and respond within 24 hours
We hold a discovery call to discuss your needs
We map the delivery flow and manage the paperwork
You receive a tailored budget and timeline estimation
Looking for a Trusted Outsourcing Partner?