Impinj is seeking a Principal Software Engineer specializing in IoT and embedded applications to join our Solutions Software organization working with the Applied RF team to deliver on-reader software solutions. In this position, you will work in collaboration with our Platform Software, Hardware, and Systems Engineering teams to design and develop innovative RAIN RFID solutions at scale.
Requirements
- At least 15 years of experience building high-quality software solutions on embedded, network connected devices in C or C++
- Experience in defining the vision and driving implementation of sophisticated, scalable, and reliable platform solutions
- Experience delivering high-quality, tested code across multiple release cycles
- Experience with MQTT, HTTP/REST, Kafka, AMQP, ZeroMQ or other related network technologies
- Experience with designing, developing, and deploying IoT solutions at scale
- Demonstrated experience in version control systems like Git for tracking changes and collaborating on code.
- Experience with performance optimization, parallel processing, and efficient data structures to ensure scalable, high-performance applications
Responsibilities
- Leverage deep subject matter expertise in embedded Linux and network communication protocols to lead the design and development of embedded IoT solutions at scale
- Apply expertise in software architecture to help build modular software designs that allow for component reuse across multiple solutions and deployments
- Partner with stakeholders to determine user requirements for one or more complex use cases
- Rapidly prototype new algorithmic approaches to RAIN RFID solutions to enable internal research and innovation
- Provide technical leadership for the design and development of new features, products, applications or services
- Design high-performance APIs using MQTT, HTTP/REST, Kafka, AMQP, ZeroMQ or other related network technologies
- Mentor engineers to produce high-quality, reusable and maintainable code used across the product portfolio
Other
- Bachelor's degree in computer science, computer engineering, or related technical field
- Good understanding of the software development lifecycle, structured project management, collaborative coding practices (such as code reviews and pair programming), and continuous improvement of code quality
- Strong communication skills to convey complex technical concepts to teammates and non-technical stakeholders
- Proven track record leading and mentoring software teams
- Operate within a hybrid environment, working a few days of the week from our office in South Lake Union or our Lab in North Beacon Hill