Description:
You will work as part of a global software team; collaborating with geologists, mining engineers and application owners to design and implement software solutions for the mining industry. The role will provide opportunities to apply your skill working with a range of tools and technologies pushing boundaries of web development, 3D graphics and cloud computing.
The challenges ahead
- Understand user requirements and design capabilities in order to deliver best in class experiences
- Learn and stay at the state of the art on software development practices, technologies
- Analyze code usage metrics to identify areas for code quality or software performances improvements
- Learn and promote component re-use
- Design and support components for re-use in collaboration with architects
- Define and describe functional behavior, limitations and acceptance tests of capabilities to deliver
- Design operable software (such as validation check on 0% downtime, code upgrade compatibility)
- Evaluate, recommend and select best algorithms or technologies to use.
- Perform feasibility study (prototype, POC) to validate
- Technology / components proposal with Architects
- User experience proposal with user experience Designer
- Execute software development plan respecting defined plan, quality criteria and accurately documented
- Code, build and run unit tests
- Deliver unit test and enablers for Quality Engineer to automate their testing (collaboration with Quality Engineers and Quality Engineering Manager)
- Deliver components that will enable introspection at runtime (for debugging, monitoring)
- Ensure developed source code reaches PCS and Security criteria
- Perform Code Review to continuously improve existing code to make it lean
- Share knowledge within and outside the team on produced developments and technical components
- Provide technical leadership to other developers on the team
Your key success factors
- Experience in design and development of distributed multi-user systems, preferably both on premises and cloud
- Experience designing and implementing web based applications incorporating SOA tech like SOAP or REST
- Experience in the design of new greenfield applications or framework development is highly desirable
- W3C web standards, technology and architecture (web services, JavaScript, HTML5)
- C++, Object Oriented Analysis & Design; including
- Experience using STL
- Multi-threaded, multi process distributed programming
- Test Driven development
- Client-Server, N-Tier development patterns and techniques
- High Performance 3DComputer Graphics programming
- Software development methodologies including Agile practices and traditional methodologies
- Strong OS knowledge (UNIX/Linux/Windows)
- Understanding of Cloud Development, Software as a Service, Platform as a Service, Service Oriented Architecture.
- Ability to quickly learn complex systems and new technologies
- Ability to diagnose and fix system-level issues and problematic complex code logic.
- Knowledge of command line tools and scripting languages (e.g. grep, awk, sh, Perl, Python)