We are looking for a full-stack senior software developer to join our team. You will work with other 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're confident using stakeholder interaction to drive out the right requirements and help the client prioritise work.
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 consistently find and implement simplicity in solutions. You have comprehensively covered all aspects of product delivery on past projects.
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 like to improve tech standards and practices, bring new technical and process ideas to the team, advocate them successfully, and drive adoption.
You have strong teamwork skills and are confident working with colleagues and clients
You encourage and facilitate others' ideas, and you role model company values and behaviours to team members. You communicate clearly, concisely and kindly, in writing and verbally, varying your communication style depending upon the audience. You plan, manage, and monitor your work to meet time and quality targets, and communicate possible issues early to align others’ expectations and adjust future deadlines.
You're comfortable working remotely, pairing and taking initiative
We work across multiple concurrent projects or products but you will be focusing on one project at a time. You're comfortable working remotely by yourself, pairing with others, and taking initiative. You prioritise and manage your own work and time effectively. You're keen to learn new technologies on the job and have a positive approach to change. Your strong attention to detail and problem-solving skills help you apply a methodical approach to issue definition and resolution.
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 a typical week you might:
- Take responsibility for understanding client requirements, collecting data, delivering analysis and problem resolution. Identify, evaluate, recommend options, and implement if required.
- Collaborate with and facilitate stakeholder groups to fully address client needs by ensuring that proposed solutions are properly understood and implemented.
- Scope upcoming projects involving multiple disciplines or complex systems. Estimate at a project-level, foresee and mitigate a wide range of risks, assist with team prioritisation, and develop a plan for project deliverables.
- Be responsible for the entire lifecycle of your code: development, test, production, and subsequent fixes, refactoring, and improvements.
- Provide input into system architecture and API design.
- Contribute to selection of software development approach for projects, selecting appropriately from predictive (plan-driven) approaches or adaptive (iterative/agile) approaches.
- Foresee dependencies early and actively manage them.
- Participate in code review, pairing, and other forms of knowledge sharing. Review others' work in the context of the whole system and work with them to improve. Support others to resolve issues and deliver.
- Improve the development experience on client projects by enhancing development tools, test coverage, and code structure.