Join UsLead Elixir Software Developer

We are looking for a lead software developer to join our team. You will work with both Alembic teammates and clients' engineering teams to build user-focused products. If you love developing software, and the variety that multiple clients and projects provide, this could be the right position for you.

How we fit together

We're technical consultants and so are you

As consultants, we work closely with our clients. You have great client focus and understanding. You work on building relationships with stakeholders, clients, product managers, and other engineering teams, to solve problems that cross team boundaries. You can make difficult calls on an approach, and make persuasive arguments for complex cases.

You are a polyglot programmer

You have experience with languages such as Elixir, Erlang, TypeScript, Ruby, and similar. You have solid engineering knowledge of functional programming and object oriented programming, version control, common web technologies, and relational databases. You demonstrate good domain modelling skills, a good repertoire of software design patterns, and know when to use them. You have good working knowledge of architectural design patterns and their applicability to solutions, and you can provide direction for the team towards a target architecture. You are considered an expert in a technical area, the person to go to for answers.

You work well under broad direction, and work is often self-initiated

You can lead client teams, establish milestones, and play a significant role in the assignment of tasks and/or responsibilities when appropriate. You take technical responsibility for meeting allocated technical and/or project objectives and across all stages and iterations of software development. You plan and drive software development activities and can adopt and adapt appropriate software development methods, tools, and techniques; selecting appropriately from predictive (plan- driven) approaches or adaptive (iterative/agile) approaches.

You believe in quality code

You know how to balance your own high standards of code quality with the problems you are solving and external constraints like how time-sensitive it is or the impact it will have. You can engage, direct, and motivate team members to act, follow best practices, and achieve shared goals by putting in and reviewing processes to ensure good design is happening. You communicate effectively, both formally and informally, to create and support effective engineering practices and culture. You help the project team to perform better by introducing significant improvements to technology, process, and practice.

You help lift team members up

You empower others, and ensure that knowledge is shared amongst the team. You mentor and coach senior developers. You consistently educate others in the project team on a wide range of processes and technical practices, both within and outside core expertise area. You apply industry knowledge to help to define the standards which others will follow and apply. You contributes to the development of organisational policies, standards, and guidelines for software development.

What a typical week might include

You will be responsible for designing and developing web applications for our clients, ensuring they operate efficiently and effectively. You will work on projects from conception to final product.

In any particular week, your work might involve:

  • Lead or contribute to medium-to-large feature releases.
  • Advise internal and client engineers on available standards, methods, tools, and applications.
  • Identify fundamental issues and mitigate complex project risks, both technical and non-technical.
  • Measure and monitor applications' technical standards and software security.
  • Ensure quality through code review processes and testing plans, seeking and providing constructive feedback.
  • Analyse, design, plan, execute, and evaluate work to time, cost, and quality targets for the team.
  • Take all requirements into account when making proposals and manage project timelines and risk.
  • Facilitate collaboration between stakeholders who have diverse objectives, so they actively participate in the project and design process.