Engineering and Manufacturing company with an international footprint requires the Services of skilled Software Systems Engineer to To contribute to the design, development, testing and documentation of new applications / systems to meet the requirements of the company’s SmartMine IoT Platform Solutions; primarily focused on ETL (Extract, Transform & Load Pipelines) upstream data solutions and downstream configuration management solutions to devices and software applications (ie. modelling configuration data for solutions). SmartMine is a big data analytics platform for the mining industry which requires a focus on managing data assets (ie. ingestion and distribution of data), contextualising data and turning it into information, and finally leveraging this information to address the 4 pillars of analytics – descriptive, diagnostic, predictive, and prescriptive
Main function of the role:
To contribute to the design, development, testing and documentation of new applications / systems to meet the requirements of the company’s SmartMine IoT Platform Solutions; primarily focused on ETL (Extract, Transform & Load Pipelines) upstream data solutions and downstream configuration management solutions to devices and software applications (ie. modelling configuration data for solutions). SmartMine is a big data analytics platform for the mining industry which requires a focus on managing data assets (ie. ingestion and distribution of data), contextualising data and turning it into information, and finally leveraging this information to address the 4 pillars of analytics – descriptive, diagnostic, predictive, and prescriptive
Responsibilities:
Systems Engineering:
· Contribute and actively participate in general systems engineering activities (meetings, discussions, activities, engineering change requests, etc).
· Actively participate in and contribute towards system engineering reviews, including documentation reviews and project reviews.
· Contribute to overall systems engineering team performance and successes.
· Ensure that the systems engineering effort achieve and maintains its goals and objectives.
· Comply with and apply internally defined and established system engineering standards and policies (Systems Engineering Management Plans [SEMP], Test and Evaluation Master Plans [TEMP], Agile Methodology, etc).
· Ensure that the systems engineering effort reaches its agreed progress milestones.
· Provide recommendations for systems engineering process improvement.
· Assist with project closure.
Requirements elicitation: ·
Contribute and actively participate in general systems engineering activities (meetings, discussions, activities, engineering change requests, etc).
· Actively participate in and contribute towards system engineering reviews, including documentation reviews and project reviews.
· Contribute to overall systems engineering team performance and successes.
· Ensure that the systems engineering effort achieve and maintains its goals and objectives.
· Comply with and apply internally defined and established system engineering standards and policies (Systems Engineering Management Plans [SEMP], Test and Evaluation Master Plans [TEMP], Agile Methodology, etc).
· Ensure that the systems engineering effort reaches its agreed progress milestones.
· Provide recommendations for systems engineering process improvement.
· Assist with project closure.
Systems requirement & architecture analysis and definition
- Define and document the required system functionality (functional baseline) describing functional, performance, and interface characteristics of the overall system, and the verification required to demonstrate the achievement of those specified functional characteristics.
- Define the configuration items making up a system and allocate system function and performance requirements to lower-level configuration items (allocated baseline).
- Decompose system requirements into lower-level design requirements, architecture, and designs.
- Detect, communicate and resolve conflicts between requirements, architectures and designs.
- Determines and confirm the scope and bounds of the system and how it must interact with its environment.
Requirements Management
- Ensure that new and/or changed requirements, architecture and/or designs are documented and communicated effectively through the use of the appropriate mechanisms and channels.
- Initiate and contribute to the following tasks resulting from changes to existing requirements, architectures, and designs:
- Determine the complexity and scope of suggested changes.
- Identify conflicts or incompatibilities with existing systems.
- Identify conflicts or incompatibilities with existing requirements, architectures and designs.
- Conduct risk analysis
- Conduct cost/benefit analysis related to the change(s)
- Estimate resource requirements to complete the work
- Produce documentation or its equivalent, that can be systematically reviewed, evaluated and approved.
- Ensure that requirements are traced to verification and validation methods to ensure completion of development and operational test and evaluation activities.
Requirement, architecture and design validation
- Perform prototyping and modelling to validate interpretation of requirements, architecture and designs.
- Identify related problems before resources are committed to addressing designs and architectures.
Design strategy
- Implement the design strategy.
- Address construction-level detailed design issues, produce appropriate documentation and identify conflicts with architectural or high-level design decisions.
Design and Development
- Design and develop connectivity and communication layers for mapping of field data to the logical and physical technologies used.
- Design and develop data acquisition layers and services to provide incoming data subsequent processing, normalization, integration, and preparation for upstream services and applications.
- Design and develop data abstraction layers and services for turning data into information and providing interface agnostic layers for ease of integration between other services and applications.
- Design and develop data feeds, streams and pipelines from an on-site environment into a data lake and warehouse environment in other on-site and cloud environment across a distributed multiple cluster and multi-node system.
- Design and develop collaboration and process layers to process and present information to users to satisfy the business needs and deliver economic and safety value, and improve business optimisation.
- Design and develop programmatic transformations of the solution, by correctly partitioning, formatting and validating the data quality.
- Design and develop programmatic transformation, combinations and calculations to populate complex data based on feed from a data lake and warehouses.
- Provide operational support to data lakes and warehouses, and data marts, feeds, and streams.
- Design infrastructure required to develop and operate data lakes and warehouses.
- Design infrastructure required to develop and operate datamarts, datafeeds and data streams, their user interfaces and the feeds required to populate the data lakes and warehouses.
- Develop enhancements for existing products to requirements.
Testing
- Develop and document test plans and test scenarios to perform appropriate system level and acceptance level testing.
- Generate test procedures, test scripts, and test cases as input for software testers.
- Execute unit level testing in development and build environments.
- Execute validation tests in various environment to ensure proposed concepts, models and architecture satisfy the system and user requirements.
- Ensure the test documentation is translated and manual/automation tests are implemented correctly by the software tester.
- Review test results with the software tester and systems engineer.
- Ensure traceability to requirements are maintained.
- Maintain test records
Configuration
- All documentation to be configured in accordance with internal configuration management policies and procedures.
- Issue tracking to be conducted in accordance with established standards and procedures.
- Actively participate in formal baseline establishments.
- Adherence to ECR processes and procedures.
- Preservation of the integrity and traceability of the configuration throughout the system life cycle.
Budget and project inputs
- Provide inputs required for project scoping (work breakdown, coordination)
- Provide inputs for project scheduling and estimation (timescales, required level-of-effort)
- Identify assumptions and potential risks to be considered during estimation and scoping
- Suggest risk reduction and mitigation measures
- Identify opportunities for project artefact reuse
- Identify opportunities for efficiency and savings
Inputs to contractor/supplier management
- Provide inputs required for contractor’s/supplier’s estimated levels-of-effort (work breakdown, coordination)
- Prepare Statements of Work (SOW’s) for contractors’ work allocations as required by project management
- Identify assumptions and potential risks to be considered during estimation and scoping
- Suggest risk reduction and mitigation measures
- Implement risk reduction and mitigation measures to ensure contractors’/suppliers’ success
- Ensure contractors’/suppliers’ deliverables meet quality and performance criteria prior to invoice sign-offs
- Confirm contractors’/supplier’s invoices match deliverables and quoted level-of-effort invoiced for
MINIMUM QUALIFICATION:
- Bachelor’s degree in computer/software engineering, computer science
- Masters or doctoral level degree (advantageous)
Minimum Experience required
· 3-5 years’ experience in computer science, software, or computer engineering, applied math, physics, statistics, or related fields.
· Experience with wireless and network communication technologies.
· 3-5 years’ experience within management information systems / system analysis.
· 3-5 years’ experience with data lake and warehousing solutions.
· Experience with data analytics & engineering, machine learning and AI.
· 3-5 years’ experience with Python, Java, Sparkle, C++, SQL databases.
· 3-5 years’ experience with Kafka, ElasticSearch/OpenSearch, and containerised applications development (ie, docker).
· Experience with workflow management tools such as Camunda.
· Experience with distributed systems and cluster orchestration systems such as Kubernetes.
· Experience with automating deployment, scaling, and management of containerised services and microservice architecture (ie. DevOps).
· Experience building and optimizing ‘big data’ data pipelines, architectures and data sets.
· Experience performing root cause analysis on internal and external data and processes to answer specific business questions and identify opportunities for improvement.
· Strong analytic skills related to working with unstructured datasets.
· Build processes supporting data transformation, data structures, metadata, dependency, and workload management.
· A successful history of manipulating, processing and extracting value from large, disconnected datasets.
· Working knowledge of message queuing, stream processing, and highly scalable ‘big data’ data stores.
Reach me at the detail below.
Thank you,
Theresa Steenkamp
Key Account Manager – Network Contracting Solutions
[Email Address Removed]
Desired Skills:
- Management Information Systems
- Data Lake
- Data Analytics
- Engineering
- Machine Learning
- AI
- Development