Job Description
Job Description: Associate Software Engineer
SLR Better Mining
Role Summary
The Associate Software Engineer works under the guidance of senior team members supporting the design, development, testing, and maintenance of digital products used by SLR Better Mining. The role involves contributing to frontend and backend development, supporting system integrations, assisting with user support, and helping with data cleaning and validation where needed.
The Associate Software Engineer works closely with more senior engineers and technical leadership, learning best practices in software engineering while delivering reliable, well-tested code.
Reporting Line
The Associate Software Engineer reports to the Technical Adviser and works closely with the SLR Better Mining technical and operations teams as well as other SLR digital teams.
Key Responsibilities
1. Software Development & Delivery
Support the development, testing, and maintenance of software applications using technologies such as:
Elixir / Phoenix / Python
JavaScript frameworks (NestJS, ReactJS, NextJS)
Implement features and bug fixes based on clearly defined requirements and technical designs.
Write clean, readable, and testable code following established coding standards.
Assist in translating user and business requirements into technical solutions.
Participate in software testing, debugging, and quality assurance activities.
Develop basic technical documentation, including code comments and implementation notes.
Support deployment activities under guidance from senior engineers.
2. System Support & Maintenance
Assist in troubleshooting, debugging, and resolving software defects.
Support maintenance of existing applications to improve stability and performance.
Help ensure systems remain up to date with required enhancements and fixes.
Escalate technical issues appropriately and document resolutions.
3. Team Collaboration & Learning
Collaborate with other engineers and Better Mining project staff.
Take part in code reviews as a contributor and incorporate feedback.
Demonstrate continuous learning and skill development aligned with team needs.
Required Skills & Experience
Degree or equivalent training in Computer Science, Software Engineering, or a related field.
Basic understanding of the software development lifecycle (SDLC).
Knowledge of JavaScript/TypeScript
Familiarity with React.js, Next.js, and NestJS
Exposure to Elixir/Phoenix is an advantage
Basic understanding of REST APIs
Basic knowledge of PostgreSQL and MongoDB
Familiarity with Git/GitHub
Basic understanding of software testing and debugging
Exposure to Docker, CI/CD, and cloud platforms such as Heroku and Azure
Comfort working in Linux/Bash environments
Willingness to learn new technologies and frameworks.
Strong problem-solving skills and attention to detail.
Role Level Expectations
Works under regular guidance and supervision.
Delivers well-defined tasks with increasing independence over time.
Focuses on skill development and technical growth.
Does not hold primary ownership of production systems.
