Apply

Ready to go for it?

AI Apply speeds things up—apply directly if you prefer.

FREE ACCESS
5,000–10,000 jobs/day
JobTailor Logo

See all jobs on JobTailor

Search thousands of fresh jobs every day.

Discover
  • Fresh listings
  • Fast filters
  • No subscription required
Create a free account and start exploring right away.
Utilidata

Software Engineer, On Device

Utilidata

Software Engineer at Utilidata supporting the productionalization of IoT platform with a focus on edge devices and distributed systems. Transforming utility company operations through advanced software solutions.

Posted 5/29/2026full-timeAnn Arbor • Missouri • 🇺🇸 United StatesMid-LevelSenior💰 $120,000 - $150,000 per yearWebsite

Tech Stack

Tools & technologies
Distributed SystemsGRPCJenkinsLinuxMicroservicesPythonRust

About the role

Key responsibilities & impact
  • Design, propose, plan, implement, and test resource-constrained, edge software in Python (and possibly lower-level languages, e.g., Rust) including the implementation of precision telemetry collection, real-time control interfaces, and robust system observability
  • Create and maintain CI/CD processes as necessary to support development and deployment with a focus on reproducibility, regression testing for embedded systems, and deployment in real-world, intermittently connected environments
  • Contribute to internal and external technical documentation
  • Collaborate with a cross-functional team of software, hardware, quality assurance (QA), and power systems engineers; data scientists; and leadership
  • Provide high-quality, in-depth code and architecture reviews, implement new features, and provide technical leadership while coordinating with project management, QA, and other internal teams
  • Continually advocate for and implement process improvement and automation
  • Foster a culture of open communication, innovation, and continual improvement
  • Mentor other engineers using paired programming, code review, and collaborative test scenario design

Requirements

What you’ll need
  • 5+ years of professional experience including 3+ years of experience developing production software and systems
  • Demonstrated ability to design and implement distributed systems utilizing microservices in a resource-constrained environment (edge devices with limited memory, CPUs, GPU capacity, etc.)
  • Extensive experience using Python, C/C++, Rust, and the Linux operating system
  • Experience with device layered security, i.e. encryption (PKI), disk partitioning, secure boot, os kernel libraries, device drivers, os processes/daemons
  • Data compression and schema management for device time series data
  • Experience implementing and maintaining CI/CD workflows (e.g., GitHub Actions or Jenkins)
  • Strong understanding of synchronous and asynchronous network communication, including REST APIs, gRPC, binary protocols, and distributed publish/subscribe messaging systems and protocols like MQTT and ZeroMQ
  • Strong written and oral communication skills, with a proven track record of working effectively both individually and as part of a team.

Benefits

Comp & perks
  • Competitive compensation and benefits, including health, dental, vision, and employer-match 401k
  • Flexible paid time off
  • Creating a diverse and inclusive workplace that is welcoming, supportive, affirming and respectful
  • Empowering employees to solve problems and work together to make a difference
  • Providing mentorship and growth opportunities as part of a collaborative team
  • A flexible work environment

ATS Keywords

✓ Tailor your resume
Applicant Tracking System Keywords

Tip: use these terms in your resume and cover letter to boost ATS matches.

Hard Skills & Tools
PythonC/C++RustCI/CDmicroservicesdistributed systemsdata compressionencryptionREST APIsgRPC
Soft Skills
communicationcollaborationtechnical leadershipmentoringprocess improvementinnovationteamworkcode reviewpaired programmingdocumentation