Senior Software Engineer (IoT)
New
Most locations across the U.S. as well as Ontario and British Columbia, CanadaFull-TimeSenior
Salary not disclosed
Apply NowOpens the employer's application page
Job Details
- Experience
- 5+ years
- Required Skills
- AWSPythonSQLEmbedded SystemsIoTJavaJavascriptTypeScriptLinux
Requirements
- 5+ years of software engineering experience, with meaningful time spent working on embedded systems, IoT platforms, or edge computing
- Proficiency with Linux including imaging, system administration, containerization, process management, networking, and security
- Experience with communication protocols: serial interfaces (RS-232, J1708, CAN), network protocols (HTTP/REST, UDP v. TCP), and messaging patterns (MQTT, pub/sub, store-and-forward)
- Familiarity with remote deployment and update mechanisms (e.g., OTA updates, A/B partitioning, configuration management, edge container orchestration)
- Proficiency with languages: Python, Java, Javascript/Typescript
- Experience with SQL databases
- Experience with cloud-native architectures and services (AWS preferred)
- A testing and quality mindset, with strong opinions on system validation, automated testing, observability, and monitoring
- Comfort applying modern AI tools to accelerate development and improve quality
- Strong product mindset to use technology pragmatically to solve customer problems
Responsibilities
- Design, build, maintain and extend products, features, and functionality that solve real customer problems
- Partner with Product, Design, and Engineering to discover and validate customer needs and technical approaches
- Develop and extend integrations with onboard hardware devices such as headsign controllers, passenger counters, and fareboxes
- Build and improve cloud-native backend services that manage device configuration, process telemetry data, and provide observability into fleet-wide device health
- Implement and maintain robust mechanisms for over-the-air software deployment, configuration updates, and remote device management
- Design testing strategies that account for the realities of hardware-in-the-loop systems including integration testing, simulated environments, and production monitoring
- Communicate technical trade-offs, present system design proposals clearly, and document architectural decisions
- Uplevel teammates through code reviews, pairing, and strong collaboration
View Full Description & ApplyYou'll be redirected to the employer's site