About this role
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