Development Engineer- Software
To develop new & improve existing software products that are used in conjunction with blasting solutions. To contribute towards the team’s internal process improvement.
Develop/integrate/interface with the various components that comprise our product suite to generate better blasting solutions. This includes blasting control equipment and detonators.
Design and develop firmware/software solutions such as planning and simulation tools for efficient and safe rock blasting.
Solicit business requirements from customers and develop system technical specifications.
Develop tests (according to best practise) throughout the product development lifecycle.
Keep abreast of global technological developments in the mining and software engineering space to provide direction for software development projects.
Support business strategy by aligning Software development activities with long-term objectives, customer needs, detonator technology development.
Assist in the installation and commissioning of new software systems at client sites; interfacing with and ensuring the satisfaction of clients in this process.
Requirements
Qualifications and expertise
A Degree in Computer Science, Engineering or equivalent.
5 years’ experience programming in a professional capacity.
Software development experience using C++.
Any combination of the following Experiences an advantage:
Experience working with or developing CI/CD pipelines. (highly advantageous)
Experience using software design principles/methodologies e.g. SOLID, TDD, BDD, OO etc.
Project management methodologies e.g. AGILE, SCRUM, Kanban etc.
Experience using UX principles to develop user interfaces.
Software development experience using Golang, QT and QML. (highly advantageous)
Mobile application development at commercial level, Android/ IOS. (highly advantageous)
Web application development at commercial level, with [JavaScript, HTML5, Angular, NodeJS].
Experience using testing tools e.g. Selenium, Squish, Postman
3D graphics rendering with OpenGL, (Linux and Windows).
Competencies (skills, knowledge and characteristics) Applicable
Strong mathematical and analytical skills
Ability to work independently
Highly motivated
Hungry to learn
Excellent communication skills (incl. technical writing)
Resilience to adversity
Team player