Software Engineer, Industrial Controls
Austin, TX, United States3w ago
Key details
- Location
- Austin, TX, United States
- Work style
- Onsite
- Job type
- Full-time
- Function
- Software engineering
- Focus area
- other
- Posted
- 3w ago
Skills
About the role
The Role
We're hiring a Software Engineer, Industrial Controls to lead the architecture and implementation of Aalo's software-defined industrial controls runtime for energy and industrial process systems.
This role focuses on building a deterministic, highly available runtime capable of executing industrial process-control workloads. The platform is intended to bring modern software flexibility to domains traditionally served by PLCs, while preserving the predictability, recoverability, and operational discipline required for physical systems.
This is a hands-on role for an engineer who is equally comfortable with systems software, runtime design, operating-system-adjacent engineering, industrial communications, and high-reliability architecture.
You will own the stack from I/O drivers through runtime execution and external control and data interfaces. You will work closely with controls, systems, hardware, test, and software engineers to translate process-control needs into runtime architecture and software behavior.
This is a systems software and industrial controls role with strong architecture, implementation, redundancy, diagnostics, testability, and technical leadership responsibilities.
Examples of the systems and capabilities this role may touch include:
- Real-time or real-time-oriented control execution runtimes
- Deterministic scheduling, timing behavior, state handling, and fault containment
- Industrial I/O connectivity layers and custom drivers for PLC I/O modules
- Industrial protocols such as Ethernet/IP, Modbus, EtherCAT, and MQTT
- Hot/standby redundancy, bumpless failover, watchdogs, heartbeats, and health monitoring
- Mirrored or replicated runtime state to support continuity of execution across redundant hardware
- Memory management strategies designed for deterministic behavior, bounded risk, and long-term stability
- Northbound runtime interfaces for outbound telemetry and inbound control
- Runtime configuration for I/O mapping, deployment behavior, failover behavior, and diagnostics exposure
- Simulation, hardware-in-the-loop testing, fault injection, control-system validation, and operational observability
Common technology categories and engineering patterns in the stack include:
- Systems programming in compiled languages such as C, C++, or Rust
- Real-time or real-time-oriented software architecture
- Runtime systems, schedulers, state machines, concurrency, and memory behavior
- Industrial automation, fieldbus, and hardware interface layers
- Embedded Linux, RTOS, or operating-system-adjacent environments
- High-availability systems, redundancy models, and fault-tolerant architecture
- Diagnostics, observability, logging, tracing, and runtime introspection
- Automated test harnesses, simulation environments, and hardware-in-the-loop validation
- Deployment tooling, configuration management, and controlled release processes
- Secure interfaces between control runtimes, telemetry systems, operator interfaces, and enterprise software
What You'll Do
- Architect and implement a robust industrial controls runtime designed to run on standard PC hardware in a real-time or real-time-oriented environment
- Define the execution model for deterministic control software, including scheduling, timing behavior, state handling, and fault containment
- Design and build industrial I/O connectivity layers and custom drivers for PLC I/O modules and industrial protocols
- Lead the design of high-availability architectures, including hot/standby redundancy with bumpless failover
- Develop approaches for mirrored or replicated runtime state to support continuity of execution across redundant hardware
- Establish memory management strategies that prioritize deterministic behavior, bounded risk, long-term stability, and operational robustness
- Define runtime interfaces for outbound telemetry, inbound control, diagnostics, configuration, and operator-facing systems without forcing unnecessary coupling
- Partner closely with controls engineers to translate process-control requirements into runtime architecture and software behavior
- Define system configuration approaches, including I/O mapping, deployment configuration, failover behavior, and diagnostics exposure
- Build early proof-of-concept systems rapidly and iteratively, including a working runtime prototype with a minimum viable set of I/O drivers
- Establish engineering standards for testability, observability, fault detection, debugging, and software quality
What We're Looking For
Strong engineering fundamentals
- You can design systems with clear execution models, interfaces, service boundaries, failure modes, and test strategies
- You write clear, maintainable systems software and can reason carefully about correctness, reliability, timing behavior, and operational risk
- You understand the difference between a useful prototype and a runtime that physical systems can rely on
- You know how to keep low-level software simple without creating fragile architecture or hidden coupling
Industrial controls and runtime systems mindset
- You have deep experience in systems software, runtime systems, embedded software, operating-system-adjacent engineering, or industrial automation
- You understand deterministic execution, concurrency, scheduling, memory behavior, and fault handling in high-reliability systems
- You have designed or implemented software that interfaces with hardware, field devices, industrial protocols, or control systems
- You are motivated by software that changes how physical systems operate, not just software that looks good in a demo
- You care about uptime, recoverability, predictable behavior, diagnostics, testability, and operational clarity
High output and follow-through
- You are comfortable taking ambiguous architecture needs and turning them into working systems
- You can move quickly on prototypes while preserving the judgment needed for high-reliability software
- You handle integration issues, edge cases, testing gaps, and operational problems without losing momentum
- You can lead technically while remaining deeply hands-on
Modern software and AI-native working style
- You are comfortable using modern software tools, automation, and AI-assisted development workflows where they improve leverage
- You can evaluate generated code, test output, and tool suggestions rather than relying on them blindly
- You think in terms of leverage, fast feedback loops, evaluation, and compounding improvements in engineering quality
- You preserve human engineering judgment, verification, and accountability in systems where correc
How well do you match this job?
Free account needed to apply or save. It takes a minute, and we'll bring you right back to this job.