Senior Software Engineer, Edge/IoT

at  Utilidata

Remote, Oregon, USA -

Start DateExpiry DateSalaryPosted OnExperienceSkillsTelecommuteSponsor Visa
Immediate07 Nov, 2024USD 165000 Annual09 Aug, 20245 year(s) or aboveZeromq,Data Compression,Scada,Mqtt,Python,Stream Processing,Machine Learning,Continuous Integration,Dnp3,Ota,Reporting,Aws,Device Drivers,Simulations,Modbus,Test Execution,Manufacturing,Azure,Power Systems,Microservices,Communication SkillsNoNo
Add to Wishlist Apply All Jobs
Required Visa Status:
CitizenGC
US CitizenStudent Visa
H1BCPT
OPTH4 Spouse of H1B
GC Green Card
Employment Type:
Full TimePart Time
PermanentIndependent - 1099
Contract – W2C2H Independent
C2H W2Contract – Corp 2 Corp
Contract to Hire – Corp 2 Corp

Description:

Utilidata is a fast-growing energy technology company that is digitizing the grid-edge to unleash the full potential of clean energy. Our industry-leading software solutions create visibility to the edge of the grid and optimize grid operations. We are leveraging our proven expertise to build new solutions that optimize real-time data and AI to integrate more clean energy and support an electrified transportation system.
We are expanding our engineering team and looking for a Senior Software Engineer to lead the productionalization of our IoT platform, with a primary emphasis on the software that runs on edge IoT devices. This edge software includes machine learning, optimization algorithms, and components that host these capabilities that must meet high standards of performance, security, reliability, and accuracy. These individuals will be fully engaged in the software development process from architecture and planning all the way through deployment, and must have broad and deep knowledge of the state of the evolving software. We are looking for candidates who are mission-driven, collaborative, adaptive and experienced in designing, writing, testing, and debugging distributed enterprise software at scale. Ideal candidates will possess deep knowledge of Python, Linux, continuous integration and deployment (CI/CD), and have a proven track record in designing and developing successful enterprise software.

Responsibilities

  • Design, propose, plan, implement, and test resource-constrained, edge software in Python (and possibly lower-level languages, e.g., Rust)
  • Create and maintain CI/CD processes as necessary to support development and deployment
  • 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

Minimum Qualifications

  • 8+ years of professional experience including 5+ years of experience developing production software and systems, or a combination of educational and professional experience commensurate with this level of experience
  • 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++ 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
  • Expert level user of Shell scripting, helm charts, ansible, and prometheus tools
  • Data compression and schema management for device time series data
  • Knowledge of industry protocols 2030.5, DNP3, Modbus, OPC-UA
  • Experience implementing and maintaining CI/CD workflows (e.g., GitHub Actions or Jenkins)
  • Strong problem solving and troubleshooting skills, with a desire to create elegant solutions to complex problems
  • 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
  • Hands-on knowledge of cloud platforms and services focused on IoT device management, security and OTA updates (AWS, Azure) preferably in the scale of million devices
  • Experience contributing to production code bases using a modern development process (git/GitHub flow with continuous integration, including code review, automated test execution, and code standards evaluation and reporting)
  • Strong written and oral communication skills
  • Proven track record of seamlessly moving between individual and team work

Enhanced Qualifications (Nice to Have)

  • Experience designing, building and deploying applications and reusable libraries based on the NVIDIA ML software stack on the Jetson Platform
  • Experience with system integration testing including HIL and SIL
  • Experience with simulation software and emulators
  • Data engineering experience including batch, stream processing, and data transformations
  • Understanding of SQL/NoSQL Database implementations (SQLite, Redis, Postgres, etc)
  • Well-versed in Docker/containerization
  • Experience implementing IoT AWS solutions
  • Familiarity with data science, machine learning and/or software-based models and simulations of physical systems
  • Broad, high-level knowledge of cloud platforms and services (AWS)
  • Experience with control systems applications (e.g. industrial processes, manufacturing, commercial buildings, SCADA) and/or power systems
  • Experience in DevOps automation, cloud engineering

Salary Range: $135,000 to $165,000 depending on experience
Location: This position can be performed remotely from anywhere in the United States

Responsibilities:

  • Design, propose, plan, implement, and test resource-constrained, edge software in Python (and possibly lower-level languages, e.g., Rust)
  • Create and maintain CI/CD processes as necessary to support development and deployment
  • 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 desig


REQUIREMENT SUMMARY

Min:5.0Max:8.0 year(s)

Computer Software/Engineering

IT Software - Application Programming / Maintenance

Software Engineering

Graduate

Proficient

1

Remote, USA