Job Description
We are seeking a Senior Software Engineer to lead the development and architecture of new features and products within our Elixir codebase. This role will be pivotal in driving innovation for our web applications and API services, ensuring they meet evolving business needs and technical standards. The ideal candidate will work closely with product management to define project goals, prioritize initiatives, and scope new developments. You will be responsible for designing scalable systems, implementing robust solutions, and maintaining the integrity of our codebase through rigorous testing and documentation. Additionally, you will play a key role in mentoring junior engineers and fostering a collaborative, high-performance team environment.
Key Responsibilities
- Architect and develop new features and products using Elixir, focusing on performance optimization and system scalability
- Collaborate with cross-functional teams including product management to translate business requirements into technical specifications
- Design and implement RESTful APIs that ensure seamless integration with front-end applications and third-party services
- Write clean, maintainable, and well-documented code while adhering to industry best practices and coding standards
- Conduct thorough code reviews to ensure code quality, identify potential issues, and share knowledge with the team
- Monitor system performance, troubleshoot complex issues, and implement improvements to enhance user experience
- Stay updated with emerging technologies and industry trends to recommend innovative solutions for our platform
- Lead the development of technical documentation, including architecture diagrams, API specifications, and system design guides
- Participate in agile development processes, including sprint planning, daily stand-ups, and retrospectives
- Collaborate with QA teams to ensure comprehensive testing of new features and products before deployment
Job Requirements
- Proven experience (5+ years) in software development with a strong background in Elixir and its ecosystem
- Expertise in building scalable, distributed systems using Elixir's OTP framework and Phoenix framework
- Deep understanding of web application architecture, including front-end and back-end integration patterns
- Strong proficiency in writing unit tests, integration tests, and end-to-end tests using Elixir's ExUnit framework
- Experience with version control systems like Git and familiarity with CI/CD pipelines for automated testing and deployment
- Excellent problem-solving skills with the ability to debug complex issues and optimize system performance
- Strong communication skills to effectively collaborate with product managers, designers, and other stakeholders
- Ability to mentor junior engineers and provide technical guidance on best practices and code quality standards
- Knowledge of cloud platforms like AWS, Azure, or Google Cloud for deploying and managing Elixir applications
- Experience with database technologies such as PostgreSQL, MongoDB, or Redis for data storage and retrieval
- Proficiency in using DevOps tools like Docker, Kubernetes, and Terraform for containerization and infrastructure management
- Strong understanding of security principles and best practices for securing web applications and APIs
- Experience with monitoring and observability tools like Prometheus, Grafana, or ELK stack for system performance tracking
- Excellent written and verbal communication skills to document technical processes and communicate with non-technical stakeholders
- Ability to work independently and as part of a team in a fast-paced, agile environment