Job Title: Controls Software Engineer
Department: ATC
About the Role
We are looking for a Controls Software Engineer – Edge Platforms & Agentic AI to help build the next generation of software foundations for industrial control systems and intelligent engineering workflows.
This role is intended for a software engineer who can operate across Linux-based edge platforms, distributed device communication, automation tooling, and AI-enabled engineering systems. The focus is not limited to traditional firmware development. Instead, the role combines industrial software engineering with the design of practical agentic AI solutions that support diagnostics, integration, knowledge access, technical workflows, and internal engineering productivity.
You will contribute to software platforms used in critical thermal and infrastructure environments, where reliability, observability, maintainability, and technical rigor matter. You will also help shape AI-assisted systems that interact with real tools, technical documentation, structured data, and operational workflows.
Key Responsibilities
- Design and implement software components and services in Python and C/C++ for Linux-based edge and control platforms
- Develop modular software for distributed embedded and edge systems, including data acquisition, diagnostics, orchestration, and device interaction
- Build and maintain communication and integration layers using protocols such as Modbus RTU/TCP, MQTT, CANbus/CANopen, and similar industrial or field protocols
- Create internal tooling and engineering utilities for configuration, deployment, troubleshooting, validation, and system analysis
- Design and implement AI-assisted and agent-based workflows to improve engineering productivity, diagnostics, knowledge retrieval, and service operations
- Develop software systems that combine LLMs, external tools, APIs, structured data, technical documentation, and workflow logic in a controlled and reliable way
- Translate technical knowledge, interface specifications, and system documentation into machine-usable workflows, structured context, and retrieval pipelines
- Evaluate AI-enabled workflows for correctness, maintainability, observability, safety, and practical engineering usefulness
- Contribute to software architecture decisions, including modularity, interface design, service boundaries, and long-term maintainability
- Write and maintain automation, integration, and deployment tools using Python, Bash, containers, and CI/CD pipelines
- Debug, profile, test, and optimize system behavior across edge software, communications, and supporting services
- Produce and maintain high-quality technical documentation, including module descriptions, interface contracts, workflow definitions, and integration guidance
- Collaborate closely with firmware, hardware, cloud, QA, technical service, and product stakeholders to identify high-value software and AI automation use cases
Requirements
- Degree in a STEM field such as Computer Science, Electronic Engineering, Automation, Physics, or equivalent practical experience
- Strong software engineering skills in Python
- Good working knowledge of C/C++ in systems, embedded, or performance-sensitive environments
- Solid understanding of Linux systems, command-line tooling, process management, networking basics, and Bash scripting
- Experience building modular software components, services, or tooling with attention to maintainability and technical quality
- Experience with one or more communication technologies such as Modbus, MQTT, CANbus/CANopen, serial protocols, TCP/IP-based device integration, or similar
- Experience with Docker, containerized development environments, or service-based deployment workflows
- Familiarity with CI/CD practices and version control workflows
- Ability to work across disciplines and deal with real-world engineering constraints, incomplete information, and integration complexity
- Fluent English, written and spoken
Nice to Have
- Experience building or integrating LLM-based tools, agentic workflows, retrieval systems, or AI-assisted engineering automation
- Familiarity with frameworks and patterns used for tool orchestration, workflow control, memory, evaluation, or context management in AI systems
- Experience designing software that combines deterministic logic with AI-driven components in a robust and observable way
- Background in edge computing, embedded Linux systems, or distributed industrial architectures
- Familiarity with diagnostics, observability, system logging, tracing, or performance analysis tools
- Experience creating developer tooling, internal platforms, or technical productivity systems
- Familiarity with REST APIs, WebSocket-based services, or integration middleware
- Experience contributing to interface documentation, technical platform specifications, or reusable software standards
What We Are Looking For
We are not looking for a generic AI enthusiast or a pure firmware specialist. We are looking for a software engineer who can move effectively between:
- industrial and edge software constraints
- Linux-based systems and device integration
- practical automation and tooling
- structured engineering workflows
- AI-enabled software systems that must be useful, testable, and reliable in real technical environments
The ideal candidate is comfortable working on real systems, not only prototypes. They should be able to understand technical constraints, connect software to operational workflows, and apply agentic AI where it creates concrete value rather than noise.
Why This Role Matters
This role helps shape both the software backbone of our edge and controls environment and the next generation of engineering workflows built around intelligent automation.
It is a good fit for candidates who want to work at the intersection of:
- industrial software systems
- edge platforms
- distributed device integration
- automation engineering
- applied agentic AI
The work has direct impact on platform scalability, engineering efficiency, diagnostics quality, and future product and service capabilities.
#LI-CB1