Senior Software Engineer
Location: Remote
This is a unique opportunity to modernize and own critical software running across a large-scale industrial IoT platform, while working alongside a highly collaborative AI-forward engineering team spanning software, cloud, ML, embedded, and hardware. Our client is an established, globally operating industrial technology company whose platform connects hundreds of thousands of devices and transforms machine-generated data into meaningful operational insights for customers.
As a Senior Software Engineer, you will take meaningful ownership of the applications running within the company’s connected-device environment and the tooling that supports deployment, monitoring, maintenance, and continued evolution. The work you’ll do extends beyond application code and will allow you to experience systems operating across thousands of remotely deployed, cellular-connected devices, creating technical challenges spanning Linux, connectivity, messaging, and real-world operational conditions.
This role is built for a senior engineer who enjoys getting close to complex systems, understanding why they behave the way they do, and making pragmatic improvements. You will work alongside multi-disciplinary engineers and architects within a collaborative, low-ego team where technical judgment, ownership, and curiosity matter. The team is energized by high autonomy and high collaboration and is seeking a highly skilled software engineer to join the team on their mission.
If this role speaks to you and you naturally find yourself wanting to solve problems that do not fit neatly inside one technical boundary, we’d love to have a conversation with you!
Key Responsibilities
- Develop, maintain, and modernize Python applications supporting a large fleet of connected IoT devices.
- Evaluate existing software for performance, maintainability, unnecessary complexity, and opportunities for modernization.
- Benchmark critical application workflows and improve performance and reliability where needed.
- Build support for new device types and evolving platform capabilities.
- Improve deployment, monitoring, diagnostics, and maintenance tooling across remotely deployed systems.
- Define meaningful application and device metrics and strengthen platform observability.
- Support Linux-based systems, including operating-system and application upgrades across the deployed fleet.
- Diagnose production issues spanning software, devices, messaging, cellular connectivity, and infrastructure.
- Develop and support REST APIs, messaging workflows, and near-real-time application behavior.
- Partner with Cloud, Embedded, Hardware, ML, and other engineering teams to improve end-to-end system performance.
- Use AI-assisted development tools to accelerate coding, analysis, testing, documentation, and troubleshooting.
Qualifications & Requirements
- Professional software-engineering experience building and supporting production applications.
- Strong professional development experience with Python.
- Strong experience developing and supporting applications in Linux environments.
- Experience with real-time, near-real-time, IoT, connected-device, or distributed software systems.
- Strong debugging, troubleshooting, and application-performance skills.
- Experience developing or consuming REST APIs.
- Experience with messaging and asynchronous technologies such as MQTT, RabbitMQ, ZeroMQ, or similar.
- Experience with application monitoring, observability, logging, metrics, and production diagnostics.
- Comfortable working within established codebases and determining when to improve, refactor, or replace existing functionality.
- Experience with modern source control, development, testing, and deployment practices.
- Ability to work independently while collaborating effectively across a multidisciplinary engineering organization.
- Familiarity with AWS and cloud-connected applications is preferred.
- Experience with SaltStack, Ansible, Puppet, Chef, or similar configuration-management technologies is preferred.
- Experience with cellular-connected devices, remote fleet management, embedded environments, or international IoT deployments is helpful.
- Familiarity with Docker, relational or time-series databases, and Infrastructure as Code is helpful.
- Experience incorporating AI-assisted development into day-to-day engineering workflows.
What Naturally Makes You a Good Fit:
- You are a genuine and cool human being and care about the culture of where you work.
- You naturally take ownership and do not need every step to be defined.
- You want to understand how the entire system works rather than stopping at your piece of the codebase.
- You enjoy diagnosing problems that may cross software, Linux, networking, devices, and infrastructure.
- You are thoughtful about modernization and do not rewrite something simply because it is old.
- You care about performance, reliability, observability, and making systems easier to understand.
- You bring strong technical opinions without needing to control or win every decision.
- You collaborate openly, listen well, and adjust when better evidence emerges.
- You use AI to accelerate your work without outsourcing your engineering judgment to it.
- You are energized by visible progress, continuous learning, and building something better than you found it.
Benefits of working with the team:
As a valued member of the team, you will receive a competitive compensation package, including a generous base salary and bonus eligibility. Additional benefits include: Medical, dental, and vision coverage, 401(k) plan, life insurance, catered lunches, paid time off, company-sponsored benefits, etc.
Position Keywords:
Python, Linux, IoT, Industrial IoT, Connected Devices, Gateway Applications, Real-Time Systems, Near Real-Time Systems, REST APIs, MQTT, RabbitMQ, ZeroMQ, Observability, Grafana, Application Monitoring, Telemetry, Distributed Systems, Cellular Connectivity, SaltStack, Ansible, Puppet, Chef, AWS, Performance Benchmarking, Remote Device Management, AI-Assisted Development