Software Engineer (IIoT)
Introduction:
Dataprophet collects billions of data points every month from factories around the globe - yet we're just getting started. Our products and services consist of a fleet of purpose-built industrial edge devices (EDGE), a data lake and web front-end for data centralisation and visualisation (CONNECT), and targeted machine learning solutions (ML).
Role Overview:
We are looking for a skilled software engineer to join our EDGE team. As an EDGE Software Engineer you join a small team of senior software engineers to execute upon and refine the Edge product roadmap. This is a varied and fast-paced role that will keep you on your toes. You will have the opportunity to deepen your knowledge of Linux systems, streaming frameworks, infrastructure management, and concurrent programming, to name a few.
Many parts of the Edge stack pose unique technical challenges that don’t quite fit a typical Software Engineering role. Learning is a key part of our team, and we put a great focus on upskilling and orienting team members to make sure that they gradually become comfortable with the entire stack. We do in-depth PR reviews with helpful feedback, and put a focus on code quality over delivery speed.
Roles and responsibilities will include, but are not limited to:
- Development of the Edge stack, a diverse set of tools and software that streams factory data to the cloud. The Edge stack has low technical debt, a high quality codebase and incorporates modern design principles. Unique challenges include:
- Fully headless operation across a large fleet of devices
- Low-spec hardware requiring attention to performance optimisation and reliability
- Stringent stability, correctness and security requirements
- Transitioning seamlessly between offline and online operation
- Architecting, deployment and maintenance of a highly diverse, asynchronous Edge fleet. Unique challenges include:
- Automation and monitoring of many devices spanning the globe.
- Unreliable connectivity, power and low bandwidth requires a highly reliable deployment pipeline
- Fully remote managed fleet, requiring the development of unique solutions to ensure reliability of data streams
- Diverse, in-depth monitoring and alerting to allow a small team to manage a very large infrastructure
- Development of a highly customised, hardened Linux-based distribution with modern security features
- Development of the Edge network and data ingestion pipeline. Unique challenges include:
- Development of a high throughput, low latency data ingestion pipeline that has strong data delivery and strict security requirements
- Development of the Edge VPN network, which needs to operate reliably and efficiently in a large variety of corporate networks via multiple protocols
- Architecting, administration and management of the Edge Cloud Infrastructure. Requirements include:
- Building solutions that can be replicated across multiple cloud environments
- Highly automated deployments and pipelines
- Strict security requirements to meet Industrial cybersecurity standards
- Development of the Edge onboarding process, which involves tooling development to allow OEMs to onboard and prepare Edge devices at scale. Unique challenges include:
- Automating processes like identity attestation, device acceptance and OS installations
- Providing tools to onboard legacy hardware that has already been deployed at scale
- Working with skilled OEM partners that provide detailed and relevant project ideas, requirements and input to develop a truly unique and valuable platform.
Qualifications & Experience:
- At least a relevant short course, diploma or degree in Computer Science, Electrical Engineering, or a similar field.
- At least 4 years' experience of Linux systems, collaborative software engineering in general, and shell scripting and Python development in particular.
Skills and tools
- Being comfortable with on-the-job learning
- Required skills at an intermediate to senior level:
- Python software engineering
- Linux systems administration
- Source Control (GitHub; Git)
- Any of the following skills are a plus:
- DevOps: AWS, Terraform, CI/CD
- Fleet management: SaltStack
- Monitoring: Prometheus, Grafana
- Golang
- Bash scripting
- Networking: Wireguard, routing, load-balancing
- Security: Linux firewalls, SIEM/EDR, advanced security features like FDE and TPMs