Software Engineer
Backend-focused engineer on the Edge team building the software platform behind the company's IoT products. Day to day: design and operate containerized C#/.NET services on Linux that ingest sensor and PLC data on the production floor and reliably forward it to the cloud (Azure), owning the edge-to-cloud pipeline end-to-end.
- Compensation
- Not disclosed
- Location
- Raleigh, NC, US
- Work setup
- Not specified
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- 3+ years
- Category
- Software engineering
- Posted
Skills
Must have
- Strong professional experience with C# and modern .NET: ASP.NET Core REST APIs, hosted/background services, worker services
- Solid database engineering: relational schema design, indexing, migrations, query tuning; comfortable with raw SQL
- Practical experience with containerization
- Comfort with Linux as a deployment target (systemd, log management, networking, device troubleshooting) and shell scripting
- Proficiency with Git, pull-request workflows, and CI/CD (Azure DevOps Pipelines, GitHub Actions, or similar), including running tests in the pipeline
- Strong software engineering fundamentals: automated testing, code review, refactoring, API design, technical documentation
- 3+ years of professional software engineering experience shipping production systems
- Experience delivering distributed backend systems in production, ideally at the edge or IoT/industrial context, with reliability, observability, and on-call/field-support obligations
- Track record of cross-functional collaboration with hardware, controls, or research teams; translating ambiguous requirements into testable work
Nice to have
- Working knowledge of Python for tooling, data analysis, and test automation (pytest)
- Experience integrating with industrial control systems via fieldbus/SCADA protocols (EtherCAT, MODBUS, OPC UA, PROFINET, EtherNet/IP) or interoperating with PLCs
- Azure cloud services (Blob Storage, IoT Hub, Container Registry, Managed Identity, Azure DevOps); equivalent AWS/GCP experience welcome
- Kubernetes experience: deployments, services, Helm charts; K3s or MicroK8s at the edge a plus
- IoT device software experience: long-lived services on embedded/ARM64 hardware, remote deployment, fleet management, safe OTA updates
- Familiarity with columnar/analytics formats (Parquet) and analytics engines (Fabric, Synapse, Databricks, DuckDB)
- Familiarity with visualization/dashboard tools (Grafana or similar) and time-series data modeling
Full description
Position Summary
We are seeking a Software Engineer to join our Edge team building the software platform behind these products. You will design, build, and operate the distributed edge-to-cloud pipeline that runs on IoT devices on the production floor, ingesting high-rate sensor and controller data and reliably forwarding it to the cloud over intermittent connectivity.
This is a hands-on backend-focused role spanning containerized .NET services, relational and document data stores, pub/sub messaging, and industrial protocol integration. You will own features end-to-end and collaborate closely with Controls, HMI, Manufacturing, and Field Support to ship reliable, production-grade systems to our customers.
Key Job Responsibilities
- Design and implement backend services in C# on modern .NET / ASP.NET Core for the edge platform - REST APIs, background workers, message handlers, telemetry aggregators, and long-running device services.
- Own the data pipeline from device ingest to cloud archive: schema design, repository / data-access layer, database migrations, partitioning and retention strategy, and durable store-and-forward upload to cloud object storage.
- Build and maintain containerized services and their deployment manifests, configuration, and orchestration.
- Integrate with industrial controllers over standard fieldbus and industrial communication protocols - designing message contracts, register maps, warning/error codes, and controls-side handshakes for coordinated operation.
- Deliver features end-to-end, from work-item breakdown through implementation, unit and integration tests, CI, code review, deployment, and field validation on live equipment.
- Contribute to architecture: write and review architecture docs, evaluate new patterns, and drive refactors that keep the codebase maintainable as the team and product line grow.
- Mentor and collaborate: raise the bar in code review, pair with junior engineers, and coordinate with Controls, HMI, DevOps, and Field Support to ship releases. Mentor junior software developers and provide guidance on best practices and advanced analytical techniques.
- Communicate complex data insights and recommendations to non-technical stakeholders effectively.
Key Competencies & SkillsRequired
- Strong professional experience with C# and modern .NET building ASP.NET Core REST APIs, hosted / background services, and worker services.
- Solid database engineering skills: relational schema design, indexing, migrations, and query tuning. Comfort writing and reviewing raw SQL is expected.
- Practical experience with containerization
- Comfort with Linux as a deployment target (systemd services, log management, networking, device troubleshooting) and shell scripting.
- Proficiency with Git, pull-request workflows, and CI/CD (Azure DevOps Pipelines, GitHub Actions, or similar), including running unit and integration tests in the pipeline.